软件检测论文:计算机软件安全检测技术诌议 【摘要】随着科学技术的日益发展,计算机技术深刻的改变了我们的生活。各种社会活动都已经离不开计算机,计算机成了我们生活的一部分。然而伴随着计算机的普及,各种计算机安全和网络安全问题凸显了出来。越来越多的针对计算机的攻击行为对计算机的使用安全和信息安全产生了巨大的威胁。计算机的软件安全检测是保护计算机安全和信息安全的一个有效手段。本文通过对计算机软件安全检测技术进行研究和分析,总结出了几种主要的计算机软件安全检测技术。 【关键词】软件安全;安全监测;计算机安全技术 1前言 计算机的软件安全检测技术是保护计算机数据的盾牌。要改善计算机软件安全检测技术,先要了解计算机软件安全监测的概念和基本情况,分析现存的计算机安全检测技术,为未来行业的发展提出指导性意见。 2计算机软件安全检测综述 计算机软件安全技术是否可靠决定了广大用户的信息安全和财产安全是否让人放心。如果计算机的安全软件存在着重大缺陷,就有可能造成重大的财产损失。开发安全软件,最重要的步骤就是软件安全检测,根据检测数据来对不同的安全缺陷进行针对性的调整,更好的解决软件安全问题。安全软件对于自身的检测是安全软件能够不断进步的试金石,检测行为能够在最小的检测样本中找出最多的安全问题,尽量避免安全问题直接进入用户的软件版本中[1]。而且,安全软件和普通软件之间还有着重要的差别。差别主要表现在三个方面。首先,安全软件和普通软件的缺陷发现方式不同。大多数的安全软件缺陷普通用户是不可能发现的,只有专门从事于网络攻击的黑客或者是专门从事于网络安全的人员才有可能发现漏洞,而对于普通软件,许多漏洞都是用户或者其他来源发现的,并非来自于测试人员。第二,安全软件与一般软件的修复速度也是不一样的,如果安全软件出现了漏洞,那么就会在第一时间进行修复,因为每晚修复一秒,都有可能有用户因为这个漏洞而导致财产损失。普通软件由于不涉及到安全问题,发现缺陷之后可以在下一个更新版本中修复。 3计算机软件安全检测的步骤 计算机软件安全检测一般需要遵循一定的步骤。软件安全检测是通过检测软件,实现计算机各部分的联系和互动,来测试整个结构的稳定性。软件安全检测有如下几个具体步骤:首先记性单元测试,对这个程序中的各种基本单位进行逐个的检查,排除基本单元可能存在的缺陷。第二步是把已经检验完毕的各单元组合在一起,来测试各单元之间的联系和沟通存不存在障碍,保证系统各部分之间沟通高效。第三步是测试整个系统的稳定性,保证每一条指令执行起来都能畅通无误[2]。 4主要的计算机软件安全检测技术 4.1词法检测技术 词法检测技术是出现时间最长、使用最广泛的静态检测技术。这种技术的原理是检测程序源代码中有危险的C语言系统调用。这个测试技术实际上是在被测软件的接口处生成一个模拟输入,来检测被测软件的运行情况。一般按照以下几个步骤来执行。首先是识别软件语言,然后再定语语言语法,最后生成用例,开始进行软件检测。 4.2形式化安全测试技术 形式化的安全测试技术要利用到软件的数学模型,利用数学模型的形式和规格来对软件的运行状态进行说明,来提供软件的运营状态信息。形式化安全检测技术要求更高的技术水平,其中包括了两种办法来进行安全监测。有模型检测,也有定理证明。 4.3基于故障注入的安全性测试技术 基于故障注入的安全测试技术采用的是通过某种极端情况来检测软件的稳定性,比如把时间调整到最不可能的时间点,让所有的事件通过表面合理的方式来进行连接,生成故障,然后再观察软件如何处理这个问题。故障注入的安全测试技术,是自动化程度比较高的技术,可以显著降低人工的工作量,让安全监测更加的充分。 4.4模型的安全功能测试技术 模型安全检测技术是通过建立一个模型的办法来测试计算机软件的应对和处理。在日程生活中,想要检验一个东西的可靠程度可以建立一个相似的环境来观察它的表现。计算机安全检测也是如此,建立一个安全模型,让软件在其中运行,驱使安全软件工作,观察它的工作状态。 4.5基于属性的测试技术 基于属性的测试技术有着两大优点。那就是互动性和延伸性。一般也要遵循固定的程序。首先要确定被测软件的安全规则,把它的安全属性带入到系统中,验证系统程序是否能够遵守设计的规则[3]。 4.6其他测试技术 除了以上这些测试技术,还有一些测试技术因为应用范围有限等因素,没有单独来说。这些技术有白盒模糊测试技术,也有分布式安全检测技术。近些年来,相关技术越来越多,越来越成熟,我们期待着能够从这些新技术中找到未来的发展方向。 5软件安全检测的注意事项 5.1具体问题具体分析 计算机软件安全检测是一个动态的过程,需要我们随时观察,随时修正。不同的计算机软件有着不一样的特点和特性,我们要针对每一种计算机软件的每一个过程来针对性的设计试验流程。让最终的实验结果能够更加准确。 5.2检测人员的多元化 计算机安全检测技术涉及到多个环节和多个行业,每个环节的专业倾向都不一样,想要做好计算机检测的工作,首先要保证检测人员的多样化。在进行软件检测的时候,不能只让软件检测员来负责,还要被测软件的相关专家来辅助。来自不同领域的检测人员互相之间协同配合才有可能把检测工作做好[4]。 5.3对安全软件详细分析在软件的安全检测过程中,要对软件进行详细的分析。区分出需求级、系统级和代码级。对于许多大型软件来说,除了以上三个级别,还有对软件的机构进行分析。安全软件检测是一项复杂的工程。需要我们时刻打起精神应对不断出现的新情况,对不同的安全软件使用不同的分析技术,必要时还可以使用各种辅助工具配合工作。 6结语 计算机软件安全检测技术是维护计算机安全的重要手段,需要我们尽可能的重视起来。本文首先对计算机软件安全的现状进行了介绍,然后对主要的计算机软件安全检测技术进行了总结。 作者:陈传顺 单位:中国移动通信集团广东有限公司 软件检测论文:纺织品检测业务管理软件开发及应用 摘要为提高检验业务的全面质量管理水平,实现任务、人员、数据的传输和共享,设计开发了纤维检验业务流转的管理软件系统。本文介绍了纺织品检验管理软件的必要环节控制,为当前需要业务管理改进的单位提供参考。 关键词:纺织品;业务管理;软件开发 纺织品检测业务管理是纺织品检验日常工作中的一个重要组成部分,过去的业务管理不管是手工还是计算机处理既繁琐、效率低,又不方便数据传输、统计和整合。为了提高业务管理效率和准确性,相关单位都在着手开发相应的业务管理软件,以便实现办公自动化。但因各个单位业务性质、规模大小、业务繁简程度各不相同,采用的业务处理程序也就有所区别,难以得到推广。本文介绍了纺织品检验业务管理软件的开发思路与模块结构,各个单位可以在此基础上扩展和完善。 1纺织品检测业务管理系统概要介绍 本文研究设计的纺织品检测业务管理系统,是对整个业务系统流程进行简单化处理的系统规划,此规划是完整性业务系统中必要性步骤的设计,此系统具有很强的扩展性,是完整业务系统开发的基础开发部分,各单位可根据自身业务特点扩展功能。业务管理系统主要涵盖检测全流程中的必要环节,包括对网上任务的评审、任务单的打印、自动分样、检测结果录入、报告审核、报告自动打印、检测收费核算、检测报告寄送、工作人员考核、检测报告状态对外查询和相关查询统计功能。考虑到各检测机构内部管理不同,业务管理系统主要针对必要性公用性模块的设计,并具有很强的通用性和可扩展性,是各检测机构进行完整业务系统开发的基础开发模块,各检测机构根据各自业务需求也可以提供定制化服务。通过对业务管理系统的严密设计,使整个业务流程的数据标准规范化、过程跟踪追溯化、管理数据严谨化。将样品受理部门、分样部门、检测部门、出证审核部门、证书寄送部门、管理部门通过业务系统科学有效的管理模式和应用技术连接起来,通过建立可视化工作流程模型记录每一步工作流状态,以便于各部门更好地协作工作[1]。 1.1纺织品业务管理系统功能需求 (1)缩短业务流转时间,建立高效流畅的业务处理流程主要体现在:加快样品登记、委托任务单评审时间,快速将委托任务分发给实验室,准确快速地出具报告,快速地将电子版报告上传给客户,将纸质版报告寄给客户。(2)增加信息数据可靠性通过调用标准模板,提高报告的准确度,通过对大量数据的分析,为企业提供可靠的分析报告。(3)提高业务处理智能化降低对流水线作业人员专业知识掌握能力的要求,通过权限的设置,各个部门之间权限分明、信息共享,扩大信息查询的范围,可以按照任意关键字进行查询。 1.2系统设计思路 业务管理软件用于检验机构处理检验订单、评审委托任务单、分样、检验结果填写、出具报告、报告样品物流管理以及各类统计功能的业务管理系统。通过运用业务管理系统,可视化管理业务流程,将接样、分样、检测、出证、人员考核、报告寄送、费用核算等环节智能化管理,提高工作质量和工作效率。业务管理系统功能见图1。 1.3软件设计系统结构 系统采用B/S模式,数据库采用SQLSERVER数据库,开发环境为JAVA,中间件使用Tomcat6.0。详见图2。 1.4系统功能模块结构 检验业务管理系统主要功能由七大模块组成:A.接样管理子系统;B.任务管理子系统;C.检测指标管理子系统;D.检测报告管理子系统;E.检测费用管理子系统;F.人员考核管理子系统;G.报告寄送管理子系统。其中A、B、C、D为检测流程控制主模块,E、F、G为系统辅助模块。详见图3。 2系统主要功能 2.1接样管理 接样管理是检测过程的起始点,用于确认一个检测任务的开始,即针对一个最终形成的检验报告对应一个接样管理记录,功能包括接样添加、修改和作废,相关内容涉及:流水号、样品名称、样品货号、采样时间、委托单位、付款单位(选择)、生产单位、来样时间、检测样品数量、预付金额、要求完成时间、录入人等信息。 2.2任务管理 任务管理是用于明确检测任务的具体信息而设置的,用于分离接样时因任务过多无法一次性填写,所以分离了接样基本信息和项目的输入,也是校核任务后流转下一环节的中转站。 2.3检测指标管理 检测指标管理是用于录入检测指标项的管理,根据任务书管理中的检测项目和检测标准,确定每个检测项目的分类指标项,并输入该项目的检测结果值,最底层指标项来源于系统管理中的收费、考核管理,输入指标需选择记录检测人员,已完成系统整理的人员考核统计。检测指标管理支持选择检测模板,选择模板后相关的检测项目将与检测模板完全一致,可进行项目的添加和移除操作,从而提高录入检测指标的速度。 2.4检测报告管理 检测报告管理包括检测报告的生成和打印,检测报告的指标项在检测指标管理中已经形成,按检测报告格式进行套打,可在检测报告中选择模板,在检测模板定义中可与检测指标管理直接关联,生成打印报告时可不再选择模板,将直接套用检测报告模板生成。 2.5检测费用管理 检测费用管理是检测报告完成后的后续收费管理和已完成任务的费用查询统计,可查看检测报告中的所有项目和子项目的收费情况及总计,可查看预收费用和实收费用,根据客户或时间段进行统计整体收费情况。如检测中客户为签约客户,将从客户余额中直接扣除,并生成客户的费用日志,内容包括报告编号、客户名称、检测费用、余额和扣款日期,在客户查询报告状态中客户也可自行查看费用情况。收费处理中需输入项目为实收费用和收费完成日期。 2.6人员考核管理 人员考核管理模块是放置在系统管理的人员管理中,为了明确数据来源,此功能单独作为一个功能模块列出。人员考核的数据来源于检测指标输入,根据检测指标的考核费用指标进行计算。可按部门、人员、时间和检测项目进行统计查询,获得人员产值和检测情况。 2.7报告寄送 报告寄送是对检测报告寄送方式的企业进行管理,按已完成报告时间段批量打印快递寄送单,寄送单打印后自动将处理状态设置为已发送并记录发送时间,如需重新打印可选择任务或进入客户管理中打印单个寄送单。 2.8系统管理 系统管理是针对系统基础信息进行设置的功能,包括客户管理、标准管理、指标项管理、收费、考核管理、检测模板管理、报告模板管理、人员管理和权限管理。系统正式运行前必须对基本系统信息设置完整,客户、标准、指标等信息发生变化时,必须及时修改。 2.9客户在线查询 在外网开放报告查询和扣费日志查询,检测状态已接样和报告已完成寄出。扣费日志查询可查看检测费用的扣款情况。 3应用效果 本所开发的业务管理软件是集接样、分样、检验、出证以及会员一体化的专业纤检业务管理软件,采用多层架构分模块开发。该软件性能稳定,运行安全,操作简单,管理方便。运行一年多以来,业务工作效率明显提高。改变了以往依靠人工流转,无法记录中间拖延环节与错误而造成工作效率低下的工作模式。应用管理软件后业务流转中样品的接样、分样、检验、出证以及做账等每一道程序都记载人员、时间、工作量及工作质量;流转中前后衔接、准确、快速地处理好每道任务。业务管理软件的应用,减少了检验业务中的等待、重复、不必要的协调等活动,简化不必要的表格填写,整合原职能分工不明确的岗位。同时方便采集、传递和共享数据,向客户提供便捷的业务查询途径。 4结束语 业务管理信息化是时展的需求,随着电子技术的发展、检验规模的壮大以及业务需求量不断扩大,业务管理软件需要不断改进、不断完善、与时俱进,更高效地发展检测服务管理。 作者:陆素梅 软件检测论文:计算机软件安全检测技术简析 [摘要]随着科学技术的不断发展与创新,计算机已经成为人们日常生活工作中的必要工具,但同时随着计算机的应用不断深入,人们对计算机使用性能和安全程度有了更高的要求。计算机的功能由硬件和软件共同支撑,其中计算机软件是计算机赖以工作的基础,针对计算机软件的安全检测技术又是确保计算机安全工作的重要内容。计算机软件安全检测技术是针对计算机软件不同的安全指标进行安全检测,该技术的科学应用可以准确高效地识别出计算机软件中存在的安全漏洞。在本文中对计算机软件安全检测技术中存在的问题和解决方案进行简单分析,以帮助相关技术人员在实际应用中进行参考。 [关键词]计算机软件;安全漏洞;检测技术 0引言 对计算机软件安全性能进行考评是在计算机的软件开发和使用过程中极为重要的步骤,该步骤的顺利实施可以帮助相关技术人员找到软件运行中存在的故障和安全隐患,并可以根据检测结果及时进行修补,以保证软件的正确使用和推广。现行的计算机检测技术在应用过程中仍无法完全避免漏洞和错误的发生,因此在实际的应用中需要相关技术人员采取科学高效的安全检测手法对计算机软件进行评定。 1计算机软件安全检查流程及注意问题 1.1计算机软件安全检查流程 在对计算机软件进行安全检查时,软件多为大型的应用软件,该软件内部往往包含着由多人开发的冗杂子系统,因此对大型软件进行安全检查是一项庞大复杂的工程。在实际的安全检测过程中通常将大型软件的子系统分割成互不影响的模块,对这些模块进行安全检测。大型软件的检测工作通常情况下先对模块进行测试,之后将各个模块组装成系统,然后对该系统的结构进行安全检测,最后在对软件整体的功能和性能进行有效测试,以判断软件的性能指标是否与预期相符,采用这样的检测流程就可以实现对软件安全指标进行科学的考评。 1.2制定高效合理的软件安全检测方案 在对计算机软件进行安全检测之前,需要对计算机软件的功能和特性进行充分的考察,并根据具体的情况制定出科学合理的软件检测方案,以确保安全检测方案实施的高效性。在进行软件安全检测具体工作时,应邀请具有专业知识经验的人员参与,并再配备熟悉和掌握该软件特点的技术人员参与,另外还可以聘请多领域相关的专家参与工作,从多个方面对软件进行考评测试与修正,以保证计算机软件可以达到理想的应用效果。 1.3系统化全面性的分析 计算机软件安全检测是一个冗杂繁复的过程,如何选择有效且可行的检测方案是执行人员需要着重考虑的问题,在实际工作中应该对计算机软件做到系统化和全面性的分析。大型计算机软件的程序通常具有较大规模,在进行软件安全检测时就要求技术人员对软件进行代码级、系统级和需要级的细致检测,另外进行计算机软件安全检测时对同级别检测也需要进行合理的技术分析。 2计算机软件安全漏洞检测方式 2.1形式化安全检测方式 通常情况下若是可以搭建准确的计算机软件数学模型就可以采取形式化的安全检测方法,在实际的应用过程中往往采取形式规格语言进行使用,在检测的过程中常常使用行为语言、模型语言或是有效状态语言等规格语言。 2.2静态模型检测方式 静态模型检测方式是在使用的过程中需要对软件的具体行为和结构框架进行模型建立,在进行检测时实际就是对该测试模型进行检测,通常情况下使用的设备对该模型具有可读性,并可以具体运行,其中应用最为广泛的包括有限状态机和马尔可夫链两种方法。静态模型的检测方法通常情况下采用系统化的建模检测方法,因此与形式化安全检测方法相比更加合理,不需要软件所有的工况都保持不变,而是通过对模型建模得出一系列的测试模型,当该模型经测试后与软件的期望值相同时证明该软件不存在漏洞。 2.3语法检测方式 语法检测方式是又一种较为常用的计算机软件检测方法,该种检测方法通常情况下是基于语法特点在软件的生成功能接口处进行检测,对该接口处的语言和语法进行检测,并在一定的条件下生成检测用的范例,通过改变计算机软件的上级输入条件,并在下级处检测不同输入条件下的输出结果,并根据不同的检测结果对软件的安全性能进行检测。2.4导入故障检测方式导入故障的检测方法是一种融合了传统故障检测技术和动态检测技术的科学软件安全检测方法,该种方法建立在白盒模糊检测基础上并在操作中不需要冗杂的操作规范,但是在查找软件漏洞方面却有很大成效。通常情况下需要考评常见的故障和漏洞类型,并建立系统的故障漏洞树,之后通过对软件的人为测试以对软件的漏洞和故障进行检测,该种检测方法可以极大地提高安全检测技术的自动化程度,因此在未来的计算机安全检测中会得到更广泛的应用。 2.5安全属性检测方法 在进行计算机软件开发过程中编程人员采取不规范的编程规则就容易导致软件产生安全漏洞和故障,因此在软件开发之前由相关部门制定科学的安全编程规则是保证软件安全性的重要手段。在软件开发过程中严格按照安全编程规范,之后按照确定的规则对软件程序代码进行检查,这种方法可以对软件漏洞的交互性和延展性得到及时分析。 3结语 在信息化高速发展的今天,各行各业对于计算机的应用已经达到无可替代的地步,而对于大多数的公司来说数据安全是管理者需要着重考量的问题,在信息安全体系中计算机软件安全检测是必不可少的部分,因此日常工作中对计算机软件进行科学高效的安全检测,是促进计算机软件良性发展的重要内容,相关的技术开发人员需要在今后的工作学习中不断探索出更为有效的计算机软件安全检测方法,真正保障软件使用者的安全应用,维护软件使用者的自身利益,促进市场的平稳健康发展。 作者:鲁艳丽 单位:长春市企业退休人员档案管理中心 软件检测论文:计算机软件中安全漏洞检测技术研究 摘要:对软件程序进行重新设计和编写,是预防安全漏洞、确保软件安全的主要手段。所以,计算机技术人员要不断努力,强化安全漏洞检测技术,保障计算机软件运行安全稳定。在计算机的软件系统中,安全漏洞是对信息系统造成威胁的主要原因,所以,计算机软件中安全漏洞的检测技术成了现今人们探索的重点问题。文章研究了计算机软件中安全漏洞检测技术。 关键词:计算机软件;安全漏洞;检测技术;应用 近年来,计算机技术的应用越来越普遍,计算机软件的发展非常迅速。同时,源代码的数量也随之急剧增加。一些黑客通过代码中的某些漏洞对计算机的软件及系统入侵并破坏。所以,计算机软件的安全问题已经变成了如今系统安全的关键问题之一。 1计算机软件中的漏洞 漏洞是软件、硬件、协议实施中的纰漏,也是系统安全层面的缺失处,让未获取授权认可的攻击方对系统探访、攻击、损害。漏洞的自我特质面可从几个层面表征:第一,是在编订程序的环节内有某些逻辑类失误的生成,该种失误是由编订者粗心引发,较为常见。第二,是在软件的各个数据演算、处理的环节中,也会有某些逻辑类失误的生成,在程序模块中用中等大小同较小、较大的模块比对看出,非中等程序模块失误比率较高。第三,漏洞和软件系统的环境关联度较高。同一台计算机中各异的软、硬件版本、在配置不等的前提下,每各设备共组的软件体系同系统一致但设置不等时,都会有安全层面的缺陷处。第四,软件的整体系统漏洞和时间也有关联性,也就是说在时间长度的延伸下,曾出现的漏洞会被补修、更正,但新的漏洞也同时会更加显现。所以,计算机软件内的漏洞是长久存留的难题。 1.1计算机软件安全漏洞的原发性 通常情况下所谓的计算机漏洞是指由于计算机软件自身含有某些潜在的缺陷和劣势,这些潜在的缺陷和劣势由于自身包含的特点可能引发一些风险或者说造成相对容易的攻击范围。计算机软件漏洞出现的主要原因就是由于计算机软件设计人员的操作存在失误。从上面的分析中可知,计算机软件最主要的就是由于自身存在着缺陷才导致了后天的攻击性行为。计算机软件设计人员在设计的过程中很难考虑全部的设计因素,而且现在的软件设计人员的设计水平良莠不齐,这就决定了计算机软件在投入市场的开始就存在着一定的风险,这种风险是由于计算机软件本身所存在的某些原发性错误引起的。 1.2计算机软件安全漏洞的差异性 计算机软件的应用范围很广,目前市场上存在着各式各样的软件,这些软件适用的工作区域也不一样。一般来说,计算机软件漏洞和其工作的环境之间存在着较为密切的联系,在不同的工作环境内即使相同的计算机软件也可能表现出不一样的漏洞特征。计算机软件的工作环境对于计算机软件的运行起着至关重要的作用,计算机软件主要根据写好的程序代码运行,在不同的设备上,计算机软件的代码执行过程也会存在一些差异,这些差异都决定了计算机软件漏洞的多样性和差异性的特点。 1.3计算机软件安全漏洞的延续性 计算机软件都会不断更新,计算机软件的漏洞也会不断被修复,然后随着而来又会出现一些新的计算机软件漏洞。在使用的过程中计算机软件会随着时间的推移,原先的漏洞会不断被修复,然而程序总会存在新的程序逻辑错误,这些新的逻辑性错误又会导致新的漏洞,计算机软件漏洞就不停地处于这样一个无限的循环中,除非一个计算机软件彻底被市场所淘汰。 2计算机软件中安全漏洞的检测技术 现阶段,信息技术已经成为人们生活中一个必不可少的生活要素。随着科学技术的不断进步,各种计算机软件的不断被开发出来,开发计算机软件的人也变得多起来了。目前,国外有关的专家研究发现,随着计算机软件的大量使用,计算机软件的漏洞的数量和频率都变得越来越高。目前网络黑客的数量也变得越来越庞大,黑客的性质也发现了质的变化,越来越多黑客在利益的驱动下对个人和集体用户展开了大规模的攻击。在这种大环境下,只有计算机技术人员不断提高计算机软件安全漏洞的检测技术才能应对这种挑战。计算机软件内的安全漏洞可检出的策略有2类:一类是静态模式的检测技术,另一类是动态模式的检测技术。 2.1计算机软件安全漏洞的静态模式检测技术 最开始的计算机软件安全漏洞静态检测就是静态分析,但是由于其检验的方式多停留在表面,因此,近些年开始逐渐对其进行研究与创新,静态检测也就逐渐扩充成为2种内容:静态分析及程序检验。其中,静态分析指的是对需要检测的系统程序进行源代码的扫描工作,从语义、语法等角度进行全面解析,同时直接分析待测系统程序的自身特性,利用这种方法寻找漏洞。而程序检验是指抽象系统内的程序源代码。主要借用检验方法,检测软件系统的程序是否符合计算机的需求,特别是对安全的需求,然后对程序中的安全漏洞存在与否进行判定及检验。对于计算机软件安全漏洞的静态检测来讲,其更多注重的是计算机软件系统程序的内部特性,静态检测的方法特点同检测漏洞的特点之间包含着密切的关联。计算机软件中的安全漏洞所执行的静态模式检测,最初是静态模式辨析,但监测的技术手段多侧重于表层。所以,在更深入的探究和研创后,静态模式的检测内涵得以拓展,既有静态模式辨析,也包括程序的验查。静态模式辨析就是对检查测试的系统程序扫描其源代码后,从语法层面、语义层面进行多方位的阐释,并把检测系统程序的特性予以直接化的辨析,借此探寻出漏洞所在。程序验查则是对系统程序中的源代码抽象化。凭借验查手段,检查软件内组的系统程序同计算机所需的相符度,以及能否同安全所需匹配。接着辨识和验查程序安全层面存在的漏洞。该种静态化的软件安全漏洞检测法,更倾向于软件自身系统程序的内存特质,同时和检测漏洞特质有着较高的关联性。 2.2计算机软件安全漏洞检测技术中的安全动态检测 2.2.1内存映射 在攻击群体中,往往多用字符串末尾部位“NULL”字样的序列对内存做全覆盖,进而实施损害攻击。在代码页中实施的映射技能,可让攻击方作出字符串末尾部位“NULL”字样的序列对内存做全覆盖举动时,跳转至简易内存区域中的操控难以进行。从另一侧面来说,在内存的多个地址中,随机性地映射代码页,可缩减揣度地址而发动页面损害攻击的发生比率。 2.2.2非执行栈 近年来,攻击软件的举措多发生在对栈的破坏上,这是因多数操控系统内的栈所属的能写性和执行性所引发。在内部的变量存储中,栈的载体中有核心数组的变量,攻击方借此可将恶意的代码发送至栈内,并探寻出代码执行手段。而要规避栈的侵袭、损害可执行的有效策略为,更改栈内执行代码使其不可执行。这样更改后即便攻击方将恶意的代码送至栈内,但代码不可执行很好地缩减攻击的成功率,让程序不被损坏。 2.2.3安全共享库 某些计算机运行了安全性极差的共享库就会引发软件安全漏洞。共享库的安全度高可用对攻击方的损害行为很好的防预,而安全度低的共享库则易被损害。安全化的共享库是动态化的链接模式运作,在程序运作环节将多类安全度低、没安全性的函数运用予以拦截,并进行另外的测验,进而保证计算机软件整体的安全。 2.2.4沙箱 沙箱法是对某些损害性攻击的防预,即借助某一程序的资源访问限定来实现。如某些调动函数会被编入C语言中,而某个软件自身是不会有此种调动函数的。若出现了软件运行时有类似调动函数的运行,软件已经被恶意侵入。但在恶意侵害之前,运行沙箱对其做出限定,则在入侵后不会有不良损害。 3计算机软件中安全漏洞检测技术的应用 3.1预防竞争条件的漏洞 漏洞的成因中也有因竞争条件而引发的缺陷,对其防预的策略就是将竞争成因的编码执行原子化运作。编码是最小的执行单元,在运作程序环节内不会有任意状况对其实施干扰。原子化运作就是用锁定的操作,对某一特定的状况更改而衍生的问题予以防预,这样可对应用文件名体系实施间接化的调用,可表述出应用文件或使用的句柄。 3.2预防缓冲区的漏洞 对于缓冲区内的漏洞可借助软件程序内危险值高的函数验查来实施防预,将安全度较低的软件用高安全度的新版本替换。 3.3预防随机出现的漏洞 在对随机性的漏洞实施防预时,可借助随机性高的发生设备来进行。随机发生设备有着自属密码演算,可确保随机数流的高安全度。在软件被恶性侵害,对算法每一细微处都掌控,但数据流不会形成,进而起到防预能效。 3.4预防格式化字符串的漏洞 执行严密、谨慎的防预方案,直接性地在数码中运用格式常量,让供给方找不到可创设格式串的缺陷处。个数函数在不定参数时往往会有格式化字符串的缺陷潜藏,对此类函数运行时就要让每一参数的数目有保障,均衡稳定。 3.5计算机软件安全漏洞的防范措施 计算机软件安全漏洞检测技术应用的过程中,一方面要避免缓冲区漏洞,认真检查程序中的危险函数,使用安全的计算机软件,不用盗版软件和非法软件,时刻做好缓冲区漏洞的处理和防范。一方面要避免竞争条件漏洞,在竞争代码原子化操作的过程中,借助于文件句柄和其他文字描述字,保证计算机软件的安全。另一方面要避免格式化字符串漏洞,尽可能地使用源代码中格式常量,进而避免留下格式串机会,并防止随即数漏洞,提供安全的随机数据量,并对全部算法细节进行加密。 4结语 21世纪是一个计算机技术高速发展的社会,随着经济社会的发展和经济全球化的影响,计算机技术在我国得到了大范围的发展,在我国的各个领域中目前都离不开计算机,计算机的产生为我国的现代化建设提供了不竭的动力。但是,随着信息技术的不断发展也逐渐暴露出一些潜在的问题。目前,计算机的安全性已经成为人们关注的焦点。随着开发的人越来越多,使用的人越来越多,恶意利用计算机软件获取个人信息、破坏计算机安全的人也就变得多起来了。目前,计算机安全已经成为世界各国高度关注的一个问题。有关的技术人员必须引起高度的关注才能有效解决计算机软件漏洞,给计算机系统一片绿色的天空,给人们的网络环境和信息安全提供一个新的平台。总括来说,当下的周边环境内,计算机软件安全漏洞的检测技术演化为基础通信验查、基础计算机安全检测的手段。运行的每一软件安全性更多侧重在程度的编订、漏洞的遏制层面。所以,探究计算机软件的安全类漏洞检测技术,并对该技术的运用辨析,是当下工作者需更深层考量的事务。 作者:陈国栋 单位:山东电力高等专科学校 软件检测论文:计算机软件安全检测技术研讨 摘要:随着科学技术的不断发展,计算机软件的种类也越来越多,满足了人们日常生活和生产过程中的不同需求,从而在一定程度上使软件的安全性能呈现出多样化发展趋势。软件在运行过程中也开始出现各种安全漏洞,对计算机和互联网的安全使用造成了很大威胁,因此,研究计算机软件安全检测技术的应用显得十分必要。 关键词:计算机软件;软件安全;安全检测 0引言 随着我国社会经济的飞速发展,在电子计算机科学技术不断完善和成熟的今天,计算机已融入到人们生产和生活的各个方面[1]。计算机的使用建立在相关计算机软件基础之上,不同的计算机软件满足人们不同的生产和生活需要,尽管为人们提供了诸多便利,但其安全性一直是困扰计算机使用的障碍,也给互联网安全造成了威胁。所以在当前的计算机软件开发过程中,对其进行安全性检测已经成为了一项核心内容,这种措施能够有效帮助相关的软件开发人员找出潜在的安全隐患,并在此基础上采取一定的应对措施,保障计算机软件在使用过程中的安全性。 1计算机软件安全检测的基本形式 计算机发展使得用户在软件使用过程中,对其安全性有着更高的要求,主要表现为:①用户安装计算机软件后,并不会对计算机本身的正常使用产生较大影响,如计算机运行速度明显变慢等;②在用户使用计算机软件的过程中许多个人信息被留下,计算机软件安全性得不到保证,与用户相关的使用信息就可能被泄露,从而影响用户的隐私保护,计算机软件声明周期中出现安全问题的原因[2]如图1所示。因此计算机软件开发人员在软件开发过程中,要利用一定的安全检测技术对计算机软件中存在的安全漏洞进行检测,并对其修复以提高计算机软件的安全性,降低使用过程中存在的风险。计算机软件安全检测是在计算机软件开发过程中,对软件的安全性能进行检测的一个过程,以找出程序中容易发生的错误。当前软件安全检测技术主要有动态和静态两种检测形式。计算机软件安全检测是指利用相关检测技术,在软件开发过程中对软件的漏洞和缺陷进行系统性的检测,从而保证软件的功能达到预期效果,计算机软件的安全检测内容主要集中在简单的计算机软件安全功能和安全漏洞检测方面:安全漏洞检测是检测计算机软件的安全缺陷及在计算机使用时产生的安全隐患,其停留在对普通计算机软件缺陷的检测方面,这类问题的解决主要是通过软件升级或版本修复;而计算机使用的安全管理、授权、访问控制和机密性等是计算机软件安全功能检测的主要内容,其主要对计算机软件安全功能起到了检测判断的作用。 2计算机软件安全检测的基本要求 首先,在计算机软件安全检测的过程中要使用科学有效的安全检测方法。鉴于计算机软件程序的复杂性,简单的检测方法会导致软件中很多潜藏的安全问题不能被排除,所以开发人员一定要在了解软件的相关特性以及检测软件的使用条件后,根据实际情况选择适合的检测方法,制定出科学合理的检测方案,同时在细节方面也要根据相关要求进行深化和细化。其次,对计算机软件的检测需要多类人员共同参与,才能尽可能多地排除软件中潜存的安全威胁,主要是因为软件漏洞存在于软件开发程序的各个环节,所以多元化的人员参与有利于实现检测方法的多样性,使排除安全隐患的几率更大。在软件安全检测过程中,除了需要具有专业软件安全检测技术的人员参与外,还需要有了解软件工作和使用特性的人员,从而实现多角度、全方位的检测,以排除更过的安全风险,满足软件使用的安全要求[3]。最后,在对软件进行安全检测的过程中,还要选择合适的安全检测方法,选择前首先要对计算机软件检测的各种方案和案例进行分析研究、归纳总结,得出一般的检测规律,并结合具体要求,选择适合的检测方法,制定合适的检测方案,将检测过程具象化。通过电脑模拟对制定的检测方案建立数据模型,而语言支持在这个过程中帮助模型实现形式化的表现。以上环节结束之后,再开始检测模拟系统,这也相当于对软件进行了运行和结构的安全测试。 3计算机软件安全检测的具体技术 3.1语法安全检测技术 这类检测技术的主要检测对象是计算机软件中的语法,最终检测结果也会因为最初输入条件的不同而产生差异,其监测流程如图2所示。语法安全检测技术通常被用于检测源程序中的安全漏洞,该检测技术可及时有效地检测出系统函数与C语言库函数的切换,并及时恰当地作出处理,从而建立以语法为基础的测试数据。同时该检测技术还能实现对计算机软件的安全检测,排除潜存的安全风险,保证计算机安全运行。 3.2动态安全检测 计算机软件运行环境的变量是动态安全检测的主要检测对象,它包括内存、栈等在内的诸多信息,主要是对漏洞等风险因素进行检测,其检测流程如图3所示。在这类检测技术应用过程中,如果计算机软件的漏洞被发现,就会自动完成相关修复工作。这种检测技术的使用,由于不需要修改计算机软件源码,所以很好地保证了计算机用户的隐私安全[4]。随着计算机在商务应用中发挥的作用越来越大,其普及率也越来越高,为了保证商业机密的安全,这种软件的检测技术更加适用于商务性,从而也保证了在商务领域的推广和应用。 3.3静态安全检测 基于程序代码内部特性和结构是静态安全检测技术的重要特征,这类检测技术的应用,需要事先构建合理的测试模型,以满足计算机读取的相关要求,在此基础上,静态安全检测技术才可以被使用,静态检测技术中一种类型推断技术的检测流程如图4所示。在利用这种安全检测技术进行检测之后,再将测试模型和待检测的数据进行对比,如果计算机软件具有良好的安全性能,它们的期望就会一致。在当前计算机安全检测技术不断发展和成熟的背景下,静态安全检测技术的种类也越来越多样化,并且越来越多的安全技术人员投入到此研究中,静态安全检测技术必将得到更为充分的发展,并且在相关计算机软件安全领域发挥重要作用。 3.4混合安全检测 混合安全检测技术实现了计算机软件动态安全检测与静态安全检测的结合,它吸收了两种检测技术的优势,同时也克服了两种单一技术中的劣势,所以在计算机软件安全检测技术中有着较为优越的检测能力,从而使这种混合安全检测技术获得了更高的检测精度,扩大了检测的应用范围,也推动了漏洞检测技术在相关的计算机软件安全检测技术中的发展。如图5所示就是混合检测技术中的Fuzzing检测技术流程。 3.5基于web技术的安全检测 这类检测技术是基于web技术的逐渐推广和广泛应用,随着Web技术的不断发展,在计算机软件安全检测中发挥着越来越重要的作用。相较于之前的计算机软件安全检查技术,基于Web技术的安全检测技术在检测性能等各方面都表现出优异的成绩,它具有更优的灵活性、高效性和先进性。在检测过程中能够对计算机软件中存在的安全风险和漏洞进行及时有效的修复,同时也保证了计算机的安全、可靠、高效运行。在我国计算机软件安全检测技术不断发展和提高的今天,这种检测技术的成熟和推广是一种必然趋势。 4结语 计算机安全检测技术的应用在计算机日益普及的今天是非常必要的,它为计算机的安全使用和良好运行提供了重要保障,并且在科技日新月异的今天,相信相关安全检测技术的发展和完善必将取得更多成果。 作者:关若飞 单位:南京中医药大学 软件检测论文:计算机软件安全检测技术分析 1计算机软件安全检测定义及重要性分析 计算机软件安全对于保障计算机运行的安全十分关键,计算机软件是否能够运用于计算机中,也是需要对软件安全性进行评估,只有软件安全性达到一定标准才能够满足系统兼容性并投入使用中。计算机软件安全检测是利用多种检测技术发现软件设计的漏洞,并排除软件使用中的风险性问题,保障计算机软件的安全运行。计算机软件不同于一般的应用软件,一般应用软件发生问题多为影响用户的应用体验,而无实质性的危险发生。而一旦计算机软件故障并遭受到网络攻击,则将影响计算机的运行,甚至系统崩溃。由此可见,计算机软件的安全性对于保障计算机网络安全有着重要意义。利用多种计算机安全检测技术,并根据软件类型和特点有选择性地进行安全检测,排除可能存在的软件问题,以进一步提高计算机和系统与软件间的兼容性、安全性。 2计算机软件安全检测技术类型分析 2.1静态检测技术 静态检测技术,顾名思义是检测软件的静态故障。如软件编写代码的错误以及语法上的错误等等。由于网络攻击可能利用有缺陷的程序代码和漏洞来进行攻击,因此利用静态检测技术,排除软件编写中语法和程序的错误,可以做到最大程度上的风险减免。通过测试计算机软件的使用情况,利用“与”或“非”等逻辑输入形式,根据输出结果来判断计算机软件编程中是否存在相应的语法问题。 2.2形式化安全检测技术 形式化安全检测技术主要是验证软件的合理性,根据软件设计的模型以及数理上的可行性分析,来证明软件使用的安全性。形式化安全检测包括对软件的数学模型进行检测,分析模型运行的可行性以及模型的逻辑性。同时也包括对软件进行定理证明,发现软件设计上的数学错误和逻辑问题,以避免风险性问题的出现。 2.3基于故障注入的安全性检测技术 基于故障注入的安全检测技术是较为常用的安全检测技术,也是较为可靠的检测技术。故障注入的检测技术,是利用生成的故障问题来观测软件运行时的安全性,即观测软件故障时的具体表现。故障注入即是模拟故障,通过修改软件内存和改变软件设计逻辑等方式,来模拟网络攻击和故障时计算机软件的通常表现。通过还原的故障状态,能够进一步评估软件在故障时的不足之处,以及检测软件自我修复功能的良好程度。在实际应用中,还能够结合硬件的故障注入技术,实现软件与硬件的同时检测,以排除软件与硬件问题之间的相互影响。 2.4基于属性的安全检测技术 基于属性的安全检测技术,首先需要确定软件的安全属性,并根据安全属性的特点来评估软件程序编码中的可靠性。部分软件的编码表面上可以达到一定的安全性,但根据系统与软件的安全属性,则表现为软件在编码上存在不足,难以维护软件的安全属性,可见进行基于属性的安全检测是有积极意义的。 2.5其他安全性检测技术 其他的软件安全检测技术,比如“白盒测试”、“黑盒测试”以及建模测试等等。软件安全检测技术多以软件的语法测试或功能测试出发,如基于“白盒测试”的安全检测技术,则主要从软件代码出发,发现编码中出现的语法问题。此外,还有基于软件功能进行测试,分析软件模型的功能性,具有较强的实用性,能够有效检测出软件设计中的问题,以保障计算机软件的安全性。 3计算机软件安全检测技术应用分析 3.1计算机软件安全检测流程分析 计算机软件安全检测的进行,需要根据计算机软件的大小而决定,对于组成复杂的计算机软件往往需要分步分区进行检测。计算机软件安全检测的基本流程由模块测试、结构检测、功能测试、系统测试等多个步骤组成,首先模块测试主要是需要对软件设计与编程的早期问题进行检测,如程序算法、语法等方面的问题。其次是对软件结构进行检测,软件结构是否完整,是否能够支持相应的软件的功能。其次是功能测试,检测软件在使用中是否可以实现特定功能,通过故障注入等方式,还能够检测软件故障时的功能可靠性。最后需要进行系统测试,分析计算机软件与系统的兼容性等等,以保障软件在计算机系统中功能的正常实现。 3.2计算机软件安全检测的注意内容 在对计算机软件进行安全检测时,需要把握好相关注意事项,同时也是计算机安全检测技术应用时的重要考虑事项。计算机软件安全检测技术种类较多,需要根据计算机软件的特点和检测目的来进行合适的选择,同时需要按步骤进行检测,规范化检测程序,以保障安全检测的良好效果,发现潜在的软件风险问题。在软件安全检测中,需要进行系统的全面分析,以综合考虑软件与计算机的兼容状况,才能够准确评估软件运行的状况。 4结束语 计算机软件安全检测技术种类繁多,在实际运用中,需要根据计算机网络的实际状况以及网络风险的类型而进行合适的选择。运用合理的计算机软件安全检测方法,将能够维护计算机网络的安全与稳定,提升计算机软件的可靠性。 作者:廖肇军 单位:江西现代职业技术学院 同济大学软件学院 软件检测论文:计算机软件中安全漏洞检测技术分析 1漏洞产生的原因、形式及主要特点 1.1漏洞产生的主要原因及形式 漏洞在本质上可以理解为系统中存在的缺陷和弱点,其会对计算机系统造成一定的威胁,漏洞产生的主要原因是由于开发设计人员的失误造成的。通常情况下其有两种主要的表现形式,分别是功能性漏洞和安全性漏洞。功能性漏洞主要是系统软件使用过程中产生的运行错误及流程错误等,而安全性漏洞主要会对计算机软件及整个系统的运行造成较为严重的影响。 1.2漏洞的主要特点 首先,漏洞的产生主要是在程序编制过程中疏忽造成的,而数据处理与计算相比会更有可能出现逻辑性错误。其次,漏洞与具体的系统环境之间是存在着相互联系的。第三,系统漏洞与时间之间存在着紧密的关联,随着时间的推移在旧的漏洞基础上可能会产生新的漏洞问题,其具有长期性。 2静态检测技术 最初期的计算机安全静态检测在本上指的就是静态分析,但是由于其验证方法的不同所以又可以分为静态分析和程序验证两个主要形式。首先对于静态分析而言,其主要是通过系统中各程序代码的扫描,并在语法和语义等层面对其进行全面理解,随后对程序自身的特性进行直接分析,从而找出存在的漏洞问题。而程序验证主要是采用验证技术对系统程度能否存在安全漏洞进行检验,重点关注的是安全方面的要求。 2.1漏洞分类检测 在静态检测中,其关注点主要集中在系统程序内部的具体特征上,其进行检测的漏洞特征是与其技术特点有着较为紧密的联系,并且对安全漏洞的分类方法较多。对于大多数的检测技术而言,其能够有效覆盖的漏洞都具有一定的零散性,所以较难找出其在漏洞类型上的共同点。为了方便对其比较,我们可以将其分为安全漏洞和内存漏洞。安全漏洞主要是指数据流的错误和偏差状况,而内存漏洞主要是指数据的储存与类型是否正确等。 2.2静态检测技术 2.2.1静态分析 静态分析中最为常用的技术方法是词法分析,其也是应用最早的静态分析技术,其将系统程序分解为若干个小片段,随后将其与嫌疑数据库进行对比,从而发现漏洞问题并进行评估和判断。但其只停留在语法检查上,还应在安全规则基础上通过特定语法形式对其加以描述,并利于规则处理进行相应的接收处理,随后将其装换成分析器可以进行接收的相关表达内容,并对系统程序的行为进行检测和对比分析。 2.2.2程序验证 程序验证的主要方法通常有符号化法和模型检测两种,其中符号化法主要是采用将抽象模型状态转化为语法树描述公式,并对其公式的有效性进行判定。模型检测一般情况下需要将实践中可能出现的状态一一列举出来,但是由于系统软件自身的复杂性,其程序模型的规模较为庞大,因此主要是对其部分程序及属性进行抽象模型的构造,并通过内存建模来实现对时序漏洞的有效检测。 3动态检测技术分析 3.1内存映射技术 在攻击者常用的攻击当中,有一种以NULL界位字符串来进行内存覆盖,通过对于映射代码页的应用,我们可以将NULL界位的字符串跳转到低内存中的难度增大,换言之就是说将代码页随机映射到不同的内存地址上,从而在一定程度上防止对页面的攻击。 3.2安全共享库技术 安全共享库技术主要是通过采用动态链接技术,从而使程序运行过程中拦截就有不安全性因子的函数的使用,并随时对函数的参数进行检测,该种当时在Windows以及UNIX上得到了较为广的应用。 3.3非执行栈技术 当前基于栈而进行的软件攻击事故相对较多,其主要是采用想栈中写入恶性代码的方式来进行软件攻击,因此最为直接的防范方式就是拒绝栈执行代码,由此才能使得攻击者在栈中写入的恶性代码不被执行。 3.4非执行堆和数据技术 一般情况下,堆是在程序运行过程中动态分配内存的区域,而数据段是在程序编译时已经初始化,因此如果数据段与堆都不执行代码操作,那么攻击者在其中写入的代码就不会执行,如果将其与非执行占技术相结合,会使写入的恶性代码彻底丧失执行的机会。 4结语 在信息时代环境下,计算机软件安全已经成为了计算机通信安全的重要基础保障,通过静态检测技术以及动态检测技术的综合应用,必定能有效的消除计算机软件方面存在的漏洞,大大降低计算机运行风险,提升其软件安全性。 作者:章立 单位:江西旅游商贸职业学院 软件检测论文:鼠标角位移检测的软件设计方法 1鼠标电路简化及光电码盘精度提高 将机械鼠标改造成为角度传感器,只需要用到其光电码盘及光电检测模块,因此可以将鼠标的电路图简化成如图1所示的形式,包括发光二极管、光敏三级管、鼠标芯片。光电码盘每转过1周能够产生36个脉冲,再由鼠标芯片进行4倍频细分,使得光电编码器每转能够产生36×4=144个脉冲。即最小能够分辨的角度是360°÷144=2.5°,显然精度不够高,因此我们可以在光电码盘前端加上两级齿轮传动,来将分辨率放大16倍,其最小能够分辨的角度是360°÷(144×16)=0.15°≈0.2°,如图2所示。鼠标光电码盘的大小一般为20mm,考虑到尺寸的搭配,齿轮可以选用玩具车上的塑料齿轮,这种齿轮价格十分便宜。其模数一般为0.5mm,如:1、3号齿轮可以选用40齿(直径20mm),2、4号齿轮选用10齿(直径5mm)。 2软件设计 软件设计采用VisualBasic语言编程。程序包含两个部分,第一部分是将芯片初始化设置,去除自动加速功能。其具体方法是,程序向芯片发送十六进制代码E7,命令芯片关闭自动加速功能,当收到应答FA后,表明设置完成。加速功能去除后,程序执行第二部分,检测并计算码盘转角位移及速度。该部分程序中包含1个时钟控件Timer和1个计数器Counter。当光电码盘顺时针转过1个栅格时,计数器Counter加1,逆时针减1,由此可以求得角位移。将位移对时间进行微分,即可求得角速度,其具体方法是,时钟控件每秒触发1次,并记录下计数器当前值与前一秒的差值Ti。一般机械鼠标采用PS/2串口输出,对于一些不支持PS/2接口的电脑,采用一根PS/2转USB串口数据线就能将设备插入电脑。当设备插入电脑后,电脑实际上会将该设备识别为鼠标设备,因此当光电码盘旋转的过程中,鼠标指针也会做出相应运动。从而鼠标指针移动的步数可以准确地反映码盘转过的栅格数目。通过捕捉鼠标指针,可以使得计数器Counter的数值随着指针同步变化。然而当码盘总是朝着一个方向转动,鼠标指针可能超出边界而停止。对此可以在程序中加入一个判断函数,当指针超过边界时,立刻通过SetCursorPos(X0,Y0)函数将指针调回原点重新运动。程序流程图如图3所示。 3结语 本文提供了一种可快速将机械鼠标改造成为角度传感器的方法,能够实现一定精度的任意范围的角度测量.经过测试,其性能稳定。该方法最大的优点是无需开发单片机或者考虑外设与电脑的通讯协议,只需通过简单的编程或者直接运行本文所给出的程序代码,就能快速实现角位移及角速度的测量。 作者:唐灵俊 杨旸 周思柱 李宁 单位:长江大学机械工程学院 软件检测论文:安全漏洞检测计算机软件论文 随着科技的发展,计算机在社会中的地位越来越高,于此同时源代码数量也不断增多,由于这些漏洞的存在,很多黑客就利用这些代码中的漏洞进入到计算机软件中实施破坏。因此,计算机在给人们带来方便的同时也为信息系统的安全埋下了一个定时炸弹,安全问题已经成为系统安全最主要的问题。随着计算机更新速度加快,出现的漏洞越来越高,由于利益的驱使,黑客对其的攻击形式多样化。因此,在不断提高漏洞检测技术的基础上,需要寻找弥补漏洞的有效方法,只有这样才能保证计算机安全运行。 1计算机软件存在的安全漏洞 随着我国经济的不断发展,科技技术有了很大进步,互联网中的信息系统使用范围不断扩大,在各个领域发挥着不可取代的作用。由于计算机软件中有很多的安全漏洞,因此很大程度上信息系统就产生了一定的安全隐患。软件中的漏洞会对信息系统造成非常大的威胁,这就需要对计算机软件中的安全漏洞进行必要检测,安全漏洞检测是现代信息系统安全运行中非常重要的课题。计算机软件漏洞是指计算机系统在编程时出现的错误导致的缺点,这些缺点非常容易使计算机软件产生一些安全隐患和计算机自身的危险,计算机系统对有恶意的网络信息有非常高的敏感性,极容易出现对系统攻击行为。之所以出现这种情况,主要原因是在软件开发和研制过程出现的一些问题。漏洞主要有两种:安全性漏洞和功能性漏洞。安全性漏洞指的是在大多情况下漏洞不会影响计算机的正常运行,如果漏洞被黑客发现,软件运行时就会出现错误,严重者计算机会执行错误的命令,有很大的危害性。功能性的漏洞是指漏洞能够影响计算机正常运行,比如运行结果错误等等。漏洞特性主要表现在四个方面:1系统编程时由于编制人员的疏忽很容易出现逻辑性的错误,这种由于疏忽出现的错误很多是疏忽大意所致。2计算机在运行任务时很容易产生逻辑性错误,不同大小之间的程序模块相比可以看出逻辑性错误的发生率很高。3漏洞和软件环境有很大关系。4系统漏洞和时间也存在一定的联系,随着时间的延长,旧漏洞被修复但是也会产生新的安全漏洞。 2计算机软件安全漏洞的各项检测技术及应用 2.1安全静态检测 计算机软件安全静态检测,注重的是系统内部特性,静态检测和漏洞两者之间有共同的特点,这些特点之间也有很大的关联。目前漏洞的划分方法主要有安全性漏洞和内存性的漏洞。安全性漏洞对数据流的误差比较注重,很大程度上由于错误的内存形态而形成的;内存性漏洞对数据的准确性和类别有很大的注重性。因此,这种漏洞主要的检测技术方法就是在内部存储空间进行建模。因为静态检测方法之间有很大的不同之处,漏洞的处理也有很大的不同之处。所以,一些监测技术只能对漏洞进行必要的检测,但是一些方法在此基础上还能够对漏洞进行很好的处理。安全静态检测方法主要是对程序的代码进行扫描,对其中的关键句进行详细分析,然后根据设置的漏洞特性和标准对系统进行全面检测。分析关键语法是最早的静态分析法,它在分析时只对语法进行检查,把系统中的程序分为不同段落语句和数据库相互对比,如果发现有疑问,对其进行仔细的判断,从而进行检测;另一种检测方法就是按照标准进行检测。由于系统自身就是编程的标准,根据标准对计算机程序进行描述,可以通过语法对其进行描述,最后对系统进行整体检测。 2.2安全动态检测 2.2.1内存映射很多攻击者在对软件进行破坏时为了达到目的,会经常用到“NULL”结尾的字符串进行内存覆盖。采用代码页映射技术,攻击者能够利用“NULL”结尾字符串进行内存覆盖。 2.2.2非执行栈目前,出现了一些栈攻击软件的问题,主要原因是系统中栈的执行能力,由于栈内包含了所有数组变量,所以,攻击者通过向栈中书写一些恶意代码,再进行代码执行。预防这种攻击方法最为有效的方法是打破栈的执行力,使代码不能够进行执行任务。2.2.3安全共享库有些计算机中的安全漏洞主要是使用了不安全的共享库所致。安全共享库很大程度上可以预防恶意攻击行为。安全共享库有拦截和检测功能,主要是指使用动态链接方式进行程序运行,把不安全函数进行拦截和检测,最大程度上保护软件的安全。 2.3计算机软件安全漏洞检测技术的应用 安全漏洞检测技术直接关系到计算机的安全应用,其中在计算机软件安全漏洞检测中,其各项技术的应用主要集中在:第一,防止竞争条件安全漏洞应用。这种漏洞的应用一般是采用原子化处理竞争编码,这种编码有锁定功能,原子化操作进入锁定状态,详细的描述使用文件,很大程度上预防由于使用文件的变动使系统产生漏洞。第二,缓冲区安全漏洞检测技术应用。缓冲区安全漏洞检测主要是对软件程序中的一些疑问函数进行详细检测来预防缓冲区安全漏洞。第三,随机漏洞预防应用。对于随机漏洞的检测和预防需要用到性能良好随机发生设备,这种设备能够准确的对随机漏洞进行预防,其中最主要的原因就是该设备有密码算法。第四,格式化字符串漏洞检测技术应用。这种检测技术的应用一般是在代码中使用格式常量。 3结语 有上文可以看出,随着计算机的发展,计算机软件漏洞检测技术能够很好的对计算机中的漏洞和病毒进行安全检测,已经成为了现在计算机检测最实用的方法。软件的安全主要体现在编程和清楚漏洞方面,所以,需要对计算机软件安全漏洞检测技术不断提高,使网络信息系统更加安全的运行。 作者:汪刚 单位:南京工业职业技术学院 软件检测论文:计算机软件安全检测法综述 1计算机软件安全检测的流程 由于计算机软件的系统规模比较大,系统中又包括了很多子系统,在各个子系统中又包括了很多模块。一般来说,计算机软件安全检测工作要严格按照以下流程进行检测:对各个子系统中的模块进行测试;对软件系统进行组装工作;对计算机软件的系统结构进行准确检测;测试计算机软件的性能与功能;测试计算机软件系统。 2计算机软件安全检测的方法 2.1形式化安全检测 形式化安全检测,是以计算机软件数学模型为基础,运用形式化、规格化的语言,所构成的一种形式化说明形式。该种方法主要模型语言、有效状态语言和行为语言三种形式化、规格化的语言。形式化的安全检测所使用的检测方法,以模型检查和数学定理模型证明为主。 2.2语法检测方法 语法检测方法,是一种运用语法形式,对生成功能接口的计算机软件进行检测的一种方法。通常情况下,这种检测方法主要以对计算机软件进行研究和反映为目的。也就是说,在不同的输入环境下,对计算机软件的不同类型进行的反映。 2.3以模型为主的计算机软件功能检测方法 以模型为主的计算机软件功能检测方法,在实现计算机软件行为与结构建模相结合的前提下,所组成的一种测试模型。这个测试模型具有满足检测机器要求的可读性功能。以模型为主的计算机软件功能检测方法与形式化安全检测方法,在进行对比后,前者将系统模型中的一组测试用例,运用该组测试用例对等待检测的计算机软件系统进行测试工作,在获得充分的信息证据后,证明待检测软件系统行为与模型期望之间的一致性。其不对待检测计算机软件的系统、规格说明之间的一致性进行检测。以模型为基础的安全静态检测方法主要运用有限状态机与马尔科夫链两种检测方法。 2.4模糊式检测模糊式检测,在运用白盒模糊检测方法的基础上,将传统检测方法和动态检测相融合,实现了传统检测方法的升华。虽然模糊式检测方法比较简单,但是其能够将程序中的bug揭示出来,并对现实中存在的错误模式进行验证,在软件发货之前,能够提示可能阻塞的攻击渠道。 2.5以故障注入为基础的安全检测 经过具体的实践证明,以故障注入为基础的软件检测方法,对于提升计算机软件安全检测方法的自动化水平具有十分重要的作用。 2.6基于属性的检测方法 通过将基于属性的检测方法和其他种类的检测方法进行对比后,了解到该种检测方法能够全面的对计算机软件系统安全漏洞的扩展性、交互性进行分析。在运用该检测方法时,要对计算机软件的相关规范章程进行了解,将规范章程作为安全检测工作的重要属性依据。然后运用安全属性检测计算机软件系统程序的代码,对计算机系统代码和规则的符合性进行严格的验证。 3结语 总之,计算机越来越广泛的应用在人们的生活、工作和学习中,其自身的安全性能对人们使用计算机具有十分重要的影响。因此,需要运用科学、合理的软件安全检测方法,最终有效的提高计算机的安全、稳定运行,提高计算机信息的可靠性,增强计算机软件的性能。 作者:段立峰 软件检测论文:软件工程的安全检测及维护 摘要:随着计算机技术的普及,以及通信技术的不断发展,软件的开发效率也越来越高,各类软件的更新换代速率也直线上扬,软件工程也更受到人们的关注。随着计算机技术的普及,以及通信技术的不断发展,信息软件的应用也越来越广泛,在这一大背景下,软件工程的安全检测以及后期的运维的重要性也逐渐凸显出来。尤其是安全监测,其作为软件工程正常运行的核心板块,软件工程的安全对于整个系统来说有着极大的意义。为了能够设计出更加先进的软件,进一步的提高计算机技术,就必须要对软件工程进行系统统筹,以此来构建新的通信系统,让系统更加稳定。为了加强软件工程建设,就必须要对其进行深入的分析,并在此基础上进行针对性的对策提出。笔者根据相关资料,对软件工程的安全检测与维护进行分析。 关键词:软件工程;安全监测;维护分析 0引言 大数据时代下的发展都带有时代特有的印记,当前,我国的网民已经突破了七亿大关,就是这些庞大的受众,推动了计算机软件的开发,也推动了计算机技术的突破。在这种信息化的大潮流中,软件工程日益重要,但却在发展中也因为软件自身的缺陷而带来了一些网络安全问题。我们不得不意识到,由于信息网络安全问题的屡次出现,而造成了一些严重问题。软件工程时刻遭受着安全风险,这些风险不管是由于软件本身的缺陷,还是运维当中的系统原因,亦或者是人为的因素,都会给整个通信系统带来严重的威胁,造成数据的泄露,系统的崩溃和瘫痪,为生产生活带来消极的影响。正是因为软件工程自身具有的特殊性和重要性,以及其所面临的严峻环境,就必须要让我们时刻的提高警惕,进行安全检测技术的提高,进行维护措施的制定,以此来保障网络系统的安全。 1软件工程的安全检测与维护内涵 1.1安全监测 计算机软件安全检测与维护对计算机技术的应用有着至关重要的作用,要想更好的应用于人们的生活与工作当中,就必须重视软件工程安全检测与维护技术的研究[1]。因为在应用计算机技术的过程中,软件工程经常会出现一些非人为因素的故障和安全问题,安全检测与维护技术就可以及时发现其中存在的问题,及时采取措施进行修补,保证计算机软件正常运行。在现实生活中,计算机软件工程的安全检测技术主要有静态和动态两种检测方式,安全性方面的测试主要分为性能测试、渗透测试和验证过程三个方面[2]。 1.2软件工程维护 任何产品都有属于自己的生命周期,软件同样有着属于自己的生命周期,它的生命周期过程为定义、开发、运行维护。软件的开发和应用最主要的目的就是为了满足用户的需求,这也是软件工程最根本的目标。这也就告诉我们,软件在应用的过程中,如果出现了非人为因素的错误或者问题,安全检测与维护技术就会及时的采取有效的措施,进行修补、改进,只有这样才可以将软件工程逐渐趋于完美,才能够更好的适应各种环境[3]。 2软件工程的安全检测 2.1流程 第一,进行全面检测,由于整个软件工程是一个由多个个体集合而成的整体,因此,在进行检测时,就必须要全面,对每一个涉及的元素都进行检测,以此来发现其中所存在的问题,并且找到这些问题后能够及时的解决,以此来提高软件的稳定性,提高软件工程的整体性能。第二,通过了全面的检测后,就需要进行针对性的检测,对软件的功能质量进行检测,并测试软件的功能运行是否正常。第三,需要对不同环境下的软件工程进行检测,以此来确保在不同的环境下也能够正常运行[4]。 2.2检测方法 一般情况下,软件工程的检测主要是基于数字模型而进行的,属于形式化检测,通过这种检测来提高软件本身的安全性能。静态检测包括词法分析;通过各信息片段与程序细节的比对来确定不同,以此来找到新的概念点,确定软件的性能[5]。程序解释;通过在原有的程序中嵌入新代码来进行软件保护,该技术不需要对原软件程序进行修改。而静态检测技术则包括一下几个步骤;规则检测;在进行软件工程构架时,都会有许多的软件系统支持,一旦出现不稳性,可以对这些软件和信息进行检测,通过对个体的分析来确定整体的安全性,避免由于人为失误而造成软件泄露。动态监测,包括了属性测试,这主要是对软件的各个部分进行检测,对相关的内容进行对比,找出不稳定因素。故障分析;这一方法是将可能的故障作为检测对象,并进行检测排除,以此来确定软件本身是否稳定。 3软件工程的维护 3.1软件工程的维护类型 软件工程的维护类型主要包含了适应性维护和改正性维护两种。适应性维护;主要是针对其所处环境而进行的维护,通过对软件工程环境的改变,来检测不同环境下其功能的正常性,并且对存在的问题进行及时的修复和调整,以此来让其具有更好的适应性。改正性维护;主要是通过对软件的实际使用来发现其中存在的运维问题,通过软件执行过程中存在的漏洞进行针对性的维护修复。 3.2维护方法 对整个维护体系进行系统统筹,制定周期性的维护计划,对相关的软件进行维护、修复和后期的运维管理,以此来保障其拥有合适的运行环境。其次,要不断的提高维护的手段,要与时俱进,将新技术融合到软件维护上去,通过这些新的高超的维护技术来提高维护的水平,以此来确保软件的运行质量,以此来建立良好的运行新环境[6]。 4软件工程的安全检测与维护 4.1定期进行维护检测,对系统进行实时监测 为了加强对软件工程的管理,就需要时刻的保持警惕,并且需要实时的对软件工程进行监控,按照计划对其进行系统检侧,以此来查处系统中所存在的病毒和风险。在这种系统检测中一旦发现问题就要及时处理,避免这些病毒的扩散,变被动为主动,以此来保障网络通信的安全。在软件工程中流传的相关数据以及各节点之间的数据传送都需要定时的清理和检查,如果节点之间和所传输的数据之中存在病毒和风险,就需要及时的做出处理,以此来提高系统的耐受性,提高其稳定性,保障数据的安全。 4.2提高核心技术的自主性 软件工程内部所关联的核心技术决定了其自身的安全程度,为了提高其进行自我保护的力度,对于核心技术就必须要有自主性。由于这些核心技术一般都是多方参与,或者是直接进口,因此,本身就具备一定的风险性。因此,我们必须要在核心技术上加大投入,努力的进行新技术的开发,不断地进行突破,以此来保障核心技术的竞争性和保密性,避免一些由于核心技术的缺失而造成的恶意攻击和网络的不稳定。也只有不断地进行技术突破,不断地对软件工程进行完善,提高防火墙功效,提高传送的安全性,才可以让软件工程在真正意义上获得稳定。最终保证软件工程的质量,确保其安全。 5结语 计算机在不断地发展中为人们的生活带来了极大的便利,不管是生产经营上,还是在日常的信息交往上,可以说从根本上改变了我们的交往方式。而软件工程的发展则是让计算计技术进步的核心,也正是如此,软件工程的安全监测和维护也越来越得到人们的关注。但是随着社会的进步,不断有新的技术被研发出来,因此要想符合时展的脚步,就必须不断研发新的软件工程检测技术与维护技术,从而符合软件工程行业的发展。为了让软件工程能够得到更好的发展,我们必须不断为其创造良好的条件,提高检测和维护的技术,为其发展提供助力。 作者:邵嘉伟 单位:江西服装学院 软件检测论文:电力软件缺陷代码检测技术研究 摘要:为了确保电力信息系统能够得以正常操作,进而强化系统功能,提高工作质量,减少成本费用的支出,应及时改善电力软件代码缺陷检测效率低下、自动化效果差以及定位不精准等情况。本文主要分析了电力软件缺陷模式的代码检测技术,并对此展开了深入的探讨,期望可以为今后的研究提供相应的参考。 关键词:缺陷模式;技术研究;代码检测 0引言 在二十一世纪之后,美国首先提出了基于缺陷模式的软件测试,通过将此种方式与传统方式进行对比后可发现,其主要可以分成三个流程,即:首先,界定软件缺陷模式的含义;其次,找寻准确的IP,并运算出与模式兼容的元素;最后,采用自动化模式进行确定,同时也可派遣专业人员进行确认。基于缺陷模式的软件测试相对来说优势较多,能够测试出很多细微的问题缺陷,并且具有一定的针对性。所以,本文通过研究后能够有效提升系统测试效率,进而提高工作质量,为电力信息系统今后的发展提供有利保障。 1电力软件缺陷模式与模式库构建 (1)电力软件缺陷模式。通常情况下来看,普通的电力软件缺陷表示的是不符合电网的相关规定,导致用户在应用的过程中造成了很多弊端。当程序在运行时发生软件缺陷的话,则会致使系统紊乱,无法正常运行。由于电力软件的研发时期不同,所以产生的软件缺陷也会存在一定的差异性。当处于初始时期时,系统架构人员将会对系统软件进行合理的宏观调控,如果控制失误则会造成缺陷,由于其在开发时期的隐蔽性较强,仅能够在后期可以体现出来,所以必须要在修改时期时进行大范围的修改,严重浪费了资源,增加了成本费用的支出,所以此种缺陷是极其不利的[1]。当处于需求定义时期时,假设无法适应用户的各项要求,那么也会导致缺陷出现。在设计系统的过程中,必须要保障方案规划合理、科学,反之则会影响整个系统的正常运行。在进行编码时,应采用正确的运算方法,编码失误也会引起缺陷。在系统维护时期,必须要正视各个环节,采用科学的手段进行维护,不然则会造成不可预估的后果。所以,在操作的过程中必须要充分应用各项资源,有效改善电力软件缺陷,进而提升工作效率与质量。除此之外,软件在运行时,不同时期进行修复所需要的费用也存在差异性,时间越长则成本也会随之升高,因此必须要及时发现缺陷。 (2)建立电力软件缺陷模式库。在建立电力软件缺陷模式库时,必须要立足于实际,以研究成果为基准而分析场景特点,进而创建出完善的电力软件缺陷模式库体制,找寻缺陷的问题所在,并对其进行叙述保存,创建出相对完善的缺陷模式库,进而具备一定的定制性与配置性。 2基于电力软件缺陷模式的代码检测技术 (1)区间运算技术。1)区间代数。所谓区间,表示的是在程序中变量的取值范围,而区间代数表示的则是代表以及运算变量位置的方式。在对软件进行测试的过程中,主要操作步骤则是将录入的变量均看做为区间,致使中间变量以及输出变量最后均变为区间的一种方式[2]。2)变量的相关性分析。通过进行分析后可发现,在程序中应在以下几种情况下应用变量关联,即:相同路径引进的隐含约束关系、赋值语句关系、条件限定关系以及别名关联关系。 (2)基于数据流的缺陷检测。在操作的过程中,我们可将缺陷检测流程进行深入分析,并将其作为一个前向可能数据流的情况,数据流的元素主要包括以下几个方面:1)在进行缺陷检测时,呈现为正向数据流,D=FORWARD;2)在进行缺陷检测时,L是可能状态集合的幂集,Ventry={ Start}表示的是L的常量值,即为边界条件;3)在进行缺陷检测时,∧表示的即为可能状态集合的U操作;4)G=( V, E, entry, exit),在此过程中V所表示的为节点集合,E所表示的是边,entry所表示的为入口,exit所表示的为出口;5)在进行缺陷检测时,F所表示的为由程序语句而导致的缺陷变迁现象。 (3)函数间分析技术。1)约束信息。针对约束模式状态机而言,由于故障类型不同,所以产生的约束模式也存在一定的差异性,在此过程中N代表的即为状态机均能够发生的状态,T代表的即为状态之间通过转化后所形成的集合,C代表的即为状态转化要求,Nfault代表的即为故障的具体状态,Ncons代表的即为约束形式状态。 2)后置信息。在进行静态分析时,针对函数来说,变量的取值区间对其所产生的作用比较大,所以在操作的过程中必须要提高对函数副作用的关注。为了改善这种情况,在运算区间以及检测缺陷的过程中必须要合理运用计算方式,选择应用函数后置信息方式。 3代码缺陷自动化检测方式 在进行操作的过程中,我们可创建相对完善的代码缺陷自动化检测方式,检测流程可分为五个步骤,即:输入、基本分析、提高精度、自动测试及结果分析,在此过程中提高精度与自动测试最为重要。应用此种检测方式进行操作时,必须要结合多个方面进行考虑,具体可包含以下几种问题,即:误报情况、漏报情况以及模式机理等。 4总体研究架构 首先,应对电力软件缺陷模式展开深入的探讨,并创建出完善的电力软件缺陷模式库,与此同时,也应研究提升精准的技术手段,并以此作为基础条件,而创建出代码缺陷自动化检测方式。 5结束语 综上所述,基于缺陷模式的软件测试得到了广泛应用,能够测试出很多细微的问题缺陷,并且具有一定的针对性。除此之外,也能够有效提升系统测试效率,进而提高工作质量,为电力信息系统今后的发展提供有利保障。 作者:李北星;常鑫 单位:乌兰察布电业局 软件检测论文:计算机软件安全检测技术探究 摘要:随着计算机的大量普及,其安全监测技术的发展逐渐受到人们的重视。计算机安全监测技术水平的好坏,将会直接关系到人们日常生活的安全。通过计算机安全监测技术,人们能够对计算机软件进行系统化的测试,有效识别并且排查计算机软件中存在的安全隐患。本文通过对计算机软件安全检测技术的概述,提出了几点软件检测的指导建议,为保证计算机软件安全提供了一些参考。 关键词:软件检测;计算机安全;检测方式 1计算机软件安全检测应该注意的事项 从本质上来说,计算机安全监测就是检测软件的安全性,其检测过程也是在一个动态过程中测试计算机软件的可靠性。计算机软件的检测要求按照严格的操作进行,首先,在进行计算机软件检测之前,需要制定完整的检测方案。进行软件检测之前应该对需要进行检测的软件有一个较为细致的了解,在整体把握软件功用的前提下对软件进行检测。在进行测试方案的制定时,应该规定软件检测采用的测试手段、测试工具在进行软件测试时,能够保证测试过程的高效进行。另外,进行测试的工作人员应该是具有较强软件编写能力的专业人士,在进行软件测试的同时,原软件的编写人员也应该参与在测试试验中,这样可以方便发现问题及时解决。在进行软件测试的时候,只有制定专业的测试方案,配备专业的测试人员,软件的测试结果可靠性才能得到充分的保障。其次,软件测试完成后,对测试信号的分析也是很重要的一步。分析测试结果时,应该保证对测试得到的信号进行全面细致的检查。一般来说,一个计算机软件的代码程序十分复杂,包括大量的指令以及逻辑运算关系,这就要求在分析测试信号时,相关的工作人员工作要细致认真,除了保证软件能够正常应用以外,还应该尽可能考虑到软件后期的升级维护接口功能。与软件测试方案的制定相似,软件测试结果的分析也需要制定流程化的处理方案,在分析软件过程中要求采用合理的检测技术,专业化的检测人员,以负责的态度完成软件测试的后期工作。所以说,软件测试是一个系统化的庞大工程,技术检测和测试处理均需要专业的处理,也只有这样才能保证计算机软件的安全性。 2计算机软件的安全检测方法 2.1计算机软件安全检测流程 一般来说,在进行计算机软件测试的时候,检测流程常常根据软件的系统结构进行。由于计算机软件由很多模块构成,所以常常遵循着从模块测试、组装测试然后再到系统结构的安全监测,检查发现模块没有问题以后在进行软件功能的测试,以上结构均未发现问题,则进行系统整体检查。这种,由浅入深的测试方法可以保证测试不会丢失对某些软件功能的检查。其中,模块测试主要指对软件系统中最小的组成单位进行检查,只有从小的模块进行检查,才保证整体不出现大的差错。检查模块时务必做到检查细节化和全面化。在进行完模块检查之后,还需要对其进行组装。但是值得注意的是,尽管模块检查没有问题,但是组装的系统却仍然可能出现问题,诸如组装兼容性、软件漏洞等问题还是存在的。系统组装检查完成后需要对软件进行效果测试。效果测试的目的在于保证组装后的软件能够满足用户的使用需求,保证用户在使用过程中不会出现问题。只有经过上述全部检测过程,软件测试才算完成。 2.2计算机软件安全检测的方式、方法 2.2.1形式化的安全检测 该检测方法需要较强的计算机知识,由于它建立在计算机软件的数学模型智商上,要求在检测过程中严格依据现有的语言进行检测。目前人们经常采用的形式语言规格有三种,主要包括行为语言、模型语言的有效状态语言。形式化的安全监测是现在计算机软件常用的检测方法之一,检测准确度较高,检测结果较为可靠。 2.2.2基于模型的安全静态检测方式 模型的安全检测方式在检测时应该先建立一个软件模型。在建立软件模型是应该保证该模型对于计算机是可读写的,但是模型的功能与被检测计算机软件的功能并不是完全相同的。模型化的检测并不能保证待测软件与建立的软件模型完全相符。在测试时候常常对测试模型进行检测,然后经过检测让模型测试的功能与原测试元件功能基本相符即可。模型化的测试方法需要建立软件的模型,常用的模型检测方法包括有限状态机或者马尔克夫链,相对来说,检测建模具有一定的难度。 2.2.3语法检测 计算机软件的语法检测主要利用指令测试软件的功能,主要的检测指标为计算机软件对输入指令的响应。即在测试过程中通过给计算机输入不同的指令,来观察软件对所输入指令的反应来判断软件是否存在使用问题。采用该检测方法是,需要定义大量的识别语言,而且也并不能完全保证语言指令类型的全面性。但是他既可以检测软件编写问题,也可以检测软件的安全问题。 2.2.4基于故障注入的安全检测该方法 经过实践检验,相对于其他检测方式具有很高的检测效率。主要体现在本检测方法主要利用故障模型,构建故障树,通过对模型输入检测信号,分析软件对于所输入指令的响应来判断软件中可能存在的故障信息。该方法可以检测出软件的安全性以及对使用过程中出现错误的兼容性,具有较强的实用检测价值。 2.2.5模糊式检测方法 模糊式检测既结合了传统测试的优点,也具有自己独特的优点。简单来说,他是传统检测技术的再升级。它通过在白盒模糊的基础上,能够检测出程序中存在各种Bug,并且对潜在错误具有一定的检测效果。 3小结 随着人们对计算机软件安全监测的重视,越来越多的检测方法逐渐出现,相应的检测技术也越来越高端。总之,计算机软件测试需要我们在实践生活中不断创新方法,除了掌握一定的计算机软件测试方法以外,实际的经验积累也是计算机软件安全测试必不可少的。 作者:顾建丰 单位:江苏省常州市武进区淹城初级中学 软件检测论文:计算机软件安全检测技术的作用 随着计算机网络技术的发展,计算机与社会生产生活有着密不可分的关系,而由于计算机网络存在一定的风险性,需要做好相应的安全检测才能够有效避免风险的发生。计算机软件作为计算机网络的重要部分,利用多种安全检测技术,来检测并保障计算机软件的安全性,以提升计算机网络整体的安全能力。 1计算机软件安全检测定义及重要性分析 计算机软件安全对于保障计算机运行的安全十分关键,计算机软件是否能够运用于计算机中,也是需要对软件安全性进行评估,只有软件安全性达到一定标准才能够满足系统兼容性并投入使用中。计算机软件安全检测是利用多种检测技术发现软件设计的漏洞,并排除软件使用中的风险性问题,保障计算机软件的安全运行。计算机软件不同于一般的应用软件,一般应用软件发生问题多为影响用户的应用体验,而无实质性的危险发生。而一旦计算机软件故障并遭受到网络攻击,则将影响计算机的运行,甚至系统崩溃。由此可见,计算机软件的安全性对于保障计算机网络安全有着重要意义。利用多种计算机安全检测技术,并根据软件类型和特点有选择性地进行安全检测,排除可能存在的软件问题,以进一步提高计算机和系统与软件间的兼容性、安全性。 2计算机软件安全检测技术类型分析 2.1静态检测技术静态检测技术,顾名思义是检测软件的静态故障。如软件编写代码的错误以及语法上的错误等等。由于网络攻击可能利用有缺陷的程序代码和漏洞来进行攻击,因此利用静态检测技术,排除软件编写中语法和程序的错误,可以做到最大程度上的风险减免。通过测试计算机软件的使用情况,利用“与”或“非”等逻辑输入形式,根据输出结果来判断计算机软件编程中是否存在相应的语法问题。 2.2形式化安全检测技术形式化安全检测技术主要是验证软件的合理性,根据软件设计的模型以及数理上的可行性分析,来证明软件使用的安全性。形式化安全检测包括对软件的数学模型进行检测,分析模型运行的可行性以及模型的逻辑性。同时也包括对软件进行定理证明,发现软件设计上的数学错误和逻辑问题,以避免风险性问题的出现。 2.3基于故障注入的安全性检测技术基于故障注入的安全检测技术是较为常用的安全检测技术,也是较为可靠的检测技术。故障注入的检测技术,是利用生成的故障问题来观测软件运行时的安全性,即观测软件故障时的具体表现。故障注入即是模拟故障,通过修改软件内存和改变软件设计逻辑等方式,来模拟网络攻击和故障时计算机软件的通常表现。通过还原的故障状态,能够进一步评估软件在故障时的不足之处,以及检测软件自我修复功能的良好程度。在实际应用中,还能够结合硬件的故障注入技术,实现软件与硬件的同时检测,以排除软件与硬件问题之间的相互影响。 2.4基于属性的安全检测技术,基于属性的安全检测技术,首先需要确定软件的安全属性,并根据安全属性的特点来评估软件程序编码中的可靠性。部分软件的编码表面上可以达到一定的安全性,但根据系统与软件的安全属性,则表现为软件在编码上存在不足,难以维护软件的安全属性,可见进行基于属性的安全检测是有积极意义的。 2.5其他安全性检测技术其他的软件安全检测技术,比如“白盒测试”、“黑盒测试”以及建模测试等等。软件安全检测技术多以软件的语法测试或功能测试出发,如基于“白盒测试”的安全检测技术,则主要从软件代码出发,发现编码中出现的语法问题。此外,还有基于软件功能进行测试,分析软件模型的功能性,具有较强的实用性,能够有效检测出软件设计中的问题,以保障计算机软件的安全性。 3计算机软件安全检测技术应用分析 3.1计算机软件安全检测流程分析计算机软件安全检测的进行,需要根据计算机软件的大小而决定,对于组成复杂的计算机软件往往需要分步分区进行检测。计算机软件安全检测的基本流程由模块测试、结构检测、功能测试、系统测试等多个步骤组成,首先模块测试主要是需要对软件设计与编程的早期问题进行检测,如程序算法、语法等方面的问题。其次是对软件结构进行检测,软件结构是否完整,是否能够支持相应的软件的功能。其次是功能测试,检测软件在使用中是否可以实现特定功能,通过故障注入等方式,还能够检测软件故障时的功能可靠性。最后需要进行系统测试,分析计算机软件与系统的兼容性等等,以保障软件在计算机系统中功能的正常实现。 3.2计算机软件安全检测的注意内容在对计算机软件进行安全检测时,需要把握好相关注意事项,同时也是计算机安全检测技术应用时的重要考虑事项。计算机软件安全检测技术种类较多,需要根据计算机软件的特点和检测目的来进行合适的选择,同时需要按步骤进行检测,规范化检测程序,以保障安全检测的良好效果,发现潜在的软件风险问题。在软件安全检测中,需要进行系统的全面分析,以综合考虑软件与计算机的兼容状况,才能够准确评估软件运行的状况。 4结束语 计算机软件安全检测技术种类繁多,在实际运用中,需要根据计算机网络的实际状况以及网络风险的类型而进行合适的选择。运用合理的计算机软件安全检测方法,将能够维护计算机网络的安全与稳定,提升计算机软件的可靠性。 作者:廖肇军 单位:同济大学软件学院 江西现代职业技术学院 软件检测论文:软件故障优化检测方法仿真 《计算机仿真杂志》2014年第六期 1大型差异结构下的软件故障检测原理 软件故障检测技术是通过软件不同部分提取的异常信号特征,在根据软件故障的特征类别,进行定位的方法。其原理如下:将全部软件运行数据分为N个组别,针对其中的任意一组数据进行聚类中心的计算,从而获取一组规则,根据该规则能够实现软件故障检测。设置软件故障检测的聚类中心能够用Dl进行描述,对应的故障类型能够用d1进行描述,则能够得到下述模糊聚类规则:在上述公式中,yjk能够用来描述软件运行过程中第k个状态特征,Blk能够用来描述第L个模糊规则的第k个运行状态特征的隶属度。利用下述公式能够描述上述软件运行状态特征隶属度函数:在上述公式中,dlk能够用来描述聚类中心Dl的第l个元素,!lk能够用来描述上述聚类中心对应的扩展度。针对聚类中心进行差值运算,能够得到其余的聚类中心,从而获取模糊聚类的规则。根据模糊聚类规则库,能够得到该聚类模型的输出结果如下所述:根据上面阐述的方法,能够得到一系列软件运行状态特征的模糊聚类规则,对聚类模型进行优化处理,能够得到软件故障分类模型。在模糊聚类故障检测模型中,设置输入的数据是Yj,软件故障的类别能够用d1进行描述,则模糊聚类模型的输出结果是1,否则,该模型的输出结果是0。软件故障类型的检测误差分为两个不同的部分,其中,第一部分能够用下述公式进行描述。在上述公式中,全部软件运行状态特征的数目能够用pd进行描述。根据上面阐述的方法,能够建立软件故障检测的模糊聚类模型如下所述:根据上面阐述的方法,能够建立软件故障检测的模糊聚类模型。但是,如果软件结构呈现差异化趋势越发明显,软件集成性使得其整体结构的关联性呈现淡化。结构接口之间无明显衔接特征,将造成缺少明确的接口衔接特征进行定位区域指示,导致软件故障定位不准。 2基于差异结构融合算法的软件故障检测方法 利用模糊聚类算法进行软件故障检测,如果软件结构呈现差异化趋势越发明显,软件集成性使得其整体结构的关联性呈现淡化,由于缺少明确的接口衔接特征进行定位区域指示,造成软件故障定位不准。为此,提出了一种基于差异结构融合算法的软件故障检测方法。 2.1软件故障检测信号融合处理利用信号融合技术,对软件故障检测信号进行有效的融合处理,从而为软件故障检测提供基础。其详细内容如下所述:利用窗口函数,能够对软件故障检测信号进行提取,提取公式如下所述:设置软件故障检测信号的初始值可以用C和D表示,利用下述公式能够对上述软件故障信号进行初步的融合处理:在上述公式中,JB(j,k)能够用来描述第一个软件故障信号的能量参数,JC(j,k)能够用来描述第二个软件故障信号的能量参数,对应的比率分别是ξB和ξC,而且需要符合条件ξB+ξC=1。KC(k,l)表示软件故障信号的低频系数,KD(k,l)是对应的高频系数。根据软件故障信号和对应的比率之间的关系,能够得到下述结果:根据上述方法,可以将软件故障信号按照对应的比率进行有效的融合处理,从而为软件故障检测提供可靠的数据基础。 2.2实现软件故障检测根据分布式协同检测方法,可以对软件故障进行有效的检测。其详细内容如下所述:在软件故障检测过程中,设置软件故障信号可以用Bk(m)(k=1,2,3)表示,则需要对上述特征进行有效的特征提取,特征提取规则能够用下述公式进行描述:根据上面阐述的方法,能够利用信号融合技术,对软件故障检测信号进行有效的融合处理,从而为软件故障检测提供基础。利用分布式协同检测方法,对软件故障特征进行有效的检测,从而完成软件故障检测。 3实验结果分析 为了验证本文提出的基于差异结构融合算法的软件故障检测方法的有效性,需要进行一次实验。在实验的过程中,需要利用VB++语言进行实验编程。在实验的过程中,需要将三种不同功能的软件构成一个新的软件,则该软件具有较强的差异化结构。在软件故障检测实验过程中,实验数据如下所述:1)软件故障检测信号的数量:1000个;2)软件故障检测过程中的白色噪声信号数目:1000个;3)系统噪声:<5微伏;在实验过程中采集的故障信号图谱能够用图2进行描述。利用传统算法进行差异化结构下的软件故障检测,检测结果能够用表1进行描述。利用本文算法进行差异化结构下的软件故障检测,检测结果能够用表2进行描述。对上述两个表中的数据进行对比分析可以得知,利用本文算法进行软件故障检测,在软件差异化结构相似的情况下,利用本文算法进行故障检测的准确性远远高于传统算法,能够为软件的正常运行提供保障。利用不同方法进行软件故障检测,获取的检测准确率能够用图3表示。根据上图可以得知,利用本文算法进行软件故障检测,在软件的差异化结构相似的情况下,利用本文算法检测的准确性高于传统算法。通过上述实验能够得知,在软件差异化结构比较明显的情况下,利用本文算法进行软件故障检测,能够极大的提高检测的准确性,从而保证软件的安全运行。因此,能够将本文提出的基于差异结构融合算法的软件故障检测方法广泛应用在软件故障检测领域中。 4结束语 本文提出了一种基于差异结构融合算法的软件故障检测方法。利用信号融合技术,对软件故障检测信号进行有效的融合处理,从而为软件故障检测提供基础。利用分布式协同检测方法,对软件故障特征进行有效的检测,从而完成软件故障检测。实验结果表明,利用本文算法进行软件故障检测,能够在软件结构差异性较强的情况下,有效提高软件故障检测的准确性,从而保证能够对软件故障进行实时检测。 作者:汪伟熊婷詹雪单位:南昌大学科学技术学院
软件技术论文:高职软件技术系列化微课设计制作 【摘要】文章在分析了当前高职软件技术专业对系列化微课需求的基础上,研究了其设计与制作过程,最后讨论了其应用效果。并提出在应用中要教学方法的改革与实践,并在实践中不断探索对于课内外课时的合理调整。使得学生的学习由课内向课外逐渐延展。 【关键词】软件技术专业;实训课程;建设;系列微课 一、高职软件技术专业系列化微课需求分析 当前,随着信息与网络技术快速发展,微课作为提高教学有效性的重要资源迅猛崛起并迅速发展。但是,纵观计算机软件技术专业的信息化情况是慕课多、资源多、质量参差不齐。当下在网络上可以获得大量计算机软件技术专业的慕课,时长多在30分钟上下,且开发者多数为企业具有实践经验的程序员。这类视频,多为“课堂实录片段”形式,其特点是知识含量大,技术难度大,讲解枯燥,随意性强,缺乏设计,语言不规范,部分程序员的操作本身就不具规范性。这类课程应用中的特点是对学习兴趣浓厚的学习者和工作中的程序员有很大帮助。但实践中我们也发现对于高职高专软件技术专业的学生而言,大多数学生在第一次看视频时就被长时间枯燥的视频打击了继续学习的兴趣,能够长期坚持观看的寥寥无几。经分析,当前我国高职高专计算机软件技术专业缺乏的是能够贯穿一门课程的系列化微课,以及能够支撑整个专业课程体系的整套微课程及其配套资源。 二、高职软件技术专业系列化微课设计与制作过程分析 1.基于项目的系列化微课的教学设计。在进行系列化微课开发之间,要针对人才培养方案进行分析,抽出核心课程,并明确课程的先后顺序,逻辑关系,明确将要开发系列微课的主干课程。计算机软件技术专业的微课资源往往是就知识点、技能点而单独讲解,缺乏其在实践中的应用,因而显得实用性不强。而基于项目的视频资源往往时间较长,已经超出了微课的范围,当然也超出了高职高专学生自主学习最大时长。因此,在高职软件技术专业系列化微课设计过程中要取二者之长,避二者之短。首先明确要设计基于项目的系列化微课。即将企业真实项目根据教学所需将其改造为教学项目,再将项目分解为若干模块,模块分解为若干子任务,每一子任务对应一个或多个知识点与技能点,最终以一节微课的形式呈现。微课的前后顺序即项目本身的开发过程。同时,还要注意微课的独立应用性,即每一节微课即是对应项目中的一部分开发内容,同时单独观看此节微课,也可以独立地学习本节课的知识点与技能点。2.基于项目的系列化微课的开发规范制定。在各课程开始制作微课之前,项目团队要首先制作微课样本,并配有明确的标准要求。具体包括制作中使用的主要软件、录制中所运用的参数、片头与片尾要求、时长、字幕运用幻灯片统一模板等。甚至是微课的整体结构要体现系列化、一致性。使得每一个开发团队都按统一思路进行系列微课的开发。同时,还要对项目进行管理,按照时间节点,进行量与质的验收。3.基于项目的系列化微课的开发。采用精细化视频制作技术进行系列化微课的制作。按以上原则进行微课设计并给出任务分解单及对于的微课单,然后按照要求开发每节微课教案,注重知识点与技能点的穿插,注重录屏软件、PPT、实拍视频的综合应用,避免枯燥乏味。为主讲教师撰写讲解稿,注重语言及操作习惯的规划性,精选形象好、气质佳、普通话标准、表达能力强的教师录制高品质微课资源,即利用电教馆设备及人力资源将录制、后期剪编各环节都进行精细化加工。使得每一节微课即能独立应用,又能与本门课贯通,最重要的是与本专业其它课程保持连贯。4.配套教学资源库的开发。为了使微课能够在应用中不孤立,要在开发微课时同时开发好配套的资源。即与微课配套应用的课件、实践教学资源、习题项目、任务工单等。5.平台应用。系列化微课开发完成之后,还需要统一的平台进行管理与应用。一方面可以整理成电子书,出版发生。另一方面可以借助网络工具平台。实践中运用蓝墨云班课平台。蓝墨云班课包括电脑版与手机版。电脑版是一款免费的教学助手软件,这款软件可以让教师轻松管理自己的班级、学生,并且还能批改作业。蓝墨云班课电脑版可以让老师的所有课程信息、学习要求、课件、微视频等学习资源都可以即时传递到学生的移动设备上,从而让学生的移动设备从此变成学习工具,不再只是社交、游戏。手机版是使用APP软件安装蓝墨云班课平台,教师使用平台信息、管理学生,学生使用平台进行学习、反馈等。对于教师来说,通常是电脑版与手机版同时使用,对于学生用户来说,通常只使用手机版就可以完成学习需要。 三、高职软件技术专业系列化微课设计与制作应用效果分析 高职软件技术专业通过运用系列化微课,配合蓝墨云班课学习任务与资源的实训教学模式,使得学生的学习由主动变被动,在观看微课视频、阅读电子书的过程当中,逐渐养成自主学习的良好习惯,最终达到提高自主学习能力的目标。系列化微课只是我们尝试的一种新的教学资源,但是真正的课堂教学还是需要配合具体的教学方法来实现。因此,各院校在运用系列化微课的同时一定要注意教学方法改革与实践,并在实践中不断探索对于课内外课时的合理调整。使得学生的学习由课内向课外逐渐延展。 作者:许春艳 单位:长春职业技术学院信息技术分院 软件技术论文:计算机软件技术中分层技术应用 【摘要】现阶段,随着计算技术的不断发展,越来越关注分层技术在计算机软件技术的应用和开发方面的问题。而且,分层技术作为应用广泛的技术,若是能够将其融入到计算机软件技术当中,可以更好地提升计算机软件处理业务的效率,而且能够逐步拓展计算机的多层次结构,对于推动计算机软件技术的稳步发展具有重要的作用。 【关键词】分层技术;计算机软件开发;运用 1引言 在当今社会,计算机已经成为不可或缺的办公工具。所以,对计算机软件技术人员来说,计算机软件技术的开发设计便显得非常重要,而且,随着社会的不断发展,计算机软件开发的环境和功能要求越来越严峻,在功能设计上从单一的功能逐步朝向多功能复合的方向发展。为此,在这种情况下,分层技术便能得到广泛的运用,在分层技术的运用方面上,能够促使计算机软件的灵活性和安全性两个方面能够提升。本文通过对分层技术在计算机软件开发中的运用进行深入分析,以此更好地进行计算机软件的开发和设计工作。 2分层技术的概述 在分层技术在运用于计算机软件开发的过程中,不仅仅可以显著提升开发的效率,而且还能够不断提升计算机软件开发的质量。而且,分层技术已经成为我国计算机软件开发中的最为重要的技术种类,并能够有效地运用于社会各个行业当中。但是,从目前来看,要想更好地的发挥分层技术在计算机软件开发中的优势,这就必须要对软件开发的重点内容进行系统研究,才能在计算机软件开发中发挥出其优势。在软件的研发过程中,必须要能够将分层技术运用在不同的方案当中去,针对不同的解决方案采取不同的设计手段,从而能够形成一种科学高效的计算机开发体系。另外一方面,在开发过程中,必须要严格按照相关的措施和规定来进行相应的操作,同时对分层技术的理论知识和概念有深入的了解,以此避免在运用过程中出现各种失误。最后,在软件的开发框架中,为了发挥分层技术的优势,必须要在单层架构中进行不断创新,从而能够将服务器和计算机进行融合。当然,随着计算机软件技术的不断发展,在开发结构中还是有很多不能避免的问题,尤其是双层结构的设计无法很好地满足企业的发展需求。 3分层技术在计算机开发中的具体运用 3.1双层技术的应用 从目前来看,计算机软件的开发过程中,为了能够不断提高计算机软件开发的速度和质量,在分层技术的具体运用的过程中,不仅仅需要在各个环节上进行科学设计,而且还需要在客户端和服务器的端点进行设计。在这一过程中,双层技术便是分层技术最为重要的技术之一,这是一种按照不同功能特点来分解计算机软件中的系统,能够修改某个功能以及上下层的结构。另外,在分层技术的发展过程中,一般来说,分层技术可以分为双层、三层以及四层等不同方面,随着计算机开发设计的不断成熟,现有的分层组成模式逐渐演变成为几个不同的技术类型。例如,在双层技术的研究上,其主要是包括客户端和服务器两个端点,对用户的数量和客户的信息都将会产生一定的影响。当然,在这一过程中,分层技术的运用,除了可以不断提升计算机的运作效率,还可以切实保障客户端的性能,有效地解决用户使用过程中的弊端。 3.2三层技术的具体运用 在上述的分析中,我们可以了解到,除了双层技术外,分层技术还有三层技术。而两者的不同,主要是在于三层技术是双层技术的升级版,对双层技术的弊端进行不断完善。例如,三层技术主要是弥补双层技术设计中的不足,在之前的设计基础上增加了应用服务器。在设计上增加了应用服务器,这对于计算机软件开发设计具有重要的作用。另外,三层技术最大的优势便是能够建立科学高效的系统,能将业务处理和界面层次两者进行融合,以此提升计算机信息访问的效率。所以,从上述的分析中,可以看出,三层技术的作用不仅仅是建立有机的整体,还需要对计算机的界面进行科学收集,从而更好地满足不同用户对软件使用的需求。 3.3四层技术的运用 众所周知,现代文明在计算机的要求越来越高,传统计算机单一的功能显然无法满足人们的需求。为此,在创新计算机软件的开发过程便成为最为迫切需求。但是,分层技术中的不同技术类型都无法跟随时代的潮流而对自身的功能进行创新,这样就难以适应当前计算机开发的需求。所以,计算机软件的开发设计者必须要在双层技术和三层技术的基础上进行创新,并能够将四层技术灵活地运用于计算机软件开发过程中去。在这一过程中,我们可以了解,四层技术的开发主要是能够将三层技术的界面层和业务处理层等几个方面进行综合处理,最大程度地降低几个层面之间的影响关系,只有通过这种方式,才能更好地发展成为四层技术,而这种全新的分层技术,其作用是体现在存储层、业务处理层等几个方面,这样的做法便可以将数据库与对象的关系进行了解,从而满足用户对计算机软件的实际需求。 4结语 总的来说,分层技术在软件开发的设计过程中具有重要的影响。而且,随着人们对计算机应用的不断深入,这就需要不断创新分层技术,以此更好地满足计算机软件开发的要求。更为重要的是,分层技术的具体运用,将会显著降低计算机软件开发的成本,全面提升计算机运行的效果和质量。 作者:资和周 单位:云南经济管理学院财经商贸学院 软件技术论文:谈软件技术课程职业岗位技能标准对接 【摘要】本文能过现状与存在问题分析;软件技术专业课程标准与职业岗位技能标准主要研究目标、内容、主要特色及解决的关键问题;软件技术专业课程标准与职业岗位技能标准对接研究的理论意义和实践意义及预期收益;四、研究的工作基础及条件等几方面对软件技术专业课程标准与职业岗位技能标准标准对接进行了分析,探讨了如何完成对接发。 【关键词】课程标准;岗位技能标准;职业教育 一、现状与存在问题分析 以就业为导向,培养符合职业岗位能力的高技能软件应用型人才,是软件技术专业的培养目标。职业教育各国有各国的特点,但发达国家普遍的特点是都是建立在市场济经济基础上的,且都结合本国国情,让学生在实践中学习。我国的职业教育体系比较分散,比较独立,尤其在学生所内容与职业需求的结合方面,仍然不够系统,规范。随着软件行业的不断发展且与世界接轨,对于软件测试专业人员需求量激增,但行业招聘一般要求有工作经验,这样对于刚毕业的学生来说是不利就业的,职业教育既然培养的是职业,就应该面向职业,不要与企业需求脱节,所以学生在校所学内容与企业岗位所需技能的矛盾冲突日益明显。 二、软件技术专业课程标准与职业岗位技能标准主要研究目标、内容、主要特色及解决的关键问题 目标:1.研究一套适合高职高专软件技术课程标准与职业岗位技能标准对接方案。2.针对对接方案的应用研究一系列切实可行的新课程标准。内容:众所周知,职业教育的终级目的是“使无业者有业,使有业者业乐。”针对在校学生面临的是顺利从业问题,职业教育应该从提高学生的职业心理素质;提高学生的职业能力;提高学生的就业能力和创新能力入手,使毕业生能够找到自己对口的职业,因此,此次研究将从以下几方面入手:1.将名师工作室职业岗位技能要求融入课程标准的研究。软件技术专业拥有长白山名师、市级名师与院级名师多个工作室,日常可承接不同种类,不同级别,不同规模的各种项目,本课题组全部成员均为名师工作室教师,在名师的带领下,选择一部分肯吃苦、勤动手、善创新的学生共同开发研究,每个名师工作室都有自己的一整套职业岗位技能规范,我们可以将其中典型的职业岗位技能规范融入课程标准当中。2.将企业职业岗位技能要求嵌入课程标准的研究。软件技术专业近来一直不断派专任教师下企业实践,这些具备企业技能的教师会把握机会将学生带入企业当中,学生每天除了在校学习外,还会利用课余时间去企业接受正规管理与训练,我们可以将企业对学生的要求嵌入到课程标准当中,使进企业的学生更快适合企业的岗位需求。3.将大赛中所需的职业心理素质及创新能力要求纳入课程标准的研究。软件技术专业每年都会有部分尖子生参加各级别大赛,参赛选择不仅要有较高的技术技能,更需要有强大的心理素质和创新精神,我们要把这种心理素质教育和创新精神的培训纳入到课程标准当中,为职业岗位技能提高奠定基础。主要特色:1.通过名师工作室承接的实际项目开发,提高学生项目实战能力;2.通过技能教师带学生走入企业,从实践中提高职业岗位技能;3.通过学生大赛,以点带面,树立榜样,提高学生自主创新能力;解决的关键问题:1.职业院校软件技术专业课程标准与职业岗位技能标准对接的方案设计;2.职业院校软件技术专业系列化新课程标准的开发。本课题研究的理论意义和实践意义及预期收益和具体成果名称。 三、软件技术专业课程标准与职业岗位技能标准对接研究的理论意义和实践意义及预期收益 理论意义:1.探索课程标准与职业岗位技能标准对接的方法;2.探索将职业岗位技能融入课堂教学的新课标。实践意义:通过新课标的开发,并将其应用的实际教学当中,从而提高学生从业能力,实现与企业顺利对接的目的。预期收益:1.开发一套软件技术专业的独具特色的新课程标准,并进行应用与推广。2.在软件技术专业15.16级进行实践应用,提高学生就业能力。 四、研究的工作基础及条件 1.国家示范校重点建设专业。2008年4月软件技术专业被教育部、财政部确认为国家示范校重点建设专业,经过三年大力建设,专业办学条件得到极大改善,师资队伍得到大幅优化,教学质量得到迅速提升,就业质量不断提高,社会影响日益扩大。2.省级优秀教学团队。软件技术专业于2010年4月被评为省级优秀教学团队,教学团队的执教能力、科研能力、开发能力得到社会认可。3.企业人员参与课程标准的制定对于软件技术专业的课程设置,均按企业的岗位技能设置,各课程的课程标准,岗位技能标准,都聘请企业专家参与制定,学院对校企合作开发课程大力支持。不断加强校企业合作,掌握企业的实际需求,逐步完善岗位技能标准,培养符合企业需求的高素所高技能型人才。 作者:于艳华 单位:长春职业技术学院 软件技术论文:计算机软件技术的开发运用 摘要: 计算机软件技术是整个计算机产业最为重要的内在动力,对社会具有很强的服务性、有效性和创新性。以计算机软件技术开发与运用作为研究重点,进而更有效地促进信息化技术的发展和运用。 关键词: 计算机; 软件技术; 开发; 运用 1 计算机软件开发技术及应用概述 1. 1 计算机软件开发技术及应用现状 网络信息技术逐渐普及到人们的日常生活中,并给人们后期的生活方式及工作形式带来了重要的影响。基于互联网的发展视角进行分析,计算机软件技术的开发已经变得越来越重要,并且在计算机软件开发技术的运用上也变得尤为便捷。计算机发展在全世界逐渐获得了推广,市场中对于这方面的人才需求量也逐渐增大。进一步对计算机软件技术进行开发和运用,并有效地吸纳优良的专业人才已成为整个行业不断推进的重要难题。 1. 2 计算机软件开发技术与运用的重要性 互联网要在这一背景下获取更为快速的发展,必须在这一阶段对计算机软件开发技术进行创新性的发展。基于互联网后期的发展角度进行分析,计算机软件技术后期的推进和演变也变得尤为重要。计算机软件技术后期的运用能够更进一步推动网络信息的传递,使其成为可能,进而促使人们日常生活方式产生丰富的变化。在网络信息逐渐存在安全性、隐私性维护程度过低的情况下,计算机软件开发技术的应用就显得尤为重要,它的维护与提升成为了维系整个网络信息安全的重要难题,成为人们安全运用网络、享受其所具有的便利性中最为重要的因素。 2 计算机软件技术发展中存在的主要问题 2. 1 软件产业缺乏一定的核心技术 我国计算机软件技术发展依旧处在初级阶段,软件开发整体水平及相关开发能力都相对较弱,尤其在进行自我研发创新力上,更是处于弱势,进而导致我国软件产业处于较为落后阶段,并在产品层次及相关质量表现上依旧存在一个较低水平。之所以会导致这种现象,主要原因是缺乏相应的核心技术,甚至在一些软件发展前沿性及关键性的领域中依旧是空白阶段。 2. 2 软件人才结构存在一定矛盾性 目前我国,很多从事软件行业的工作人员,大多是基础性没有进行过高层次专业技术训练的人员,他们主要对一些基础程序及相关软件技术进行技术等方面的支持工作,并且缺少高层次科研性人才指导,这就导致我国软件行业难以朝着更为广泛和深层次发展。另外,用人成本也在不断增大。 2. 3 软件产业产品体系表现不够合理 虽然我国目前软件产业已经取得了很大成就,但是在发展结构上一直存在着很大的不合理性,缺乏一定的领导,更是缺少国际上的影响力,所以在许多方面依旧需要进行不断地提升和发展。 2. 4 软件产业的后期发展环境有待进一步优化 我国多年以来一直存在着这么一种现象,就是对计算机硬件的关注度远远大于对计算机软件的关注度,而且投入力度也大不一样。软件产业后期发展仍旧存在很大的不足。国内软件行业在不断发展过程中,常常会出现一些盗版软件,竞争依旧不公正,价格也会不公平,对于知识产权的保护通常比较薄弱。这些都会导致软件企业对于后期的计算机技术研发投入力度不够,不能够给工作人员提供更好的开发环境及支持,导致开发人员没有激情,致使整个产品质量得不到提升,发展空间难以拓展。 3 计算机软件技术开发具有的特点及常用方法 3. 1 计算机软件开发主要特点 在计算机软件构成要素中,系统的构成与所能够运用的软件都是计算机中最为重要的构成部分,而且所具备的特点主要可以分为以下两个重要方面: a) 社会运用价值方面。在对计算机软件进行开发过程中,往往会牵扯到许多不同内容,并且还可以与不同行业中的知识点进行融合,进而对社会各方面的发展具有重要的影响,进一步构建出具有多元化特点及不同的经济效益、社会效益。b) 由于计算机软件技术的开发充满复杂性,因而在开发过程中,大多会需要许许多多的企业支持、资金支持以及大量专业性的科学研究人员的支持。如果想要后期的软件技术得到顺利的创新和发展,就必须得到各方面的支持,进而推进后期的进程,这也会对企业的发展起到良好的推动作用。 3. 2 计算机软件开发最为常用方法 软件开发主要指以下几个方面: a) 生命周期法。对所开发的项目所用时间进行充分的衡量,并对计算机软件开发中不同开发阶段予以掌控,需要在各个不同发展与构建阶段对所需要依据的标注进行严格设定。在这样一种特殊的开发过程当中,也需要计算机软件技术开发人员对每一个方面进行细致、有序的安排,并且能够对社会消费人群的需求进行更为全面的考察和了解,进而对软件所表现出来的功能性进行极为精准的确立。除此之外,这种方法的构建所表现出来的最佳点则在于,可以更好地协助软件开发者制定出更为科学合理的方案,并对不同的软件构建各个不同阶段予以优化。b) 计算机软件系统开发完整且有序。通过这样的一种运用自动化的构建体系,对所需要设计的功能以及后期的目标进行提前设定,然后在运用计 算 机 软 件 开 发 平 台 对 软 件 代 码 进 行 编 写。c) 原型化的开发形式。这一开发形式主要是通过用户还没有对计算机进行软件开发前提前进行运用的方式、方法。这一方法主要分为以下 3 个方面,即: 实验型、进化型、探索型,而且能够在生活使用中表现出极为直观的特点,甚至还具有动态性及严谨性的特点,在这当中主要可以表现客户及开发人员之间的沟通与协商。d) 可视化的开发形式。此种方式的运用主要是通过一定的开发公式提供的图形用户界面,并对其界面元素进行菜单、对话框等合理操作,然后经过可视化的开发工具对其功能进行自发形式的构建,进而对所需要的软件进行开发和运用。 4 计算机软件开发技术运用分析 随着信息技术及网络技术的迅猛发展,计算机运用也得到了更为全面的普及,从这一变化当中也逐渐显示出全球共享网络资源时代已经逐渐发展成熟,也为许多计算机用户在后期的生活及共营中带来了更为优良的便捷性和帮助。在这个时候,要想能够更有效地表现计算机所具有的独特优点,就必须保证所有用户在对软件进行使用中的流畅度。具体而言,对于计算机软件进行开发,可以通过构建网络与用户之间的连接,确保不同节点之间在表现出独立性的同时,对所有用户进行统一性掌控,并对用户所遇到的问题通过一种特殊的平台构建进行快速地解决,让用户在有限的时间中提高工作效率,更有效地促进网络及信息化,使其得到更大程度的发展。在对计算机软件进行重新构建和设计时,需要对使用者进行实时的调查和分析,进而帮助设计者在设计软件的时候充分考虑到用户的体验感受。在进行设计的时候,还需要融入最为全新的开发技术,进而促使所设计出来的作品拥有更高的使用价值。还可以对计算机内部的数据进行还原和备份,进而增强软件运用的安全性和对突发事件的应对性,促使使用者的运用更为安全、可靠。 5 结语 计算机软件技术的开发已经发展了几十年,在这发展过程中,数字化以及网络化的系统、技术都在产生很大的变化和提升。对于软件开发者来说,在对软件进行开发的时候,要进一步选择优良的系统及科学管理的方法进行开发,只有这样,才能够促使软件工程体系得到更好的完善。 作者:周军 吴珅珅 单位:焦作大学 软件技术论文:手机百度地图软件技术的侦查应用 摘要:手机软件,又称为手机APP或是手机应用,即安装在手机上的软件。通过手机厂商预装或是用户自行安装,几乎每一台智能手机都安装上地图软件,给人们的生活带来了极大便利。侦查手段的发展同样得益于工具的革新,可以看到无论是驾车导航还是查询有关地址,手机地图在侦查人员的日常工作中已经得到广泛应用,其地图导航、地址查询、路线规划等功能已经为人熟知。然而作为一款普及程度极高的手机应用,在侦查中除了主动使用手机地图软件提供的功能,还应当具备逆向思维,从涉案手机中挖掘其他信息,综合发挥手机地图软件的作用。 关键词:百度地图;侦查;软件应用 随着智能手机的逐步普及,用户对于手机地图导航的需求也同步增长。手机地图已经从最初的定位、导航、规划出行路线,发展到能够提供三维街景地图、利用大数据实时显示道路拥堵情况、公交车位置等功能。而最近几年,各大手机地图企业不断加深O2O与手机地图结合的场景化运营,从原来的导航出行工具升级为现在的出行生活服务平台[1]。信息化侦查可资利用的资源越丰富,可供有关人、事、物的信息越多,显然手机地图软件的迅猛发展给信息化侦查提供了一个良好的契机。通过对百度地图的功能挖掘,可以为在信息化侦查中如何利用手机软件起到示范作用。 1手机地图软件在侦查中的应用方向 在侦查活动中,对于百度地图的应用主要有以下两个方面:一是对嫌疑对象手机中已经安装的手机地图进行信息查证,对手机用户的行为轨迹进行回溯或关联多维信息。二是在工作中主动应用手机地图,提高工作效率。 1.1通过手机地图软件进行轨迹回溯 查清案事件真相是侦查活动的重要目标。当我们将犯罪嫌疑人或被害人视为一个目标对象时,如果能够回溯其在一段时间内的活动轨迹,显然对于查明案事件至关重要[2]。尽管从理论上说,基于手机地图的定位实质上只是对手机定位,但大多数情况下手机与持有人密切相连,因此,可将手机和人视为同一个目标对象。通过手机进行定位,从而确定手机持有者位置的技术过去往往局限于技术侦查部门,并且由于在实践中具有广泛的使用需求,甚至形成一种依赖。但是传统技术更多是基于基站的定位,事实上自从手机有了GPS模块,对手机自身在室外准确定位已经不是什么困难的事。随着传感器技术、无线通信技术的发展,基于基站或是WiFi的室内定位技术已经今非昔比,越来越准确的室内定位正在逐步走入我们的生活。众所周知,只要有了手机用户的授权,手机地图会在用户授权的时段内持续记录地理位置信息。侦查工作中,对此类信息的提取无论是单纯还原目标对象的活动轨迹,还是关联出更多信息都具有重要意义。 1.2通过手机地图软件进行信息关联 当“联网+”成为流行语,O2O也已经大行其道,手机地图软件已不再仅仅提供简单的地图浏览、路线规划这样的“在线地图”功能,而是正在与线下的企业紧密结合,提供一站式服务,演化成为一个生活搜索服务平台。例如:车辆信息、银行卡信息、团购消费信息。更有意义的是,这些信息不再是一成不变的静态信息,从中不仅可以获得准确的银行卡号和车牌信息,还可以通过实时的多点信息,发现目标对象活动轨迹的规律。例如:通过用户多次团购地点、汽车维护保养地点的分析,可以判断出其活动区域。如果在抓捕犯罪嫌疑人之前通过手机地图软件作为人口了解到其团购信息,甚至可以为抓捕创造良机。因此,通过手机地图软件进行信息关联大有潜力可挖。 1.3通过手机地图软件提高侦查效率 通过手机地图软件进行目标对象的轨迹回溯仅仅是手机地图应用的一个方面,位置信息对于侦查人员来说同样十分重要。借助微信等第三方软件,将手机地图上的位置信息分享给个人或微信群中的数人,已经是实践中的普遍做法。从主动应用来说,手机百度地图有“一路同行”等适合驾车或步行时“边看位置边聊天”,这样的多边通话+位置共享交流的功能,对于跟踪、抓捕等侦查工作同样很有意义。除了位置信息,当前的手机地图还集成了城市路况信息,通过红、黄、绿三种颜色,可以清晰地标注出路况的拥堵程度。无论是百度还是高德,其准确率已经达到80%以上。侦查工作中需要驾车出行的机会较多,而通过躲避拥堵正确选择路线无疑意义重大。一、二线城市的侦查员不少已经能够熟练使用手机地图这一功能。 2手机百度地图的侦查应用 2.1对手机地图软件的检验与调查 我们理解世界的方式取决于我们接受的信息,在案件调查过程中手机正成为一个越来越重要的情报源。越来越多的实务部门开始重视在案件侦查中对手机的检验。当我们获取了目标对象的手机后,理所应当重视对其手机的基本检验,无论是手机的IMEI号,还是通信录、短信、通话记录或是各种手机软件内包含的信息都可能对案件侦查带来突破性机会。而从轨迹侦查的角度而言,手机地图软件是回溯轨迹信息最重要的依托。本文不去讨论如何去破解用户的手机密码的技术方法,而仅仅是针对无密码或是手机使用者提供手机密码情况下该如何关注手机地图软件的有关信息。以手机百度地图为例,以下信息需要加以关注。(1)用户名。如果发现手机百度地图中有登录状态的百度用户名,那么就应当留意该手机中是否有手机百度、百度云等关联软件。百度公司将手机百度称为“6亿人都在用的手机搜索客户端”,无论是用户数量还是搜索历史、关联信息都可以在侦查中发挥作用。百度云也同样是一块值得侦查员挖掘的“富矿”,当前使用手机注册后百度免费提供了2T的网盘空间,如果该用户使用百度云作为手机相册的网盘备份目录,其作用自然不可小觑。(2)常用地址。百度地图中有“常用地址”,设计者的初衷是为了方便用户将家庭和单位地址预设,从而可以迅速找到回到家庭和单位的路线。但从侦查的角度而言则有助于发现目标对象的落脚点和常去的地址。尽管有时这些地址不会像身份证上所显示那样详细,但却更具时效性。(3)历史搜索记录。由于控制面板中没有单独列出“历史搜索”选项,因此,“历史搜索”记录很容易被忽略。与此同时,也很少有手机用户会想到去抹除地图中的历史记录。只有当在百度地图的搜索栏中点击后,下拉菜单会显示出最近9个历史搜索记录。在过去的侦查实践中,就有利用车载导航仪的案例。移动互联网时代,注意对手机地图中所史记录的信息挖掘,同样可能为案件侦破提供更丰富的信息。(4)消费信息。从互联网进入移动互联网时代,LBS——“基于地理位置的服务”[3]方兴未艾,为了寻求更多的增长点,百度在2011年成为去哪儿网第一大机构股东,2014年全资收购了糯米团,于是手机百度地图也就自然成为百度糯米和网上订酒店的入口。从信息化侦查角度而言,百度地图顺理成章地成为由线上到线下调查的重要入口。我们不仅可以知道目标对象曾经有过几笔糯米团购消费,甚至可以实地开展调查。具体操作是在控制面板中的“订单”页面查看该用户有哪些消费记录。(5)车辆信息。近两年,手机百度地图注重打造成为“一站式”平台,因此,对于车辆服务的集成正在不断加强。如果“车主用户达到了1亿”的数据真实,那么很有可能有一部分人会将自己的车辆捆绑在百度账号上,以获得车辆违章查询、维修保养等优惠等服务。我们就可以从此打开一扇该用户车辆的窗口,将车牌号码、车型信息、行使城市等内容一网打尽。尽管通过内网的查询,获得上述信息并不复杂,但诸如车辆维修保养信息等依然十分有意义。 2.2地图服务商的协查 事实上,对于个人轨迹信息,能够直接从手机上通过查询各种历史记录获取的仅仅是冰山一角。地图服务商那里会集合用户海量的个人大数据,而位置信息可以更好地还原用户在一段时空的轨迹信息。只要安装了手机百度地图并打开定位开关,无论你是否打开百度地图,它将永远在后台发送用户的个人位置信息。更重要的是,对于大多数人来说,只要你打开百度地图软件,就会提醒用户“打开定位开关”,又有多少人会拒绝打开定位,或是在退出地图软件时能够记得关闭定位呢?因此,从理论上说,手机地图服务商掌握了注册用户更多的轨迹信息。但是否能够通过像百度公司这样的地图服务商获得某一名涉及犯罪嫌疑的用户一段时间内的空间轨迹信息,还有待实践的检验。当案件侦查需要,必须由地图服务商的协查时,应当在发出调查取证请求前,通过目标对象的用户名查证是否有启用其他服务。如果有诸如前文所述的“百度云”之类的服务应当视案件侦查需求考虑是否需要一并提出协查请求。 3结语 当大小公司企业或是通过二维码发展粉丝,或是通过手机软件不断开拓用户,以各种优惠政策促使手机用户主动或被动地安装手机软件,侦查机关不应当对这些现象无动于衷。我们应当认识到,侦查手段的发展同样得益于工具的革新,大数据时代的每个移动互联网企业回溯、被还原。通过对手机上安装的软件所承载的信息进行挖掘,对侦查实践具有重要意义。 作者:刘亚辉 单位:中国刑警学院 软件技术论文:插件技术应用计算机软件技术中的价值 摘要:近年来,计算机网络相关技术得到了较为迅速的发展。这不仅体现为计算机软件种类、数量的大幅增加,同时插件技术、分层技术等现代技术的进步也反映出这一现状,新型软件技术对计算机的功能扩充起到有效促进的作用。由此,便从插件技术与分层技术的内涵出发,并结合计算机软件技术,对这两项技术的使用价值展开深入探讨,以供参考。 关键词:插件技术;分层技术;计算机软件技术;应用价值 插件技术与分层技术的运用,一方面能够有效缩短计算机软件原型的完成周期,从而节省计算机软件开发的成本投入。另一方面,这些技术的应用也促进了相关技术的进步与使用性能的提升,从而达到更好满足客户需求的效果。据此,针对插件、分层技术在计算机软件技术中的价值展开探讨,具有较为深刻的现实意义。 1插件技术与分层技术概述 1.1插件技术的内涵 插件技术指的是一种应用程序,遵循程序接口完成相应的编写,再规范接口插件,达到拓展程序功能的目的。在当前的计算机软件使用中均包含了插件结构,当应用程序中缺乏插件技术时,那么插件便只能在系统平台中完成运行任务。当前计算机软件中运用到的插件技术主要有以下几种常见类型。(1)组件对象的模型插件。该技术又被简称为COM,利用该模型可以直接定义程序接口,而不需了解插件功能的整个实现过程,同时也能达到不同插件间通信的目的。(2)脚本插件。将插件逻辑运用编程语言转换为脚本代码的实质即为脚本插件的利用过程,编程语言可以是通用语言,也可以是自行开发的。当前脚本插件的主要语言形式为XML,在利用过程中具有简便、易于操作等优势,同时也使脚本插件具备一定的风险漏洞。(3)动态函数库的DLL插件。该类插件的运用主要是针对于主程序来完成,利用动态的数据库形式,主程序可以调用DLL插件中的函数,然后再通过相应函数完成对动态数据库中DLL插件的运用。在主程序运行过程中易出现“DLLHELL”的情形,在此状态下便会导致插件无法正常运行。 1.2分层技术的内容 由于计算机软件系统内部结构中的各个层次都存在相对应的关联,所以为了保证软件运行的灵活性与可靠性,通常需要开发出不局限于某一层功能而是适应多种功能需要的技术,这便需要利用分层技术来实现。随着当前计算机在小型数据功能中的广泛使用,计算机的软件开发也逐渐由单层发展为双层结构,在此过程中也不断提高自身的现代性与科技性。分层技术在计算机软件技术中的应用包含了双层技术、三层技术、四层技术、五层技术、中间件技术等不同类型,在利用分层技术的过程中,可以达到提升软件品质的效果。从社会角度来看,分层技术也能为创造更大的经济效益奠定良好基础。 2插件技术在计算机软件技术中的价值 2.1接口、动态链接库、主程序功能 插件技术在计算机软件技术中的应用原理概括来说主要有接口、插件、主程序三大组成部分。首先,接口指的是插件同主程序之间形成的标准通信协议规则,这对于插件与主程序能够实现有效交互起着基础性的作用,接口的有效也成为影响计算机软件插件插入结果的关键要素之一。其次,插件指的是动态插入形式,通过插件技术作用的发挥,从而帮助计算机软件增加更多的功能。此外,在管理处理功能方面,插件也能为计算机软件创造更为便利的接口,从而为调动程序的快速识别奠定了良好的基础。主程序的主要任务在于启动计算机软件,Windows系统中的主程序一般表现为exe格式文件。在软件运行过程中将插件加载到进程地址中,便可以达到实现基础功能与管理程序等目的。动态链接无法独立完成运行任务,而是通过调用独立程序从而达到使用目的的软件模块。其具体实施方法包括以下几种。(1)静态调用。该方式主要通过加载DLL和卸载编码来实现,不仅操作简单,同时也具有灵活性欠缺的特点。当动态链接库产生时,运用LIB文件完成移植,从而实现对DLL函数的调动,需要注意的是在隐式调动过程,FreeLibray和LoadLibrary无需进行调动,而是在建立起DLL文件时便可以自动让链接程序产生效用,实现对LIB的匹配功能。所以LIB文件的应用又常用于对DLL编译的替代使用。(2)动态调用。此类调用方式虽然同样是利用DLL的加载与卸载来完成,但是其对象主要为API函数,这与静态调用有着显著的区别。通过对内存的充分利用,便可以编写大型程序。 2.2插件技术应用价值与意义 插件技术的应用所具有的价值与意义简要概括起来主要有如下几个方面。(1)插件技术的发展能够促进电子商务以及服务器领域获得较大发展。计算机软件可以使各项任务有序、高效完成。这不仅可以分担服务器的运行压力,同时还可以为软件提供可靠的信息访问服务,从而对服务器管理、软件运行、开发、分配等起到极大的促进作用。(2)插件技术的运用能够实现系统功能的拓展目标。插件应用是立足于硬件系统的插件技术思想而建立起来的,通过将软件程序与接口紧密连接便可以实现拓展系统功能的目的。这一巨大优势也为计算机软件的开发搭建了更为宽广的平台,让系统功能的拓展延伸可以符合先进性与规范性需要。(3)插件技术直接促进了计算机软件性能的提升。插件技术的使用在解决软件集成问题的同时也极大提高了计算机的完整性。计算机软件的研发速度日益加快,要解决软件在开发设计中遇到的问题,则可以通过插件技术的运用提升计算机技术的适用性。 3分层技术在计算机软件技术中的价值 3.1分层技术的主要应用 分层技术在计算机软件中的应用大致可以分为如下几种类型。(1)四层技术。虽然当前计算机软件使用中仍旧存在大量的双层、三层技术,但是这些分层方式却无法适应信息技术发展的真实需要。所以基于传统的界面层、业务处理层与数据层发展而来的Web层、处理层、数据库层、存储层也能够更好更快地解决计算机相应问题。例如,在Web设计中,按照职能可将应用划分为表现层、业务层、持久层与领域模型层,通过四个层面独立的功能发挥,从而达到数据通信传输的效果。(2)中间件技术。该技术是优化数据库、计算机内部操作系统以及应用软件,从而达到加快软件开发速度、提升计算机运行效率的目的。利用中间件技术开发的系统不仅更具独立性,同时也蕴含了更加复杂的技术内容,例如异构和分布集成屏蔽等,这些也为简化软件、提升质量带来巨大帮助。(3)五层技术。在J2EE环境中,五层技术已获得了较为理想的使用效果,其内容主要囊括了客户层、业务层、Web应用层、资源层、集成层。总体来说,五层技术可以按照应用逻辑产生不同组件,从而可以最大限度满足计算机系统的使用要求。 3.2分层技术的应用价值与意义 分层技术在计算机软件技术中使用的价值与意义,总体来说有以下方面的内容。(1)分层技术可以规范软件的功能层次接口,从而达到优化系统的目的。接口在计算机软件系统中具有关键性地位,通过对接口位置的适当处理,既可以提高软件综合性能水平,让用户可以更加快捷、便利地完成计算机操作,同时也可以有效缩短计算机软件的研发周期,达到节省成本的目的。由此看来,分层技术的应用可以获得开发、应用、推广等多项价值,这对于计算机领域的进步也有着重大效用。(2)分层技术直接提高了计算机使用的灵活性与可靠性。计算机软件的开发必须满足灵活性与可靠性的需求,计算机使用并不局限于某一项功能,而是随着功能单元的开发,可以拓展更多的功能。要使得软件的多用性得到保障,那么必然要利用分层技术,才能为提升软件功能的多样化开辟路径,进而才能更好维护计算机软件的可靠性与灵活性。(3)分层技术所蕴含的物理含义也使得该技术的利用能够和软件开发达到更好的匹配效果。分层技术有着特定的物理含义,而在研发计算机软件的过程中,也需要结合分层技术不同层次的特性来协助完成,通过在问题与问题间构建起相对密封的系统,并保持每个层次的平等性,从而为不同层面的问题解决创造更为有利的环境基础。例如,在双层技术的运用过程中,可由服务器与客户端的断点共同组成“双层”,再由客户端为使用者提供界面,让其可以把握相关的逻辑关系。服务器也会在接受消息之后整合信息资源,并将其快速而准确地传递至客户端中。再如三层技术的应用,通过分层也让数据的运行效率与安全性得到了更好保障,在人机交互的过程中既减轻客户端的压力,同时也避免了资源浪费,使得开发的应用资源得到更好的利用。 4结语 插件技术与分层技术在计算机软件中占据着重要地位,插件技术能够有效简化软件程序,从而提高计算机的反应速率,分层技术能为计算机软件开发出更多应用功能创造条件。由此看来,只有加强插件、分层技术的应用分析,完善软件开发的数据库,才能促使现代信息技术获得更大的发展。 作者:果颖 单位:天津电子信息职业技术学院 软件技术论文:计算机软件技术开发应用分析 摘要:随着计算机网络在人们工作、生活和学习中的普遍应用,计算机软件技术的发展逐渐引起了人们的关注。本文以计算机软件技术的开发与应用为研究内容,在分析计算机软件技术发展现状的同时,还对其应用趋势进行了深入研究,从而进一步说明计算机技术的进一步发展的重要意义. 关键词:计算机软件;开发;应用 近年来,科学技术得到了快速发展,其中,计算机软件技术的发展在一定程度上促进了人生生活质量和方式的改变。随着信息化时代的到来,计算机软件技术的应用更为广泛,并成为社会经济发展的重要推动力量之一。 1计算机软件技术概述 在计算机的使用过程中,人们除了要掌握计算机操作系统的使用技巧,还要学会相关专业计算机软件的使用方法。计算机软件包括两种类型:系统软件和应用软件。其中,系统软件实现的是计算机系统管理、维护、监控功能;而应用软件则是用来解决用户需求,例如办公软件、社交软件、设计软件等。人们在计算机的使用过程中,主要是通过软件来实现各种操作,在计算机软件技术发展初期,由于技术水平限制,软件的工作效率较低,无法实现大规模的应用。随着计算机软件技术发展的不断深入,不仅实现了基于计算机平台的软件种类、功能的丰富,其设计也更加趋于人性化。 2计算机软件技术开发现状 基于工业生产发展的需要,以及产业化结构改革的必然结果,以计算机软件技术开发为核心的现代化发展模式将逐渐取代传统产业结构类型,成为未来世界生产力发展的主导力量。在生产实践中,计算机软件技术开发的应用效果得到了肯定,并开始在社会诸多领域得到较为广泛的应用。然而,即便计算机软件技术开发在生产应用领域的优势较为明显,但是,相对于计算机软件技术开发相对落后的中国来说,计算机软件技术开发依然有待进一步的在计算机软件开发中所暴露出来的问题也不容忽视。(1)中国在计算机软件技术开发方面起步较晚,技术积累明显不足,在计算机软件技术开发方面的创新意识和能力依然有待提高。不仅如此,欧美发达国家在计算机软件技术开发领域对中国进行严密的技术封锁,在计算软件技术开发的核心领域,中国依然处于自主摸索状态,尤其是对于计算机系统软件方面的技术开发所存在的问题,对中国社会主义现代化建设产生了一定程度的影响。(2)计算机软件技术开发人才体系有待完善,尤其是高端技术人才领域的人才缺失,造成了计算机软件技术开发的周期的延长,还影响了软件质量。目前,高新技术企业在高端计算机软件技术开发人才建设方面投入了大量精力,却依然收效甚微,这已经严重影响了企业的发展。(3)中国在计算机软件技术开发过程中,由于受多种因素的共同影响,导致自主品牌的数量明显偏低,相关软件技术开发环境无法满足要求,硬件成本过高,在计算机软件市场领域无法与欧美发达国家抗衡。 3计算机软件技术的开发方法 基于计算机网络技术的不断进步,软件种类与功能得到了极大丰富,并且,随着社会发展过程中对计算机软件的需求不断提高,以及计算机软件行业的竞争日趋激烈,计算机软件技术开发方法的创新就显得尤为重要。当前,计算机软件技术开发的方法主要包括软件原型方法、生命周期软件开发方法两种类型,基于开发思想上的不同,软件开发人员可以根据实际需要选择与之相适应的方法。 3.1软件原型方法 在软件技术开发过程中,软件原型设计是其中需要完成的关键内容,在明确用户需求之后,计算机软件技术开发人员根据该需求进行软件的模型设计,并通过市场调查,对最初的模型进行修改,以提高其适应性,并最终确定软件模型。在软件原型法中,所使用的方法包括递增式、抛弃式、演化式等,设计人员与用户共同参与,从而使软件的设计更加符合用户的需求。与此同时,通过与市场同类型软件产品的对比研究进行分析,提出科学的修改建议,对软件性能进行完善,由此可以看出,借助软件模型设计,能够有效提高软件技术开发的效率。 3.2生命周期软件开发方法 在计算机软件技术开发领域,生命周期软件开发方法也被称为瀑布模型,通过对计算机软件设计开发的不同阶段,将软件开发进行项目化的管理,分为需求分析、软件设计、项目编码及测试等阶段,按照流程化的设计开发理念,逐项进行。在生命周期软件开发方法中,软件的设计开发有着明确的框架结构要求,这对于计算机软件技术的开发有着一定的指导性作用,能够提高软件设计开发效率。不仅如此,在软件后期使用过程中,也有利于软件技术维护工作的开展。 4计算机软件技术的应用 目前,计算机软件技术的应用已经覆盖到人们工作、生活和学习等方面的多个领域,随着计算机软件的不断优化,其实际应用效果将得到不断提高。在社会发展的过程中,人们对于计算机软件的要求也在不断提高,其应用领域也在随之扩大。目前,计算机软件的应用正在向着大数据处理的方向发展,基于硬件的支持,计算机软件将不仅在民用领域得到广泛应用,在军事领域的应用也不容忽视。例如,民用领域的视觉识别软件,经过软件设计人员在算法方面的调整,可实现低空飞行的地形匹配技术,从而取代传统的惯性导航和GPS制导方式。计算机软件技术的广泛应用,从另一方面也为计算机软件技术的发展提供了更多的反馈信息,基于应用领域的不同,在计算机软件设计方法与模块化设计方面均有着特定的需求。通过总结实际应用中所出现的问题,进一步调整计算机软件设计思路与方法,从而提高计算机软件的适用性,为计算机软件技术的开发积累经验。 5总结 计算机软件技术的开发水平,是一个国家综合实力的重要体现,随着计算机软件技术在生产力发展方面的作用日益明显,各国开始逐渐关注这一新的技术领域。通过专业化的开发方法,以及针对性的设计思路,计算机软件技术将得到更为广泛的应用。 作者:曾峰 单位:南阳医学高等专科学校 软件技术论文:大数据时代下计算机软件技术探析 摘要:现阶段,由于科技水平发展速度飞快,计算机软件技术也广泛应用到了各个领域,对人们的日常生活与工作均产生了一定的影响,在大数据时代的影响下,社会各个领域必须要提高计算机技术,进而促进计算机软件技术在大数据时代的使用,方可产生更多的综合效益。本文主要对计算机软件技术在大数据时代的应用情况以及发展现状展开了深入的探讨,并期望可以为今后的研究提供相应的参考. 关键词:计算机软件技术;大数据;应用 在当前社会的发展中,随着计算机技术的广泛应用,导致各个领域的运营模式与管理方式均呈现出了相应的变化。在大数据时代的影响下,各个领域均应大力发展计算机软件技术,提高信息处理能力,结合当前的发展形势而进行相应的改革,提高资源整合力度,促使企业的运营方式朝向规范化、标准化趋势发展,这样一来方可促进行业的发展,进而产生更多的经济效益与社会效益,达到可持续发展的目的。本文主要对计算机软件技术在大数据时代的应用情况以及发展现状展开了深入的探讨,对今后的研究具有一定的现实意义。 1国内计算机软件技术的发展趋势 由于计算机软件技术发展速度飞快,很多企业为了促进发展,均提高了对数据存储以及数据库研发力度,由此一来也为很多用户提供便利条件。随着大数据时代的到来,大数据逐渐受到了社会各界的广泛关注。通过对大数据进行分析后可发现,我们也可将其称之为巨量资料,实质上即为必须要采用相应的处理模式方可具备一定的决策能力、洞察能力的海量数据。随着互联网技术的飞速发展,所形成的数据信息也会逐渐增多,根据资料结果显示,数据早已高达10亿T。因此,随着大数据时代的来临,显著促进了国内计算机软件技术的发展,提供了更多发展空间,显著促进了社会经济的发展,产生了更多综合效益。 2计算机软件技术在大数据时代的应用 结合国内的发展形势进行考虑,即使大数据的发展时间比较短暂,然而却产生了极大的效果,受到了社会各界的广泛支持。在这一背景条件的作用下,国内的计算机软件技术必须要不断的完善与改革,方可产生更多的发展机遇。现阶段,很多行业早已将提升计算机软件技术作为主要宗旨,并且结合实际而推出科学规范的运营管理方案。随着大数据时代的发展,企业为了减少成本费用的支出,产生更多的综合效益,均已经加快了改革力度,朝向专业化的处理技术方向发展。在大数据时代的影响下,应用计算机软件技术后可以致使数据信息更加透明化,提高数据的真实性。除此之外,我们也能够以真实准确的数据信息为基础,判断行业的实际发展情况,进而拟定出合理的发展规划,达到可持续发展的目的,具体可从以下几个方面着手。 2.1信息通信 随着IBMSPSS预测分析软件的广泛应用,能够有效减少客流量的流失,不仅可以凭借软件而判断客户的各项行为,同时也能够找寻出在运营管理的过程中所潜在的问题,并对其进行及时解决,进而洞悉客户的行为,达到预留客户的目的。本文在研究的过程中以通讯行业为案例,电信工作人员能够应用计算机软件技术而了解海量客户的数据信息,并对客户的行为进行分析,之后销售至其他企业,产生更多的经济利益。结合当前的发展形势进行考虑,移动公司利用大数据技术,可以对客户实行全面监控与追踪,进而掌握客户的资料信息,最终采用相应的手段迅速将资料传递给负责人。 2.2商业运营 通过对动物园的运营状况进行分析后可发现,管理者利用Cognos,为I-PAD构建了即时功能软件,换而言之,在该软件的作用下能够访问游客信息,并以此作为服务依据。由此一来则可了解到,正确使用软件技术能够有效促进市场经济的发展,进而在严峻的市场竞争环境中占有重要影响力。 2.3企业信息解决方式 一般情况下,企业信息管理软件基本上则使用在以下几个方面,即:工作人员流动、获取客户信息、互联网营销以及风险监控等。在SAS/EM的影响下,企业在运营管理的过程中可以将数据信息挖掘步骤分为五个环节,具体如下所示:2.3.1抽样环节针对这一环节而言,则是产品在运营生产的过程中对数据信息进行抽样选择,例如验证集等。通常情况下来看,在选择样本容量时,我们可对其作出相应的定位,样本应具有一定的代表性意义,信息量充足,方便进行分析与应用。2.3.2开发与探索环节在此环节中可采用关联性以及趋势性等方法而获取数据信息,进而提高用户对数据信息的了解。在此环节中所采用的方式主要包括以下几种,即:统计报告以及变量选择等。2.3.3修改与更改环节在此环节中主要以模型选择为主要操作目标,用户在进行创建以及选择等操作后能够对数据集进行更改。在此环节中所采用的方式主要包括以下几种,即:变量转换以及产品编码等,最后则对数据进行分箱处理。2.3.4模型环节为了确保预测数据的精准性,工作人员在操作的过程中必须要应用辅助工具而对模型进行培训。在企业的运营规划中,这一环节尤为关键,并占有重要影响力,不仅可以确保产品质量,同时也能够产生更多的市场经济效益,对企业的运营发展可产生很多的积极影响。2.3.5评估环节通常情况下来看,在进行该项操作时,首先应对模型进行对比,并且运算出全新的拟合统计量,在此之后则让相关的工作人员对此进行研究,对所产生的运营方案进行测试,最终形成报告文件。 3结束语 综上所述,随着大数据时代的来临,显著促进了国内计算机软件技术的发展,提供了更多发展空间,推动了社会经济的发展,产生了更多综合效益。虽然国内大数据的发展时间比较短暂,但是在数据采集以及应用等方面均已经逐渐趋于完善,不但可以减少成本费用的支出,同时也可提升工作质量,对企业的发展可产生很多积极影响。 作者:张涵桐 单位:山东省威海市文登一中 软件技术论文:高职院校软件技术校企人才培养对策 摘要:目前高职院校软件专业最为有效的人才培养模式是校企合作模式,它能帮助学生快速提升专业技能,积累社会经验,较好地解决当前软件人才培养中存在的问题。本文分析了校企合作模式的现状及其存在的问题,并针对这些问题提出了解决对策,旨在进一步完善校企合作办学模式,为社会培养更多的高技能人才。 关键词:高职院校;软件技术;校企合作 目前,社会各行各业的竞争十分激烈,学生就业压力大,刚踏入社会的学生如果没有能力和经验,很难在短时间内立足。为了使职业院校学生在激烈的竞争中脱颖而出,实现自我价值,学校需要不断探索人才培养模式。经过实践证明,与企业合作办学的校企合作模式是目前最为有效、最具优势的人才培养模式。 一、高职院校软件技术专业校企合作人才培养的实施背景 校企合作不同于传统的办学模式,它包括从理论基础到社会实践的全过程,由校方和企业合作完成,帮助学生掌握专业技能。目前我国已有许多高校采用了校企合作的人才培养模式,与一些优秀的企业单位进行合作教学,这样不仅可以帮助学生打好理论基础,还能获得宝贵的实践经验。校企合作模式是我国高职教育探索出的一条人才培养新途径。 二、高职院校软件技术专业校企合作人才培养现状 目前,校企合作的很多实施方案还有待进一步完善,所以当前人才培养效果还没有达到最佳状态。在校企合作的过程中,有些企业没有提供最优质的资源,教师也没有采用灵活多变的教学方式,没有为学生带来生动有趣的教学内容,使学生在课堂中并没有有效掌握知识和技能,这在很大程度上限制了校企合作最终成果的呈现。校企合作的办学合作方案,需要校企双方达成共识,在政策、平台对接、激励制度的实施、管理制度等方面达成高度的统一。但是在实际的操作过程中,校企双方的沟通和衔接却总是没有达到预期的效果,这使教学过程中出现了一系列的不足和问题。而且,目前企业的积极性普遍不够高,导致学生在实践中并没有达到预期效果。这些因素在一定程度上影响了校企合作之间的实效性。另外,在校企合作的过程中没有有效激发学生的创新意识,这使学生学习软件技术的兴趣不高,校企合作模式并没有达到最佳效果。而且,校企合作的管理机制以及相关的法律规定并没有得到完善,这可能导致校企合作在实施过程中存在一些细节方面的漏洞及偏差。 三、实施校企合作人才培养的对策与建议 1.在校企合作人才培养中要发挥引导与保障作用 针对校企合作人才培养的模式,政府应当在法律和制度层面为校企合作提供保障。首先,学校和企业是两个不同性质、不同盈利方式的单位,学校的主要目的是教书育人,而企业单位的主要目的是盈利。因此,让校方和企业达成共识,实现共同发展,需要一个日积月累的过程。在这个过程中,法律需要发挥规范和引导的作用,使校企合作在实施过程中能够得到保障。例如,在软件技术专业校企合作人才培养中,可以对表现优异的院校和企业进行奖励,这对其他的企业和高职院校势必会起到激励的作用。另外,对学生个人来说,法律和制度能避免其正当利益遭受侵害,使其个人权益得到保障。 2.探索和实践面向软件企业需求的订单培养模式 企业是一个以生产经营为主要目的的单位。企业需要什么样的人才,学校就有针对性地培养什么样的人才,人才就如同企业的订单一样,在学校接受针对性的培养和训练。学生在上岗前接受企业准员工的培养教育模式,收获专业技能和社会实践经验,真正实现定制培养。在培养过程中,学校要根据学生和企业的实际情况,让学生了解企业的岗位设置、岗位需求、岗位要求,有针对性地提升自我知识技能,帮助学生能够真正掌握对口岗位所需的专业技能。校企双方还要达到教育理念及教育方式上的统一性,在诸多细节上进行研究,帮助学生快速适应工作岗位。总之,校企合作人才培养模式被越来越多的高职院校认可,将其广泛应用于软件人才的培养中,可以实现院校和企业双赢的结果。 作者:罗莎 汪卫星 韦大欢 单位:北海职业学院 软件技术论文:怎样提高软件技术程序课堂教学的效率 【摘要】本文基于当前软件技术专业程序课堂教学现状,详细分析了当前在教学过程中存在的不足,并提出了三点提高软件技术专业程序课堂教学效率的策略,希望能够提高软件技术专业教师在程序课堂教学中对学生实践的重视程度,从而提高软件技术专业程序课堂教学效率。 【关键词】软件技术;教学效率;策略 随着时代的发展,当前社会对软件技术专业学生需求越来越多,但同时对软件技术专业学生的要求也越来越高,为了使学生能够更好的在程序课堂教学中学习到相关知识,教师就应该积极改变传统教学模式,更新自身教学理念,通过借助多媒体、互联网、计算机等技术,为学生普及更多的软件技术专业内容,从而使学生能够更顺利的走入社会,为学生发展作出贡献。 一、软件技术专业程序课堂教学现状 (一)软件技术专业教学内容有限 由于当前企事业单位发展的需要,软件技术得到了广泛的使用,在当前社会快速发展的大背景下,软件技术也实现了快速发展,其中不仅包括了很多新内容,对设计人员要求也有所提高,而学校作为培养软件技术开发人才的基地,当前在开展软件技术专业程序课堂教学时,仍然存在着教学内容有限的问题[1]。笔者通过分析发现当前使用的软件技术专业教学仍然使用着以往的教材,虽然使用以往教材能够使学生学习到一些基础性的软件技术知识,但是无法使学生及时掌握到当前更新的软件技术教学内容,因此在一定程度上降低了课堂教学有效性,学生无法及时跟上当前软件技术发展的潮流,当学生在后期进入工作岗位时,势必会出现一些问题,降低学生的职业能力与水平。 (二)软件技术教师教学理念落后 虽然在教学改革的大背景下,软件技术专业程序课堂教学已经提高了对学生的重视程度,但是由于传统教学理念根深蒂固,大部分软件技术专业教师在教学过程中仍然采用传统教学观念,意图通过为学生灌输与软件技术相关的知识来提高学生软件技术设计能力,然而在该种教学理念引导的软件技术专业教学下,学生无法感受到自身主体在学习过程中的重要地位,不仅降低了学生学习兴趣,甚至还会造成学生出现厌恶学习软件技术知识的情况,学生普遍对程序设计出现了学习积极性不高的情况,降低了程序课堂教学有效性与学生学习有效性,对学生日后的发展也产生了不良的影响。 (三)软件技术专业程序课堂教学方法单一 除上述问题外,当前在软件技术专业程序课堂教学中,还出现了教学方法单一的问题,造成这一问题的主要原因是软件技术教师教学理念相对落后,这一问题带来的不良影响主要体现在以下几方面:一是学生学习思维受到限制[2]。由于在程序课堂教学过程中使用的教学方法相对单一,因此过度强调学生被动式学习、机械式训练,忽视了学生的主体地位以及学生对知识的接受能力,导致学生思维得不到有效发散;二是课堂效率降低,由于学生对单一的程序可能教学方法不感兴趣,因此在课堂中还可能出现玩游戏、玩手机的情况,降低了学生课堂学习的积极性以及学习效率;三是学生无法利用学习过的知识解决问题,由于学生学习积极性的降低,导致学生无法全面掌握教师所讲授的内容,降低了学生程序设计能力。 二、提高软件技术专业程序课堂教学效率的策略 (一)借助互联网技术,为学生普及更多知识 在上文的分析中,我们能够发现,当前软件技术教学知识受到限制是导致教学效率降低的主要原因之一,基于此,为了提高软件技术专业程序课堂教学效率,教师在教学过程中就应该积极借助互联网技术,通过查找一些与当前软件技术中程序设计相关的知识,了解到当前程序设计发展情况,从而为学生讲授更新的软件技术知识,使学生不仅能够及时了解到软件设计的发展情况,更能够激发出自己学习软件技术知识的兴趣。首先,软件技术专业教师应该全面总结当前软件技术专业程序课堂教学内容,从而建立起更系统的软件技术知识框架;其次,教师在借助互联网技术了解当前软件技术发展情况时,应该实现新旧内容的有机融合,从而使学生的软件技术学习系统更加清晰。 (二)开展教师培训,更新软件技术教师教学理念 虽然与以往教学相比,当前更重视学生的主体地位,但是在开展软件技术专业程序课堂教学过程中,教师的引导地位也是十分重要的,只有教师具备正确的教学理念,才能提高教学的有效性[3]。基于此,学校就应该发挥出自身作用,通过为软件技术专业教师开展培训活动,使软件技术专业教师能够认识到自己当前在程序课堂教学过程中存在的不足,同时在开展教师培训时,还应该更新教师的教学理念,使教师切实认识到学生在教学过程中学生的主体地位,从而不仅仅采用传统“理论+实践”教学模式进行教学,也能够考虑到学生接受能力、自主学习能力等方面,提高学生与课堂的融入程度,从而提高软件技术专业程序课堂教学的有效性。 (三)使用计算机技术,实现理论知识向实践的转变 在软件技术专业程序课堂教学中,实践教学与理论教学同等重要,只有学生能够将理论中所学习到的知识运用到实践中,才能够切实提高教学的有效性,为学生今后发展作出贡献,由此看来,教师在教学过程中,就应该积极使用计算机技术,实现理论知识向实践的转变。基于上述分析,教师在程序课堂教学时就应该做好以下几方面工作:一是深入分析学生在本节课的学习状态,从而找到学生学习重难点;二是根据所掌握的重难点,通过为学生布设任务的方式,使学生能够在课堂练习或课后练习中更好的运用理论知识设计实际程序,保证学生能够在练习的同时加深对理论知识的记忆,提高学生学习水平,同时也提高软件技术专业程序课堂教学效果。 总结 总而言之,要想提高软件技术专业程序课堂教学效率,教师在教学过程中就应该积极借助互联网技术,为学生普及更多的知识,使学生能够激发出自身软件技术学习兴趣,同时,教师还应该积极转变自身教学理念,采用更适合的教学方法,使学生能够积极参与到课堂学习中,从而让学生能够主动将理论知识运用到实践操作中。 作者:周海珍 单位:湖南软件职业学院
软件设计论文:企业财务电算化软件设计应注意的若干问题 现代电子技术在财经领域的应用??会计电算化,为会计管理开创了一个新时代,使现代财务管理搭上了“信息快车”,彻底摆脱了“会计室里的算盘、钞票、记账”等沉闷印象,财务管理进入了真正的“数字时代”,大大提高了管理水平和管理效率,产生了巨大的经济效益和社会效益。 会计电算化是一项复杂的系统工程,技术性、创造性很强,与其他系统比较,有很大的特殊性,它处理的信息量大,数据要求准确可靠、保存期长,需要严格监控;同时,会计数据要求严格、保密性强,属企业敏感资料。因而,会计电算化对财务管理及其软件设计均有特别的要求:财务管理标准化、规范化;软件设计须具有安全可靠、功能多样性…… 一、财务软件设计对会计工作的要求 1.增强法制观念,严格执行会计法 会计法是我们开展企业会计工作的法律依据,执行会计法是国家对会计工作的基本要求,所以企业的财务工作必然遵守会计法,遵守国家有关信息安全的法规。只有依法办事,会计工作才受到法律保护,从而为会计电算化的实现提供稳定的法律环境。 2.会计科目代码化 实行会计科目代码化的优点很多:(1)结构简单易记,便于会计人员使用;(2)便于电脑识别、分类、查验、调用和处理;(3)减少资料储存空间,减少电脑处理资料量,加快运行速度。企业会计科目代码必须采用会计制度规定的科目统一编码,例如现金101,银行存款102……这样既简单明了又便于计算机识别和处理,工作人员也乐于使用。如果缺少了这一重要环节,电脑系统就平添许多复杂内容,计算机不得不逐次识别处理每个会计科目,大大增加了程序设计的难度,而且多占了内存空间,减慢了计算机的运行速度,还会增加出错机会,不符合信息化环境的要求。因此,会计电算化首先要将会计科目代码代。 3.会计凭证标准化 电算化环境下会计凭证的设计要求:(1)具有通用性??尽可能满足各职能部门对会计核算的要求,力求做到多功能、一单多用、各方共享,提高人机工作效率。以记账凭证设计为例。建议采用集现金收付、银行转账、往来于一身的复式记账凭证,其内容应包括:摘要、科目编码、会计科目、一二级明细目、外币种类、借贷方金额、备注等,这样既适合处理人民币业务,又能处理外币业务,基本满足了会计核算的多方面要求,而且考虑到了未来对外业务发展之需,符合通用、多功能的原则。(2)便于会计人员操作,易于计算机处理。凭证设计的另一个要求是尽可能减少工作人员的书写、输入量,减少人工处理业务方面的时间??在会计实务中,工作人员往往要花大部分时间填写凭证、处理会计资料,效率低、差错多,而电算化管理则要求最大限度地减少人为处理资料的时间,让计算机更多地代替人的劳动,以充分发挥电脑高速、高效的优势。 同样道理,账簿设置、会计报表编制,也要符合标准化的要求,既要兼顾各方面需要,又要方便计算机处理。 4.会计处理方法制度化 会计电算化系统繁复而涉及面广,不宜经常修改,这就要求会计核算的方法、程序实行制度化。例如,固定资产的折旧方法有平均年限法、工作量法、双倍余额递减法、年数总和法等几种,企业可按实际情况加以选择,但一经确定就不要随意更改,要形成制度化执行。如果会计处理方法更改频繁,一则不符合会计制度要求,二则影响电脑系统正常运作,容易发生差错。如果不慎修改出错,就会导致系统损坏,影响正常会计工作。几年前,英国某信用卡公司就因修改计算机程序出错,致使支付混乱。日常生活中,类似情况是屡有报道。因此,如无法规、制度的变更,一般不要随意更改会计核算方法,以保持会计业务环境相对稳定,保证电算化系统正常运作。 5.培养复合型人才,提高财务人员的整体素质 综观目前的企业,既懂会计又懂计算机,并有一定英文英础的复合型人才实在太少,这是推行会计电算化的一大障碍。会计人员如果只懂会计,没有电脑知识,就不可能提出很好的会计管理构想去实现电子化;只有既熟悉会计,又具备一定电脑知识的会计专才,才能设计出优良的财务管理方案,让程序设计者去开发适用软件,使电算化发挥最大效能。再者,财务人员如具备一定电脑常识就能最大限度地避免操作错误,降低差错风险,从而保证会计数据安全。为此,企业要做好复合型人才的培训工作,让现职会计人员掌握电脑知识,为实现电算化提供重要条件。 实践证明,企业要顺利实行电算化管理,必须切实做好以上各项基础工作,争取上级领导的大力支持,为落实基础工作提供保证。 二、财务管理系统对软件设计的要求 1.高起点、高规格开发高质量的软件 财务系统对企业很重要,准确程度要求高,不允许有半点差错,因而必须从高起点出发,聘请高水平、合资格、有财务软件开发经验的公司和工程人员负责开发,不能聘请不够资质、不合资格、无实践经验的人员开发。否则,会影响系统的质量、进度,甚至会半途而废。例如,广州某企业,因经费不足聘请了一家技术力量较弱的公司负责开发会计系统,由于设计人员水平较低,加之无实践经验、缺乏财务常识,开发出的系统漏洞百出,最终无法使用,给企业造成了损失;同时,严重影响了该单位的电子化进程。因此,财务系统开发,用户必须聘请技术力量雄厚、具备财务软件设计经验的单位和设计人员负责。 2.做好系统分析工作 软件设计首先要从系统分析着手,目的在于了解财务工作流程,广泛收集必要数据,对相关的各种因素进行详细分析,这是软件设计的基础工作,很重要。对问题的分析是否深入细致、完整透彻,体现了设计人员对将要进行的工作的了解程度,也体现着基础工作准备是否充分,这关系到未来系统的成败,因而要充分重视系统分析工作。系统分析的具体步骤: (1)成立专家小组,具体包括:委托方、软件设计人员、会计师、系统使用者、信息安全工程师等组成,为全面开展工作做好准备。 (2)落实任务,明确基本事项,确定具体要完成哪些工作。 (3)提出具体要求,包括:明确给出系统的规模;系统应能完成哪些工作;系统工作的步骤和方法:新系统应达到何种质量水平,以及具体的质量控制指标、计划进度等。 (4)收集、整理数据资料,包括:会计业务分工、业务量、业务处理方法、各类报表、输出结果的时间、数据储存要求等。 (5)认真编好会计业务流程图。会计业务流程图就是把会计业务的整个过程用图示和文字说明表述出来。这一过程很重要,是系统设计的基础、依据,财务系统就是根据会计业务流程图设计出来的,是会计业务流程的“数字化”。业务流程图质量的好坏直接决定着系统设计的成败。因此,必须认真踏实地做好业务 流程图的编制工作。 业务流程图须由专家小组编制,其间应重点发挥有实践经验的会计师、具体业务操作者的作用,重视一线员工的意见,尽最大可能满足第一线业务的需要。设计财务系统很重要的一条就是实用、方便操作,要考虑到一线业务的具体情况。只有理论和实践相结合,方便实务操作,财务系统才受使用者欢迎。 业务流程图须同时采用文字说明、图形描述两种形式,以相互补充;有关说明、描述必须详细、周密、完善、步步到位,凡是业务触及到的细节均应详细说明、准确标出,为下一步程序设计工作提供充分依据。 有的单位在开发财务软件系统时,只侧重程序设计环节,忽视业务流程图编制的重要性,结果到了程序设计阶段,不得不中断设计,回过头来抽出大量的人力、物力去临时补上有关业务流程细节,财务系统成了典型的“边设计边施工边补漏的‘三边’工程”。这样既容易出错又拖慢了工程进度,更谈不上周密完善,还会影响系统的设计质量,给企业造成损失。 (6)编制程序流程图。程序流程图是将系统设计的具体步骤,通过图示符号表示出来,它直观地反映了程序设计的构思过程,体现了整个程序运行的思路,是程序设计的关键一步,直接决定着程序设计质量的高低。同时,绘制好程序流程图非常有利于系统的整体控制。 (7)对前期基础准备工作进行严格审核。财务系统的设计是以各项优良的前期准备工作为前提的,基础工作显得尤为重要。顾此,在开展程序编写工作之前必须全面审查有关准备工作是否充分,发现问题及时解决;严禁边准备、边设计、边补漏。 3.程序设计阶段,采用模块化设计 模块化就是把一个复杂的程序分成若干个功能不同的多个部分,各个子模块均有独立功能,可以单独运行;而把各个子模块组合在一起,又能方便地搭配成一个完整的系统。模块化设计是现代程序设计中一种很重要的技巧,有着众多优点: (1)便于分工合作,提高效率,提高质量。系统设计时,可以把要做的工作分拆成多个部分,然后分配给不同的人,甚至不同的单位各自开发。这有利于提高效率,提高程序的设计质量。 (2)便于维护、维修,增强通用性、易读性。 (3)增强模块的独立性,降低相互之间的依赖程度。即使有某些部分故障,也不致影响系统的整体运行。 (4)能设计出可绕过障碍区运行的高质量软件??这是模块化设计的最大优点。由于模块之间相对独立,所以即使出现某些非关键性故障,系统依然能安全运行。这一点很重要,因为系统在使用中出现小故障是较常见的现象,如果财务系统具备了这种优点,就能做到不停机维修,不致影响日常业务,这对财务管理特别有意义。反过来,如果系统一有小毛病就会影响日常业务,甚至突然“死机”,就会严重打乱企业的管理秩序,还可能会造成数据丢失,给企业造成损失。所以,能做到小毛病不停机维修,大故障能尽快恢复是财务管理对其软件设计的特殊要求。 4.软件设计要有扩展性,以适应企业未来发展 会计电脑系统设计要预计到企业各类业务的发展,要预留足够的扩展空间,以适应业务高层次、多元化发展。某些企业的电算化系统因没有扩展性,致使业务稍有变动,系统就无法适应,延误了日常工作。例如,一些企业的会计系统能处理人民币、港币、美元业务,但对日元、英镑、欧元或其他外币业务就难以适应。随着我国即将加入WTO,企业外币业务必然日益增多,缺乏扩展功能的会计系统将难于满足未来发展要求。因此,会计系统设计一定要有超前意识,要考虑到未来业务发展需要,设计有扩展性、多功能的软件。 要考虑到某些特殊业务的需要。深圳市曾发生过这样一件事,一对从新疆调进该市的夫妇,在为小孩办理入户手续时,因公安局的户籍管理系统只能输入四个汉字以内的姓名,而该小孩是维吾尔族,名字由近十个汉字组成,超出了公安局电脑系统的设计要求,以至无法正常入户,引起了不必要的纠纷。以此为鉴,财务电脑系统应有处理特殊业务的设计,要考虑到特殊业务的需要。 5.强调面向用户 财务系统的最终使用者是企业,是一线业务人员,所以要特别强调操作简单、方便用户,要设计良好的用户界面,具体操作应尽可能简单易学。在屏幕显示方式上,最好只显示与业务相关的资料,对可有可无的资料,如参考性、辅助性的资料则能省则省。切忌“和盘托出”??有用、暂不需用的资料均显示于屏幕,这样很容易造成操作错误,还会给人“眼花缭乱”的感觉。在目前企业计算机应用水平、管理水平不很高的情况下,“面向用户性”很值得广大设计人员的重视。 6.试运行 系统完成开发后必须反复测试,证明达到设计要求,才能交付使用;不能边检测、边使用、边补救。 7.制定应急计划 系统完成设计后,开发方应编制与系统相关的运行文件,并提出有关注意事项,以备在出现意外情况时,有条不紊地采取相应措施。使用单位也应制定自己的应急计划,以备急需。令人担忧的是,不少单位恰恰忽视了这一关键步骤,没有起码的应急计划,假如系统一旦出现故障,后果不堪设想,损失将是巨大的。 8.加强风险控制,保证信息安全 实现会计电算化,必然解决信息安全问题。由于电子数据高度集中,高度依赖电脑,且受电脑病毒入侵、人为操作失误、机器故障、非法毁损等因素影响,数据很容易被破坏,因此,会计电算化必然加强信息安全管理,一方面制定各种严格的管理制度,加强风险控制,加强管理;另一方面加强对员工的信息安全教育,严禁未经受权人员上机操作;不能连接与业务无关的终端,禁止与互连网连接;采用先进的加密技术,安装“防火墙”,严防电脑病毒入侵,防止人为非法破坏数据。实践证明,严格、有效的管理制度是信息安全的最好保障。 9.加强对财务系统使用前的审计 财务系统必须确保正确,才能投入使用,这是保证财务数据安全的关键。系统在投入使用前,应组织专家小组进行严格审计、从严检测,并实地模拟运行。只有证明正确无误的系统方可正式投入使用,只有经过“实战”检验的系统才具有可靠性。必须指出的是,财务系统不能边使用、边检测、边维修,这样风险很大,难于保证数据安全。 实行会计电算化,要求财务管理标准化、规范化,而财务软件设计则要符合财务管理的特殊要求。只有相互适应、互相配合,才能设计出安全可靠、多功能、高质量的优秀软件,更好地推进会计电子化工作。财务电算化是大势所趋,是提高企业科学管理水平、增强竞争力的迫切要求??会计师、程序设计人员在这方面有着异常重要的作用,应充分调动他们的积极性、创造性。 软件设计论文:会计报表的软件设计方法 一、会计报表的作用和种类 会计报表是综合反映企业一定时期财务状况经营成果的书面报告文件。在日常会计核算中,各项经济业务分类地登记在会计帐簿中。会计帐簿虽然能够反映某一会计期间的经济活动内容,但却是分散的,不能集中揭示和反映该会计期间经营活动和财务状况的全貌。为了进一步发挥会计职能的作用,必须对日常核算的会计资料进行整理、分类、计算和汇总,编制相应的会计报表,为有关各方提供总括性的信息资料。 (一)会计报表的作用 1.会计报表提供的经济信息是企业加强和改善经营管理的重要依据 企业管理部门及决策者通过会计报表,可以全面系统地了解企业生产经营情况、财务情况和经营成果,能及时发现企业经营中存在的问题,检查分析财务计划的执行情况,迅速作出决策,采取有效的措施,改善生产经营管理。同时,利用会计报表提供的信息,为制定企业经营计划、企业经营方针等提供准确的依据。 2.会计报表提供的经济信息是国家经济管理部门进行宏观调控和管理的依据 政府部门利用企业报送的会计报表提供的财务信息,及时掌握各企业单位的经济情况和管理情况,便于对企业的生产经营情况进行检查分析。国家宏观经济管理部门可以通过企业的会计报表提供的资料进行汇总分析,以掌握国家经济总体运行状况,从中发现国民经济运行中存在的问题,为政府进行国民经济宏观调节和控制提供依据。 3.会计报表提供的经济信息是投资者和债权人进行决策的依据 由于债权人和部分投资者一般不能亲自参与企业的生产经营活动,不能直接获得企业经营方面的信息,因此,债权人和投资者为了进行投资等方面的决策,需要通过对企业会计报表的分析,了解企业的财务状况及生产经营情况,分析企业的偿债能力和盈利能力,从而,作出投资、融资等决策。同时,投资者通过会计报表了解企业情况,监督企业的生产经营管理,以保护自身的合法权益。 (二)会计报表的分类 会计报表可以根据需要,按照不同的标准分类 按照会计报表反映的内容,可分为动态会计报表和静态会计报表。动态会计报表是指反映一定时期内资金耗费和资金回收的报表,如损益表是反映企业一定时期内经营成果的报表;静态报表是指综合反映资产、负债和所有者权益的会计报表,如资产负债表是反映一定时期企业资产总额和权益总额的报表,从企业资产总额方面反映企业的财务状况,从面反映企业资产的变现能力和偿债能力。 按照会计报表的编制时间,可分为月报、季报和年报。 按照会计报表的报送对象,可分为内部报表和外部报表。 二、会计报表的软件设计方法 实现会计电算化后,会计报表一般都采用计算机软件来实现,即整个会计报表的形成过程:采集、计算、打印均由计算机来自动完成。 根据计算机对不同报表的数据采集和报表形成的不同处理方法,会计报表的软件设计方法可分为三类:专用报表的固定化设计、专用报表的通用化设计和通用报表的设计三类。 (一)专用报表的固定化设计 早期的会计电算化报表设计一般均采用此种方法。此种方法针对某个企业进行定点开发时,用专用报表的固定化设计。这种方法的设计要点是:针对某个企业报表格式固定不变,报表的数据固定单一,程序中只需将某帐簿文件的期末余额(或期末发生额)读出并输入报表文件中某行即可。其特点是:简单直观,不能通用。 (二)专用报表的通用化设计 此种方法的设计要点是:报表格式固定不变,但数据来源有所不同,不同用户可以根据自己的实际需要自行定义数据来源和计算公式。其特点是:灵活机动,便于通用。 (三)通用报表的设计 此种方法的设计要点是:报表格式(表头和表体)自行定义,数据来源也由用户自行定义,即不同用户可以根据自己的实际需要自行定义表格的表头栏目,自行定义数据来源和计算公式。其特点是:自行定义,自行设计。 1.通用报表的数据文件组织 (1)报表名称数据库 报表名称数据库用于存放定义的报表名称、报表编号、定义的日期,通过该数据库实现会计报表的管理,即增、删、改会计报表。 (2)报表框架结构 该数据库由三个字段组成:表号、标识字段和表结构内容字段。标识字段取值为:xt、lh、xw,分别表示“直接显示表头内容”、“栏号”和“直接显示表尾内容”。若标识字段各记录取值都为“xt”则可全屏幕手工制表(数据由键盘直接录入,与wps等字处理软件制表相似)。 (3)报表数据来源及计算公式数据库 该数据库用于采集某报表各栏数据。由六个字段组成:表号、栏号、核算、数据、数据来源、标识。标识字段取值为:“DZ”、“FZ”、“BN”及“LR”,分别表示数据来源于某一个帐、多个文件、表内运算及手工录入。栏号表示数据在表中的装配位置。 2.通用报表的程序设计 通用报表程序设计思想是:根据报表名称数据库、报表框架结构数据库、报表数据来源及计算公式数据库中的内容,程序自动编制一张报表并打印输出。 软件设计论文:企业财务电算化软件设计应注意的若干问题 现代电子技术在财经领域的应用??会计电算化,为会计管理开创了一个新时代,使现代财务管理搭上了“信息快车”,彻底摆脱了“会计室里的算盘、钞票、记账”等沉闷印象,财务管理进入了真正的“数字时代”,大大提高了管理水平和管理效率,产生了巨大的经济效益和社会效益。 会计电算化是一项复杂的系统工程,技术性、创造性很强,与其他系统比较,有很大的特殊性,它处理的信息量大,数据要求准确可靠、保存期长,需要严格监控;同时,会计数据要求严格、保密性强,属企业敏感资料。因而,会计电算化对财务管理及其软件设计均有特别的要求:财务管理标准化、规范化;软件设计须具有安全可靠、功能多样性…… 一、财务软件设计对会计工作的要求 1.增强法制观念,严格执行会计法 会计法是我们开展企业会计工作的法律依据,执行会计法是国家对会计工作的基本要求,所以企业的财务工作必然遵守会计法,遵守国家有关信息安全的法规。只有依法办事,会计工作才受到法律保护,从而为会计电算化的实现提供稳定的法律环境。 2.会计科目代码化 实行会计科目代码化的优点很多:(1)结构简单易记,便于会计人员使用;(2)便于电脑识别、分类、查验、调用和处理;(3)减少资料储存空间,减少电脑处理资料量,加快运行速度。企业会计科目代码必须采用会计制度规定的科目统一编码,例如现金101,银行存款102……这样既简单明了又便于计算机识别和处理,工作人员也乐于使用。如果缺少了这一重要环节,电脑系统就平添许多复杂内容,计算机不得不逐次识别处理每个会计科目,大大增加了程序设计的难度,而且多占了内存空间,减慢了计算机的运行速度,还会增加出错机会,不符合信息化环境的要求。因此,会计电算化首先要将会计科目代码代。 3.会计凭证标准化 电算化环境下会计凭证的设计要求:(1)具有通用性??尽可能满足各职能部门对会计核算的要求,力求做到多功能、一单多用、各方共享,提高人机工作效率。以记账凭证设计为例。建议采用集现金收付、银行转账、往来于一身的复式记账凭证,其内容应包括:摘要、科目编码、会计科目、一二级明细目、外币种类、借贷方金额、备注等,这样既适合处理人民币业务,又能处理外币业务,基本满足了会计核算的多方面要求,而且考虑到了未来对外业务发展之需,符合通用、多功能的原则。(2)便于会计人员操作,易于计算机处理。凭证设计的另一个要求是尽可能减少工作人员的书写、输入量,减少人工处理业务方面的时间??在会计实务中,工作人员往往要花大部分时间填写凭证、处理会计资料,效率低、差错多,而电算化管理则要求最大限度地减少人为处理资料的时间,让计算机更多地代替人的劳动,以充分发挥电脑高速、高效的优势。 同样道理,账簿设置、会计报表编制,也要符合标准化的要求,既要兼顾各方面需要,又要方便计算机处理。 4.会计处理方法制度化 会计电算化系统繁复而涉及面广,不宜经常修改,这就要求会计核算的方法、程序实行制度化。例如,固定资产的折旧方法有平均年限法、工作量法、双倍余额递减法、年数总和法等几种,企业可按实际情况加以选择,但一经确定就不要随意更改,要形成制度化执行。如果会计处理方法更改频繁,一则不符合会计制度要求,二则影响电脑系统正常运作,容易发生差错。如果不慎修改出错,就会导致系统损坏,影响正常会计工作。几年前,英国某信用卡公司就因修改计算机程序出错,致使支付混乱。日常生活中,类似情况是屡有报道。因此,如无法规、制度的变更,一般不要随意更改会计核算方法,以保持会计业务环境相对稳定,保证电算化系统正常运作。 5.培养复合型人才,提高财务人员的整体素质 综观目前的企业,既懂会计又懂计算机,并有一定英文英础的复合型人才实在太少,这是推行会计电算化的一大障碍。会计人员如果只懂会计,没有电脑知识,就不可能提出很好的会计管理构想去实现电子化;只有既熟悉会计,又具备一定电脑知识的会计专才,才能设计出优良的财务管理方案,让程序设计者去开发适用软件,使电算化发挥最大效能。再者,财务人员如具备一定电脑常识就能最大限度地避免操作错误,降低差错风险,从而保证会计数据安全。为此,企业要做好复合型人才的培训工作,让现职会计人员掌握电脑知识,为实现电算化提供重要条件。 实践证明,企业要顺利实行电算化管理,必须切实做好以上各项基础工作,争取上级领导的大力支持,为落实基础工作提供保证。 二、财务管理系统对软件设计的要求 1.高起点、高规格开发高质量的软件 财务系统对企业很重要,准确程度要求高,不允许有半点差错,因而必须从高起点出发,聘请高水平、合资格、有财务软件开发经验的公司和工程人员负责开发,不能聘请不够资质、不合资格、无实践经验的人员开发。否则,会影响系统的质量、进度,甚至会半途而废。例如,广州某企业,因经费不足聘请了一家技术力量较弱的公司负责开发会计系统,由于设计人员水平较低,加之无实践经验、缺乏财务常识,开发出的系统漏洞百出,最终无法使用,给企业造成了损失;同时,严重影响了该单位的电子化进程。因此,财务系统开发,用户必须聘请技术力量雄厚、具备财务软件设计经验的单位和设计人员负责。 2.做好系统分析工作 软件设计首先要从系统分析着手,目的在于了解财务工作流程,广泛收集必要数据,对相关的各种因素进行详细分析,这是软件设计的基础工作,很重要。对问题的分析是否深入细致、完整透彻,体现了设计人员对将要进行的工作的了解程度,也体现着基础工作准备是否充分,这关系到未来系统的成败,因而要充分重视系统分析工作。系统分析的具体步骤: (1)成立专家小组,具体包括:委托方、软件设计人员、会计师、系统使用者、信息安全工程师等组成,为全面开展工作做好准备。 (2)落实任务,明确基本事项,确定具体要完成哪些工作。 (3)提出具体要求,包括:明确给出系统的规模;系统应能完成哪些工作;系统工作的步骤和方法:新系统应达到何种质量水平,以及具体的质量控制指标、计划进度等。 (4)收集、整理数据资料,包括:会计业务分工、业务量、业务处理方法、各类报表、输出结果的时间、数据储存要求等。 (5)认真编好会计业务流程图。会计业务流程图就是把会计业务的整个过程用图示和文字说明表述出来。这一过程很重要,是系统设计的基础、依据,财务系统就是根据会计业务流程图设计出来的,是会计业务流程的“数字化”。业务流程图质量的好坏直接决定着系统设计的成败。因此,必须认真踏实地做好业务 流程图的编制工作。 业务流程图须由专家小组编制,其间应重点发挥有实践经验的会计师、具体业务操作者的作用,重视一线员工的意见,尽最大可能满足第一线业务的需要。设计财务系统很重要的一条就是实用、方便操作,要考虑到一线业务的具体情况。只有理论和实践相结合,方便实务操作,财务系统才受使用者欢迎。 业务流程图须同时采用文字说明、图形描述两种形式,以相互补充;有关说明、描述必须详细、周密、完善、步步到位,凡是业务触及到的细节均应详细说明、准确标出,为下一步程序设计工作提供充分依据。 有的单位在开发财务软件系统时,只侧重程序设计环节,忽视业务流程图编制的重要性,结果到了程序设计阶段,不得不中断设计,回过头来抽出大量的人力、物力去临时补上有关业务流程细节,财务系统成了典型的“边设计边施工边补漏的‘三边’工程”。这样既容易出错又拖慢了工程进度,更谈不上周密完善,还会影响系统的设计质量,给企业造成损失。 (6)编制程序流程图。程序流程图是将系统设计的具体步骤,通过图示符号表示出来,它直观地反映了程序设计的构思过程,体现了整个程序运行的思路,是程序设计的关键一步,直接决定着程序设计质量的高低。同时,绘制好程序流程图非常有利于系统的整体控制。 (7)对前期基础准备工作进行严格审核。财务系统的设计是以各项优良的前期准备工作为前提的,基础工作显得尤为重要。顾此,在开展程序编写工作之前必须全面审查有关准备工作是否充分,发现问题及时解决;严禁边准备、边设计、边补漏。 3.程序设计阶段,采用模块化设计 模块化就是把一个复杂的程序分成若干个功能不同的多个部分,各个子模块均有独立功能,可以单独运行;而把各个子模块组合在一起,又能方便地搭配成一个完整的系统。模块化设计是现代程序设计中一种很重要的技巧,有着众多优点: (1)便于分工合作,提高效率,提高质量。系统设计时,可以把要做的工作分拆成多个部分,然后分配给不同的人,甚至不同的单位各自开发。这有利于提高效率,提高程序的设计质量。 (2)便于维护、维修,增强通用性、易读性。 (3)增强模块的独立性,降低相互之间的依赖程度。即使有某些部分故障,也不致影响系统的整体运行。 (4)能设计出可绕过障碍区运行的高质量软件??这是模块化设计的最大优点。由于模块之间相对独立,所以即使出现某些非关键性故障,系统依然能安全运行。这一点很重要,因为系统在使用中出现小故障是较常见的现象,如果财务系统具备了这种优点,就能做到不停机维修,不致影响日常业务,这对财务管理特别有意义。反过来,如果系统一有小毛病就会影响日常业务,甚至突然“死机”,就会严重打乱企业的管理秩序,还可能会造成数据丢失,给企业造成损失。所以,能做到小毛病不停机维修,大故障能尽快恢复是财务管理对其软件设计的特殊要求。 4.软件设计要有扩展性,以适应企业未来发展 会计电脑系统设计要预计到企业各类业务的发展,要预留足够的扩展空间,以适应业务高层次、多元化发展。某些企业的电算化系统因没有扩展性,致使业务稍有变动,系统就无法适应,延误了日常工作。例如,一些企业的会计系统能处理人民币、港币、美元业务,但对日元、英镑、欧元或其他外币业务就难以适应。随着我国即将加入WTO,企业外币业务必然日益增多,缺乏扩展功能的会计系统将难于满足未来发展要求。因此,会计系统设计一定要有超前意识,要考虑到未来业务发展需要,设计有扩展性、多功能的软件。 要考虑到某些特殊业务的需要。深圳市曾发生过这样一件事,一对从新疆调进该市的夫妇,在为小孩办理入户手续时,因公安局的户籍管理系统只能输入四个汉字以内的姓名,而该小孩是维吾尔族,名字由近十个汉字组成,超出了公安局电脑系统的设计要求,以至无法正常入户,引起了不必要的纠纷。以此为鉴,财务电脑系统应有处理特殊业务的设计,要考虑到特殊业务的需要。 5.强调面向用户 财务系统的最终使用者是企业,是一线业务人员,所以要特别强调操作简单、方便用户,要设计良好的用户界面,具体操作应尽可能简单易学。在屏幕显示方式上,最好只显示与业务相关的资料,对可有可无的资料,如参考性、辅助性的资料则能省则省。切忌“和盘托出”??有用、暂不需用的资料均显示于屏幕,这样很容易造成操作错误,还会给人“眼花缭乱”的感觉。在目前企业计算机应用水平、管理水平不很高的情况下,“面向用户性”很值得广大设计人员的重视。 6.试运行 系统完成开发后必须反复测试,证明达到设计要求,才能交付使用;不能边检测、边使用、边补救。 7.制定应急计划 系统完成设计后,开发方应编制与系统相关的运行文件,并提出有关注意事项,以备在出现意外情况时,有条不紊地采取相应措施。使用单位也应制定自己的应急计划,以备急需。令人担忧的是,不少单位恰恰忽视了这一关键步骤,没有起码的应急计划,假如系统一旦出现故障,后果不堪设想,损失将是巨大的。 8.加强风险控制,保证信息安全 实现会计电算化,必然解决信息安全问题。由于电子数据高度集中,高度依赖电脑,且受电脑病毒入侵、人为操作失误、机器故障、非法毁损等因素影响,数据很容易被破坏,因此,会计电算化必然加强信息安全管理,一方面制定各种严格的管理制度,加强风险控制,加强管理;另一方面加强对员工的信息安全教育,严禁未经受权人员上机操作;不能连接与业务无关的终端,禁止与互连网连接;采用先进的加密技术,安装“防火墙”,严防电脑病毒入侵,防止人为非法破坏数据。实践证明,严格、有效的管理制度是信息安全的最好保障。 9.加强对财务系统使用前的审计 财务系统必须确保正确,才能投入使用,这是保证财务数据安全的关键。系统在投入使用前,应组织专家小组进行严格审计、从严检测,并实地模拟运行。只有证明正确无误的系统方可正式投入使用,只有经过“实战”检验的系统才具有可靠性。必须指出的是,财务系统不能边使用、边检测、边维修,这样风险很大,难于保证数据安全。 实行会计电算化,要求财务管理标准化、规范化,而财务软件设计则要符合财务管理的特殊要求。只有相互适应、互相配合,才能设计出安全可靠、多功能、高质量的优秀软件,更好地推进会计电子化工作。财务电算化是大势所趋,是提高企业科学管理水平、增强竞争力的迫切要求??会计师、程序设计人员在这方面有着异常重要的作用,应充分调动他们的积极性、创造性。 软件设计论文: 基于无线传感器网络的水资源监测系统的设计上位机 1.1 题目背景 水资源监测是水资源管理与保护的重要手段,我国水资源紧缺、水污染严重,如何高效、实时地获取水环境参数、研究开发水环境监测新方法,已成为水环境管理与保护的一项重要任务。无线传感器网络 WSN(Wireless Sensor Network)是将有感知能力、计算能力和通信能力的微小传感器节点采用规则或随机方式部署在监控区域,通过无线自组织和多跳的方式构成的分布式网络。它集传感器技术、嵌入式技术、现代网络技术、无线通信技术和分布式信息处理技术于一体,以数据处理为中心,协作地感知、采集、处理和传输目标区域的监测信息并报告给用户。它具有可快速部署、无人值守、功耗低和成本低等优点。 1.2 国内外相关研究情况 在世界上我国属于水资源贫乏国家, 对水资源的优化使用对我国实施可持续发展战略具有十分重要的意义。强化对水资源环境的监控是一个长期的任务。常规水资源环境监测方法主要分为以下两种:(1)利用便携式水质监测仪人工采样、实验室分析的方式。该方式仅限于对河流、湖泊的几个断面采样,采样频率从每月数次到每日数次。(2)采用由一个中央控制室和若干个监测子站组成的水环境自动监测系统对水环境参数进行自动连续监测, 数据远程自动传输, 可以实时查询所设站点的水环境参数[1]。前者由于无法对水环境参数进行远程实时监测, 存在水质监测周期长、劳动强度大、数据采集速度慢等问题, 不能很好地反映水环境的连续动态变化, 不易及早发现污染源并预警。后者能很好地解决水质监测周期长、劳动强度大、数据采集和传输速度慢等问题, 但由于有铺设电缆和建立监测子站的施工要求, 因而存在对监测地点原有的生态环境影响大、系统投资成本高、监测水域范围有限的缺点, 同时无法进行大面积布设监测子站、对每个小水域实施多点远程实时监测。基于无线传感器网络的水资源实时监测系统, 比较典型的国外代表有美国Heliosware公司的EMNET系统和澳大利亚CSIRO 的Fleck系统[2、3]。上述两种系统可采集参数种类较少、不提供对水资源的视频监测功能且通信速率低、产品体积较大、功耗较高, 目前仅适合用作研究, 尚不能作为实用系统在现场使用。国内已对基于无线传感器网络的水资源实时监测系统的一些关键技术进行了研究[4]。与传统的监测法相比, 无线传感器网络具有对生态环境影响小、系统成本低等优点。 近些年来,无线传感器网络是国际上非常关注的、涉及到多个学科高度交叉、知识高度集中的热点研究领域。目前,无线传感器网络的研究经过了两个阶段。第一阶段主要是采用MEMS技术设计微型节点,代表性的研究成果是智能埃及SmartDus无线集成网络传感器WINS。第二阶段是研究网络问题。国外设计了很多套演示系统取得了一系列重大的理论研究成果。在国外,Intel公司于2002年了基于无线传感器网络的新型计算机发展战略,主要研究无线传感器网络在医学、森林防火、环境监测等方面的应用。在国内,很多科研机构和大学队无线传感器网络都进行了相关方面的研究。有业内专家指出,中国掌握了物联网(WSN的实际应用)的世界话语权,不仅表明我国在该领域上的技术领先,同时也在于中国式世界上少数能将WSN实现产业化的国家之一。 1.3 研究意义 水资源是生命生存不可替代的自然资源,是生命支持系统之一,也是重要的环境要素。楼兰古城的兴起是由于丰富的罗布泊湖水的滋润,富庶的楼兰11万平方米,人口达万人,是楼兰国的首邑,是我国古代一重镇,也是丝绸之路南线必经之地。后来由于种种原因导致水资源衰竭,繁华的古城衰落,直至湮没在茫茫的荒漠之下。 水资源危机究竟始于何时,目前学术界尚无公论。但是水资源危机引起了世界各国的关注与不安。我国是一个人口众多,水资源绝对数量较高而相对数量较低的缺水国家。1988年7月1日《中华人民共和国水法》正式实施后,确立了每年水法宣传周(简称为水周),其目的就是通过这一活动,向公众集中灌输有关水资源开发利用与保护方面的知识和政策法规,以增强公众节约水资源的意识。 我国的水资源价值理论受水资源是取之不尽,用之不竭的传统价值观念影响,造成了水资源长期被无偿地开发利用,不仅造成了巨大的宝贵水资源浪费和对水资源非持续开发利用,同时对人类的生存及国民经济的健康发展产生了严重的威胁。尽管近几年来对此有所认识,采取了相应的行政或法律手段扭转这种被动局面,但是,由于对水资源价值理论的研究不够深入,致使所采取的措施缺乏广泛的经济社会基础,最终结果是政府干预行为过于集中和强硬,市场行为和经济杠杆的作用又过于薄弱,导致期望与现实相差甚远。因此,水资源价值研究在持续利用水资源过程中具有重要的地位,是实现持续发展战略一个组成部分,开展此方面的研究是十分必要的。 2.本课题研究的主要内容和拟采用的研究方案、研究方法或措施 2.1 研究的主要内容 根据无线传感器网络的基本理论和水资源监测的实际需求,设计基于无线传感器网络的水资源实时自动监测系统,能够在线实时测量温度、PH 值、电导率、浊度等参数的水资源监测系统,此系统在监测区域内采集相关数据,利用监测区域协调器节点和远程监测中心(PC 机)之间的通信,把经过处理的测量结果动态地显示出来。本课题完成系统上位机的软件设计,由串口接收协调器节点送来的水资源监测数据,进行数据解析,提取出各个传感器采集的数据并通过界面动态的显示出来。 2.2 研究方案 关于本次研究的课题,基于无线传感网络的水资源监测系统的设计,主要可分为三个部分,由于本次课题的研究只涉及上位机部分,即图一中的虚线部分,主要设计上位机的软件界面的设计部分,其中包括有串口接收数据,解包数据,以及显示部分,其中的解包部分包括,将PH值,浊度,在线实时温度,电导率和它们各自对应的数值一一对应起来,这部分主要涉及用Visual C++语言将其用软件编程,并实现功能,其流程图为图2: 实现过程为:先初始化软件,再设置软件编辑界面,设置好界面后,开始接收由协调器经串口发送过来的数据,进而解包数据,接着处理数据,将PH值、实时测量温度、浊度以及电导率的各组数据按照一定的要求计算好,显示各组数据,最后结束程序。 在这个过程中,实现了串口接收数据,解包数据,处理数据以及最后将数据动态的显示出来,完成了本次研究的要求。 3.本课题研究的重点及难点,前期已开展工作 要完成这次课题,即基于无线传感器网络的水资源监测系统的设计上位机,需要完成的内容有:系统上位机的软件设计、接收由串口协调器节点发送过来的水资源监测数据、进行接收数据的解析、提取出各个传感器采集的数据并且通过界面动态的显示出来。其中重点以及难点有:系统上位机的软件设计,由于对上位机不是很了解,以前也没有接触过上位机,对它的功能,使用不了解,也没有接触过Visual C++语言,属于初学者,会有一定的难度,既是重点也是难点;把接收到的数据进行数据分析,要进行合理的、有效的数据分析,是一个关乎本次课题成败的重点;将提取出的数据通过界面动态的显示出来,要通过一定的平台来显示,即要通过一定的硬件设施显示,这就需要能够正确的,有效的连接到所用的平台,是研究的最后一道门槛,也是重点。 目前为止,已经开展的工作有,通过查询相关资料以及通过互联网了解到上位机的功能,以及它所需要的编辑工具-----Visual C++,对我来说这是一种新的语言,现在已经开始看有关C++方面的书,开始学习使用它一些简单的使用方法。 4.完成本课题的工作方案及进度计划(按周次填写) 第1-3周:查找借阅相关书籍资料,确定系统的总体方案,完成开题报告; 第4-9周:进行上位机软件编程学习,软件界面设计 第10-11周:进行软件设计、进行数据解析; 第12-15周:系统调试,验证系统功能; 第16-17周:完成毕业论文,准备答辩 软件设计论文:计算机教学系统软件设计 摘 要 计算机在教学中的作用逐步显现。计算机技术和网络技术,可以打造教学交流平台,构造校园内的网络。让教学方法更为丰富,教育教学实时存在,更可以让教师和学生的信息沟通得到全面的进步。本文介绍了使用学校网络,打造网络平台计算机进行教学的系统设计和完善过程。 【关键词】校园网络 软件设计 教学系统 模块化 1 研究背景介绍 学校网络教学系统的设计目的是出于实际应用意义。首先从技术角度,计算 机开发技术已经趋于成熟,使用计算机高级编程语言具备完成系统制作的条件。在计划进行设计的初期,查阅了相关的文献与资料,计算机实现的教学平台系统已经有成型的作品。而且许多高等院校的应用都显示,利用网络教学系统,实现教学,是一种行之有效的与时俱进的现代化教学模式。通过这样的平台,学生可以提出问题,得到教师的解答。可以在线实现选修课程的选定,可以查阅自己的学分和单科成绩等等。意义众多,所以设计并完成基于网络模式下的教学系统工作是有实际意义的。 当前校园网络教学系统的情况:很多高校率先完成了网络平台教学系统的应用,好处前面已经简单介绍,这里不再赘述。但是仍然存在着很大的不足。比如教师在教学过程中的经验如何能通过教学系统展现出来,这是一大难题。学生在网络教学系统下的心态不同,在具体的教学中反映出的状态无法让教师观察到。如何通过网络的形式调动并发挥出学生学习的主观能动性。这些都限制了网络教学系统的发展。 2 软件设计工具选择与硬件需求: 软件设计采用服务器客户端模式和浏览器服务器模式交互。网页脚本设计在 和php中进行选择。二者各有利弊。综合设计者的使用习惯选用了数据库技术使用成熟的sql sever。高级语言选用java,这些技术成熟且具有一定的先进性、流行性。硬件需求本身并不很高,主流计算机皆可。但是在设计中,为了加大网络承载能力,选用了硬盘组为服务器,在压力测试中发现可承受同时间片200人登录工作。在并行计算中,主要利用了java的特性,并没有进行额外的并行算法设计。 3 部分模块、子系统功能介绍 这里只简单介绍部分子系统模块的工作功能。 首先信息管理子系统 信息管理子系统是辅助平台的唯一入口,里面包括各 种资料和师生的个人信息。它能根据用户的需求检索各种公告信息,能帮助教师或学生和搜索课件、教案等。其次,学习管理子系统 学习管理子系统的主要功能是分专业课程的管理、教学计划和大纲的设置以及各项内容的修改和调整等。为学生的主动学习提供基础。再如课件管理子系统 课件管理子系统的主要功能是教师上传或修改课件,方便学生及时共享教师的学习资料和学习理念,另外,也有助于这些资料的学习推广。再如师生交流子系统 师生交流子系统的功能是让师生互动起来,使得教师能及时、全面的接受到学生的反馈,也使得学生通过和教师的交流,对知识有进一步的理解。又如在线考试子系统 在线考试子系统的功能是最大限度满足各学科教师和每一名学生的要求,实现无纸化的各种科目考试以及试卷批阅、成绩统计分析等工作。如作业子系统 作业子系统的功能是给教师提供了在网上布置作业和批改作业的平台。比传统的作业处理方式效率更高、应用更为灵活。 4 特点介绍 4.1 系统架构 合理采用了双交互模式。当服务器处于开放作业时候,用户可以用密码和口令登录网页,接受相关服务。 4.2 用户设置灵活 有教师角色、学生角色、管理员角色和录入员角色。不同角色实现不同的功能。比如教师可以登录试卷批阅模块,可以登录信息答疑模块,为学生的提问做出解答。录入员角色,是为了组织网络试题的录入工作而设置的,在短时间内允许登录和输入试题。这种角色设置有时间的限制。在工作完成过后,要由管理员取消权限和用户。当然还可以根据特殊需求,在管理员授权下,设置特殊角色,给予不同模块权限的设置。 4.3 在安全方面进行了考虑 使用了md5以及初步加盐技术的应用。在网络应答和网络模考模块中,使用了蚂群算法的遗传算法应用。出题难度和题量整体较为平均,趋于合理状态。 4.4 系统在检测和实际使用中 具有较好的稳定性,在编写过程中,语言和数据库选用合理,为软件后期维护和功能 拓展,提供了空间。 5 结束语 综上所述,在校园网络中使用计算机技术完成教学系统的设计,具有实际应用意义。可以为各个中高等院校服务。系统设计合理,工具选用皆为当前主流语言与工具。实现系统具有自身的特点。灵活稳定。可以让教师、学生在校园网络中更好的完成学习任务。减少了学校为教学而付出的人力与物力。设计过程中仔细研究了已有的产品和具体的需求,完成了主体功能,较好的完成了设计任务。 软件设计论文:新时期移动电子信息软件设计技术探讨 摘 要 本文重点分析了当前流行的android、jdbc、ajax、jquery等计算机新技术,探讨新时期移动电子信息软件开发的技术趋势,对计算机从业者和爱好者都具有一定的参考意义。 【关键词】计算机 新技术 移动 软件 1 引言 android这个单词的原意是“机器人”,2007年,google推出了一款基于linux技术的手机开源系统,也命名为android,这个智能手机平台由中间件、操作系统、应用软件和用户界面组成。美国著名的科技博客在2012年曾评选十款对二十一世纪影响最大的电子产品,其中就有android智能手机操作系统。随着andriod手机系统不断开发与应用,消费电子、媒体播放器、移动终端都广泛应用移动电子信息软件。据有关数据指出,我国2013年平板电脑和智能手机的占有量占全球的25%。随着全球智能终端市场的中心逐步发转移到中国,同时安卓系统也在平板市场广受消费者喜爱。随着wifi和3g网络的普及,智能手机等其他智能终端能够随时随地连接互联网,使用者轻而易举获取网络服务。在现实生活中,安卓智能系统移动电子信息软件占有很大市场。 2 新时期移动电子信息软件应用发展 首先是消费群体成熟,目前国内安卓开发应用社区非常活跃,国内运营商和厂商都积极加入安卓阵营,许多厂家推出了基于安卓系统的移动电子信息软件。android在我国具有十分广阔的前景,很多企业开始认识到app的重要应用,安卓企业客户端的设计开发越来越受重视。现在我国智能手机的软件开发正处于飞速发展时期,通过一路探索和对以往经验的总结,产生了一批致力于安卓系统app开发的优秀互联网供应商。移动电子信息软件已经包括酒店、商城、美容、旅游、医疗、汽车、地产、娱乐、传媒等服务产业,致力于提供一站式移动开发给企业客户。 一款名叫“飞常准”的航班实时查询的移动电子信息软件已经支持80%国际航班和99%的国内航班查询航班动态,提供到达、起飞、取消、延误、备降和返航等六种航班状态的结果。这款应用软件还能提前预测航班延误,及时提供延误航班的预报。 一款叫“淘宝旅行“的移动电子信息软件应用是为人们提供酒店、火车票、机票服务的。通过这款应用软件,还能够查询预定的部分景区门票。只要在客户端输入所处位置和目标城市,就能提供用户目的地周边详细的酒店价格和地址给客户,同时为客户提供导航。 一款叫“高德地图”的gps导航移动电子信息软件可以提供交通实时路况的播报,还可以预测到达目的地的时间、合理规划出行路线、提醒摄像头等服务。另外,为了减少使用流量,这款应用还可以离线下载。同时,这款手机应用软件整合天气、火车、公交等资源,方便用户出行。 一款名叫“蝉游记“的移动电子信息软件可以方便分享和制作旅行游记。下载这款软件后,可以用豆瓣、新浪微博和qq等网站账号登陆。这款手机软件支持离线全程操作,不受网络的限制。另外,当联网的时候,可以将手机游记更新到网站,和好友一起分享精彩旅程。 一款名叫“墨迹天气“的移动电子信息软件专门用于天气信息免费查询。这款手机软件采用人性化设计,使用方便,现在能够预报2000多个地区的天气。使用这款手机应用软件所需的流量很少,每次不到3k。占用的内存也很少,可以独立运行在主程序之外并且支持显示在桌面。 一款名叫“快的打车”移动电子信息软件风靡一时。这款手机应用软件可以帮助人们预约叫车和实时打车。目前,这款打车软件使用城市超过50个,有2000多万用户。使用这款手机软件打车,还有返还部分车费的优惠。 3 新时期移动电子信息软件核心技术 3.1 jdbc技术 java语言用于执行sql语言的api叫jdbc,这个应用接口可以为不同类型的数据库提供相同的访问,jdbc由java编写的接口和类组成。jdbc的出现极大地方便了数据库程序开发人员,为他们提供了一个统一的api,可以在此基础上构建更高级的接口和工具,使数据库程序开发人员方便写出数据库相关的应用程序。 jdbc的出现使sql语句的发送变得很简单。开发人员只需要调用数据库接口编写程序就可以了,它自动向相关数据库进行sql调用。另外,jdbc和java语言的结合避免开发人员为不同的开发平台重复开发相同的应用程序,实现应用程序一次编写,到处运行,这同时体现了java语言的优势。 对于java开发人员来说jdbc是api,是 实现数据库连接的接口模型。作为应用程序接口,jdbc提供统一的接口给程序开发人员,并且为第三方厂商实现数据库与中间件的连接提供统一的方法。jdbc支持sql标准和数据库其他的连接标准。jdbc真正实现了面向目标的连接,并且有严格类型、简单但高性能的接口。 3.2 jquery技术 jquery是基于javascript语言的一个优秀框架,jquery兼容css标准,是精简版的js库,能够很好地应用于各种浏览器。jquery方便用户处理html,实现动态功能,提供灵活的ajax交互给网站。另一个优势是拥有详细的使用文档,实现html内容和代码的分离,简单易用。 3.3 ajax技术 ajax是一种交互性强、创建快、性能好的web开发技术。xmlhttprequest是ajax的核心技术。ajax在服务器和浏览器之间采用异步传输数据。通过ajax,可以直接提出请求给服务器,用户堵塞少。 智能终端的程序开发比桌面程序有许多优点,它们开发简单,安装方便,用户群大。 4 结语 随着计算机科技的飞速发展和移动开发的蓬勃兴起,这些新型计算机技术已经广泛应用于智能手机、平板电脑等智能终端领域的程序开发。移动互联网对人们越来越重要,这些计算机技术的应用前景也会更广阔。 软件设计论文:Linux环境下即时通信软件设计与实现 作者简介作者简介:李伊林(1984-),男,江西省水利科学研究院助理工程师,研究方向为网络通信;傅小英(1987-),女,南昌大学信息工程学院硕士研究生,研究方向为计算机应用。1qt简介 qt是一个跨平台的c++图形用户界面库,由挪威trolltech公司于1995年底出品。qt的对象间通信采用信号/槽(signal/slot)机制,其中signal犹如mfc中的事件,而slot则是响应事件的方法。如果要实现对象间的通信,只需要把一个对象的slot和另一个对象的signal连接起来即可实现事件驱动[1]。 由于本系统是通过qt[2]图形开发工具来实现与用户之间的接口设计,所以在eclipse中如果要使用qt,则需添加qt插件方可建立qt gui工程文件。 2系统总体设计 本系统实现了linux系统下的简单通信,同时可以动态刷新在线用户列表,并与其他用户进行聊天通信或传送文件等[3]。如果用户想与其中某位好友聊天,则应该与其建立连接,此时两个客户端有一个作为服务器,另一个作为客户端。本系统的主要架构如图1所示。 系统主要分为客户端和服务器,服务器并不对用户发过来的信息进行转发操作,因为该做法会增加服务器的工作量。它只负责监听客户端的连接请求,同时,在与客户端建立新连接时,服务端会对客户端的端口号进行注册,之后将端口信息提供给每个连接上的客户端[4]。因而两个客户端之间的通信则不需要以服务器作为转发站,而是可以直接进行通信,从而减少了用户之间的通信响应时间。客户端主要可以进行注册、查找密码、添加/删除好友等一些基本操作[5],与好友建立连接之后,还可与好友进行聊天,互传文件等。 图1系统架构 3关键技术实现 3.1客户端listfriend类实现 listfriend类主要用来显示当前用户的好友列表,并按好友的不同组号将其进行分类。同时,用户可以通过触发右键事件对自己的好友列表进行修改,如添加、删除、移动好友,修改好友备注,修改用户信息等。在该类中,用户还要对自己的端口号进行监听,如果有好友提出聊天请求,用户可以根据自己的意愿接受或拒绝。或者用户自己向好友提出聊天请求,如果好友拒绝,则关闭对话框。 软件设计论文:基于MATLAB GUI坐标转换软件设计与实现 【摘 要】matlab软件是以矩阵为单位进行数据的运算与处理,matlab的程序设计过程中,对象的句柄是非常重要的一个概念。每个对象都有自己独立的句柄,通过操作句柄,来实现对象的控制和修改。gps测量的成果是基于wgs84椭球的纬、经度坐标和大地高,而我们实际应用中需要用到的是北京54或西安80的高斯投影平面坐标或者是地方坐标,因此就存在一个坐标转换的问题。本文介绍两种坐标转换方法:空间三维七参数坐标转换方法和平面二维四参数转换方法,利用这两种方法通过matlab设计界面并编写程序实现对excel中的坐标数据进行坐标转换。 【关键词】matlab;全球定位系统;七参数;四参数 0 引言 matlab软件是“矩阵实验室”——matrix laboratory的缩写,是用c语言进行编写的。它具有语言书写简单,语句功能强大,封装了丰富的数学函数,我们可以直接调用这些数学函数。matlab对于数学运算,特别是矩阵运算,非常高效,而文件批量坐标转换又涉及复杂的数据计算,这就是为什么利用其进行程序编写实现的原因。 excel是微软公司的办公软件microsoft office的组件之一,它可以进行各种数据的处理、统计分析和辅助决策操作。将原始数据存放在excel中,excel可以批量对原始数据进行预处理,达到我们想要的数据格式,可以将文本导入到excel中,读取与存储都易于操作。 随着全球导航定位系统的发展,尤其是美国的gps技术发展,其具有全天候,连续性,实时性等优势,已经逐渐取代了传统的测量方式。gps测量成果是基于wgs84椭球的大地坐标,即:大地纬度b,大地精度l,大地高h。而我们通常所需要的是基于克拉索夫斯基椭球的北京54坐标系或基于第16届iguu大会推荐的1975年国际椭球的西安80坐标系。因此我们需要将gps所测的wgs84大地坐标转换成我们所需的北京54或西安80坐标。 本文主要介绍两种坐标转换方法:七参数空间坐标转换方法和四参数平面坐标转换方法,通过matlab设计界面并编写程序实现这两种方法,然后通过转换得到的坐标比较分析这两种的精度及适用范围。 1 matlab简介 1.1 matlab系统概述 matlab是美国mathworks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括matlab和simulink两大部分。 matlab是英文“矩阵实验室”——matrix laboratory的缩写,其全部采用c语言编写。具有如下特点: (1)基本数据单位是矩阵,矩阵运算如同其他高级语言中的变量操作一样方便,矩阵无需定义即可采用; (2)高效的数值计算及符号计算功能,能使 用户从繁杂的数学运算分析中解脱出来; (3)具有完备的图形处理功能,实现计算结果和编程的可视化; (4)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; (5)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。 1.2 matlab程序编写的基本原则 突破以往其它程序语言经常采用的循环思想,尽量采用matlab矩阵式语言书写程序,使得程序简洁,执行效率高。在程序设计中尽量避免重复的脚本代码,多用matlab提供的函数。系统中的函数要比用一般代码编写的函数执行效率高很多。在编写比较大的程序时,应该对各个细节以函数或子过程方式处理,避免矩阵混淆。 在程序编制过程中,各个功能部分尽量封装在函数中,这样不但可以减少全局变量个数,而且对各个函数的修改要比对整个程序的修改方便得多。 1.3 matlab的文件类型 m文件:用于存储函数过程; figure文件:用于显示、存储图像; 在matlab中,最常用的是m文件。matlab是一种解释性语言,用户发出的指令需要送到matlab系统内解释,而m文件实际上就是记录指令的文本,用以统一将命令送入系统内进行解释。 m文件有命令式(script)和函数式(function)两种形式。命令式文件就是matlab内部命令的简单叠加,matlab会按顺序执行文件中的命令,这种方式常用来形成主函数。函数式文件用以解决参数传递和函数调用的问题,每个具体的功能一般用此方式实现,它的第一句以function语句为引导。 2 坐标转换相关理论 2.1 三维空间坐标转换 wgs84与bj54的坐标转换问题,实质是wgs-84椭球体到bj54椭球体的转换问题。 如果我们是需要把wgs84的经纬度坐标转换成bj54的高斯投影坐标,那就还会涉及到投影变换问题。而如果我们所需的坐标是地方坐标,那么我们还要利用四参数法将北京54坐标转换成北京地方坐标。因此,这个转换过程,一般的gps数据处理软件都是采用下述步骤进行的: 1)wgs84(b,l)——wgs84(x,y,z),空间大地坐标到空间直角坐标的转换。 2)wgs84(x,y,z)——北京54(x,y,z),坐标基准的转换,即datum转换。通常有三种转换方法:七参数、简化三参数、molodensky。 3)北京54(x,y,z)——北京54(b,l),空间直角坐标到空间大地坐标的转换。 4)北京54(b,l)——北京54(x,y), 高斯投影正算。 5)北京54(x,y)——地方坐标(x,y),四参数转换。 通过下面的流程图,我们可以更清晰地了解整个流程。 图1 wgs84、北京54、北京地方坐标转换流程图 2.2 二维平面坐标转换 二维坐标转换适用于小范围内gps坐标向地方坐标的转换,在实际测量时,必须将gps接收机测得的大地经纬度坐标b、l(基于wgs一84椭球)转换成本地平面直角坐标x、y(基于本地椭球) 。其转换过程为: (1)将公共点的wgs84坐标投影到其对应椭球的高斯平面上,得到wgs84的平面坐标; (2)利用两个以上的点,采用最小二乘方法求解四参数; (3)先将需要进行坐标转换的wgs84坐标投影到其对应椭球的高斯平面上,得到wgs84的平面坐标,然后根据第二步求得的四参数,将其转换为本地平面直角坐标。 为了使上面的过程更为清晰,现以wgs84的大地坐标与转换到北京54坐标所作的流程图为例进行说明: 图2 二维平面坐标转换流程图 3 matlab gui界面设计及程序实现 通过参考南方测绘gps数据处理中的坐标转换软件和coord mg坐标转换软件界面,经过综合分析比较,我设计出了这款基于matlab gui实用、简洁、界面友好的zbjh2013坐标转换软件,zbjh2013主要用七参数和四参数两种转换方法进行三维空间和二维平面坐标转换。 3.1 matlab gui相关内容介绍 matlab具有创建图形用户界面(gui)的功能。gui是用户与计算机或计算机程序的接触点或交互渠道,是包含诸如窗口、图标、菜单和文本等图形对象的可操作界面。通过定制用户与matlab交互的命令窗口,gui能有效组织数据流程,使处理方法易于使用和推广,同时也使人机交互更加友好。 在这次坐标转换 软件设计与实现过程中主要用到了以下几种控件: (1)面板(panel):panel是gui对象的容器,当移动panel的位置进行gui编辑时,panel的子对象也随之移动,并保持它们在panel中的相对位置。 (2)弹起式菜单(pop-up menu):pop-up menu与listbox类似,都使用string属性显示一组选项,区别为:①pop-up menu更节省界面空间,需要左键单击才能调出这些选项;②pop-up menu不能同时选择多个选项。 (3)单选按钮(radio button):radio button通常组合使用,用于显示一组互斥的状态。 (4)复选框(check box):check box与radio button类似,用于显示一对互斥的状态,通过鼠标左键单击,可在“选中”与“未选中”两种状态之间切换。(5)静态文本(static text):static text通常用于显示其它对象的数值、状态。 (6)可编辑文本(edit text):edit text允许用户修改文本内容,用于数据的输入与显示。若max-min 1,允许edit text显示多行文本;否则,只允许单行输入。 (7)列表框(listbox):listbox用于显示一组选项,通过鼠标单击左键,可选中任意一个或多个选项,当max-min 1时,允许同时选中多个选项;否则,只允许一次选择一项。 (8)触控按钮(push button):通过点击push button可以调用回调函数,实现某项功能。 (9)表格(table):table为二维的可视化表格,可用于显示控制点坐标,通过编写程序来实现点击按钮添加和删除数据。 (10)选项卡控件(tabstrip control),通过tabstrip control可以进行局部区域界面之间进行切换。 3.2 matlab程序实现相关代码 框架搭建好之后,在matlab gui对应的m文件进行程序编写过程中,解决以下几个难点: (1)不同gui间参数传递、回调函数调用问题; 主界面的代码 [scs1,scs2,scs3,scs4] = conversionmethod; handles.dx = scs1; handles.dy = scs2; handles.xzj = scs3; handles.cdyz = scs4; 子界面的代码 varargout{1} = handles.scs1; varargout{2} = handles.scs2; varargout{3} = handles.scs3; varargout{4} = handles.scs4; delete(handles.conmet_scs); (2)将子界面的所有控件复制到主界面上,通过tabstrip实现选项卡功能; 将子界面的所有控件复制到主界面上的代码 hsub = sub('visible','off'); hpal2 = copyobj(findobj(hsub,'tag','filetransfer_uipanel'),hobject); set(hpal2,'position',get(handles.point_uipanel,'position'),... 'visible','off'); handles.hpal2 = hpal2; delete(hsub); 通过点击选项卡实现点坐标与文件坐标转换的切换的代码 tabstripval = hobject.selecteditem.index; switch tabstripval case 1 set(handles.point_uipanel,'visible','on'); set(handles.hpal2,'visible','off'); case 2 set(handles.point_uipanel,'visible','off'); set(handles.hpal2,'visible','on'); end (3)对table空间的操作,通过点击相应按钮逐行添加和删除数据。 逐行添加数据的代码 global coord; b = str2double(get(handles.edit1,'string')); l = str2double(get(handles.edit2,'string')); x = str2double(get(handles.edit3,'string')); y = str2double(get(handles.edit4,'string')); raw = {b,l,x,y }; coord = [coord;b l x y]; set(handles.calculateqcs_uitable1,'data',coord); 逐行删除数据的代码 data = get(handles.calculateqcs_uitable1,'data'); [row,column] = size(data); for k = row:-1:1 data(row,:) = []; set(handles.calculateqcs_uitable1,'data',data); end (1)选择源椭球类型,待转转换坐标类型; (2)选择目标椭球类型,目标坐标类型; (3)通过点击菜单“设置”“投影设置”,通过投影设置界面,设置投影方式、中央子午线,投影尺度及x常数和y常数; (4)通过点击菜单“设置”“四参数”或“七参数”,选择一种坐标转换方式,通过四参数或七参数设置界面,输入四参数或七参数,如果四参数或七参数未知,则通过点击四参数或七参数设置界面中的计算四参数或七参数进行四参数或七参数的求解,四参数需要至少两个控制点坐标,而七参数需要至少三个已知控制点坐标,配置好参数坐标转换方式之后,选中转换设置中的投影设置和四参数或七参数复选框; (5)通过选项卡进行单点坐标或以文件的形式批量坐标转换。 4 结论 将matlab gui与坐标转换相关知识结合起来,matlab具有矩阵运算的特长避免了程序中出现大量循环体。gui界面设计简洁、直观、友好。既能够实现单个点的坐标转换,有可以excel文件的形式实现批量坐标转换。不管是三维空间或二维平面坐标,转换得到的成果完全能够满足工作的精度要求,到达最初的设计目标。 通过大地测量学课本与坐标转换相关的知识及网上下载的一些论文的阅读学习,对坐标转换的理论认知更加深入,受益匪浅。
软件测试论文:嵌入式计算机软件测试关键技术初探 摘要:嵌入式计算机是计算机行业中一种比较先进的计算机技术。随着科学技术的不断发展,嵌入式计算机的使用范围也越来越广,在嵌入式计算机使用的过程中,能够有效地保证对需要的功能的实现。但是,由于嵌入式计算机软件的结构相对于其他类型的计算机来说比较复杂,这就要求我们要能够按照使用需要,及时对嵌入式计算机软件技术进行测试。文章根据现阶段嵌入式计算机与嵌入式计算机软件的概念,针对开发使用的技术进行分析,找出如何使用相关的技术对嵌入式计算机的软件进行测试。 关键词:嵌入式;计算机软件;测试;关键技术 前言 随着我国的工业不断地进步,科学技术的不断发展,嵌入式计算机技术也得到了很大程度的提升。我们身边普通的计算机并不是嵌入式计算机,嵌入式计算机指的是专门针对某一个项目或者是某一个行业进行开发的专业计算机。嵌入式计算机不仅仅能够实现对需求开发的功能,有效地提升工作的效率。嵌入式软件是嵌入式计算机中安装的软件,一般情况下,嵌入式软件都需要根据不同的工作需要,完成相应的功能,这就要求嵌入式软件要具备一定的稳定性,对嵌入式计算机软件进行测试,能够很好地保证嵌入式软件的正常工作。 1什么是嵌入式计算机 嵌入式计算机指的是针对某一种技术,或者是某一种网络、某一种功能等专门开发的计算机系统,利用计算机技术,加入嵌入式系统,能够实现对计算机硬件和软件功能的增多,能够更加适合实际运用的需要。嵌入式计算机针对某一种功能的需要进行开发,对开发的成本、功能的可靠性以及计算机的大小等因素,都有十分严格的要求。通过对计算机处理器、硬件、系统、应用等进行嵌入式技术的操作,能够更加有效地保证计算机技术的实现。嵌入式计算机大多被应用在工业生产中,能够提升工作效率,保证工作的质量[1]。 2什么是嵌入式计算机软件 嵌入式计算机软件指的是在嵌入式计算机中使用的软件,能够进行独立功能的操作,嵌入式计算机软件包括嵌入式微处理器、传感器、控制器、定时器、储存器等等。在嵌入式计算机中使用的电子芯片或是电子器件,将嵌入式计算机软件安装到嵌入式计算机中,能够有效地实现常规计算机不具备的功能,比如:实时监控功能、对设备的管理功能、数据处理功能、进行移动计算等等,真正地实现了现代化自动化的电子处理,是实现现阶段自动化与智能化的社会生产力的重要途径,嵌入式计算机软件就是自动化的核心部分[2]。我们可以将嵌入式计算机软件分为:简单嵌入式系统和复杂嵌入式系统两种。简单的嵌入式系统只能够完成一项功能,比较典型的简单嵌入式系统就是单片机。单片机通过ROM技术就能够实现对系统的使用,能够达到对程序控制的目的。复杂嵌入式系统的功能与普通的计算机系统功能并没有什么过大的区别,只不过在复杂的嵌入式系统中,安装了一些微型的嵌入式操作系统,以及嵌入式应用软件在计算机中,能够使计算机的功能得到相应的完善,这就是嵌入式计算机软件的作用[3]。 3什么是嵌入式计算机软件的测试 嵌入式计算机软件相比普通的计算机软件来说,更具有专业性,嵌入式计算机软件只能够在某一个制定的平台或者系统中运行。但是嵌入式计算机软件的开发环境与运行的环境还存在很大的差异,不能够使用同一网络环境。嵌入式计算机软件需要使用交叉开发的形式,在进行开发的计算机中,安装并运行开发工具,开始对软件进行编译,再将编译完成的软件通过下载的方式,将软件发送到目标计算机中,当开发计算机与目标计算机都有了嵌入式软件,就能够建立通讯连接,并且能够对软件下达命令、下载数据等等。两台计算机的操作系统不同,计算机的处理器也有着一定的差异,这样的方式会增加嵌入式软件开发过程的步骤,增加了开发步骤的复杂性[4]。我们将对嵌入式软件进行开发的计算机称为宿主机,对软件进行接收并运行的称为目标机。宿主机对使用开发工具,利用宿主机的操作系统对计算机软件进行开发,通过通信连接将计算机软件发送到目标集中,尽管这一系列的操作看似很简单,但是却需要强大的系统和硬件的支持。在这种形式下进行运行的嵌入式计算机软件开发的活动,一般情况下,宿主机都是我们平时工作生活中使用的通用计算机,也可以是开发微机或者是软件工作站等等。目标机与宿主机不同,目标机能够承载宿主机开发的嵌入式计算机软件的运行,将嵌入式计算机软件安装在目标机中,就能够实现嵌入式软件的功能[5]。 4对嵌入式软件测试关键技术进行研究 4.1对宿主机进行测试的技术研究 宿主机指的是对嵌入式软件进行开发的计算机,对宿主机进行测试的方式有两种,即静态测试与动态测试两种,这两种方式使用的是代码逻辑的方式对宿主机进行测试。4.1.1静态测试技术很多计算机软件开发的专家,在对计算机软件进行检测的时候,通常使用的都是人工检查的方式,由设计人员组成一个小组,小组的成员之间互相交流对软件开发使用了哪些程序、使用的是什么算法进行的计算,并交代设计数据与软件的模块之间有什么样的关系等。这样的方式虽然能够在一定程度上找出软件中是否存在相关的问题。但是,由于现阶段嵌入式计算机软件的结构越来越复杂,设计的步骤越来越繁琐,软件设计的规模也在逐渐扩大,这就要求在一款软件的设计过程中,可能会有很多的软件设计师、工程师等一起参与到软件的开发工作当中,每个工作人员的分工也大有不同,再使用从前的方式对软件进行检查,就会加重检查工作的负担[6]。这就要求我们,要根据现阶段的计算机软件开发的实际情况,找出最合适现阶段软件开发的检测技术,对原始的计算机软件的检测工作进行优化升级,能够使计算机软件的检查工作更加简便。在检查的过程中,加入适当的检测技术,先对整个嵌入式计算机软件的开发软件系统框图进行整理,并且对其设置自动连接的相关量,软件的源代码编程能够通过自动化技术进行查找。这样的方式能够使软件审查工作的工作效率有很大的提升,能够使验证工作的结果更加准确有效。我们可以通过静态测试的方式,得到软件中相关信息[7]。(1)软件的源代码程序绘制过程的逻辑图,以及对软件进行控制的工作流程。(2)软件系统完整的逻辑框图,系统内部关系调节的网络图。(3)软件程序运行的路径分析图。(4)软件生成的不同部分的显示图。(5)软件不同部分显示图的位置信息,操作的频率等信息。这些信息都能够在静态测试中得到实现,首先要使用静态测试的系统对软件的操作逻辑和控制系统进行分析,能够有效地将软件分析的更加精确,在进行软件测试的过程中,能够使测试的结果更加准确,并且能够将测试结果更加精准的表现出来,检测出软件系统中是否存在相关的问题,并以此对软件的系统进行改善。4.1.2动态测试技术对宿主机的动态测试主要指的是对软件的代码进行测试,能够有效地检测出代码的执行能力,并且分析软件代码的覆盖率,能够有效地检测出软件的功能。能够有效地了解到软件的性能,还能够通过分析更加了解软件中代码的执行情况,这样的检测方式能够促进对软件系统的改进,推进了软件系统的发展,可以根据检测的结果,对软件的功能进行优化和完善[8]。动态测试技术还能够对软件设置的完成程度进行测试,能够对其中已经开发完毕的数据进行检测,检查其中是否存在缺少的数据,这样的方式能够为软件的开发工作提供重要的依据。动态测试技术能够将软件中的每个函数的情况,以及对内存的分配情况等进行检测,能够将软件中各种元素的分配情况进行显示,并且能够同时对相对应的数据、代码、函数等进行显示。 4.2对仿真机进行测试的技术研究 仿真机作为宿主机与目标机之间重要的环节之一,通过仿真机的使用,能够有效地完善计算机软件测试的功能以及软件自身的性能,比对宿主机的测试更加直观、更加真实,并且能够对软件中主要的技术进行仿真测试,使测试的结果更具有说服力。其测试的结果既能够作用于宿主机,还能够作用于目标机。4.2.1仿真机测试数据获取技术现阶段,针对仿真机的数据监测,一直都是技术上很难实现的问题之一,很多对嵌入式软件的检测都需要在测试的过程中先提供软件设计的源代码,这样的方式需要使用的数据量比较大,这就要求我们要针对这类数据的准确性进行技术的提升,才能够保证检测数据的精准性。仿真机监测技术能够从一定程度上保证数据信息的完整性,在对数据进行完全的缓存后,再使用测试工具进行修改,能够从很大程度上保证数据的正常输入,在测试结束之后,还能够对已经进行缓存的数据进行读取,并将数据整理保存到计算机中。但是,需要注意的是,使用这种方式进行测试,还要保证数据缓存的大小不会超过测试的容量,测试才能够顺利的运行[9]。4.2.2仿真机仿真测试技术对嵌入式计算机软件进行仿真测试,能够在测试的过程中,对数据进行集中地管理和处理。仿真测试需要一定的技术支持,能够将数据进行仿真模拟,在模拟的过程中,能够看到技术的使用过程,再按照每款软件不同的性质,分类仿真,使测试的结果更加真实可靠。还要保证在对数据的检测过程中,传输信号是能够稳定运行的,才能够保证仿真测试的数据是实时的。 4.3对目标机进行测试的技术 目标机相对于其他部分来说,在测试的过程中,更需要注意目标机的综合能力,还要能够测试软件自身的交互能力,并且测试软件是否安全可靠,目标机测试的结果能够更加真实地体现计算机软件的性能[10]。4.3.1故障注入技术嵌入式计算机软件在计算机中运行的状态,可以通过人为的方式进行设置。但是,这就要求目标机的部件能够具备一定的功能,能够按照设置的时间、设置的运行方式等进行运作。故障注入技术指的是在目标机中,通过对某一部分的测试,能够更加有效地检验目标机中的性能,比如:鲁棒性测试、边界测试等等。使软件在运行时的状态能够表现的更加明显。4.3.2内存分析技术嵌入式计算机的系统,一般情况下内存都会比较小。使用内存分析技术,能够有效地保证在分析的过程中,找出计算机内存存在的问题。在问题的分析过程中,能够防止内存中的某些内存会产生分配错误的问题,很多的计算机软件故障都是因为内存分配的错误造成的。这就要求我们要通过内存分析的技术,来对内存进行判定。一般情况下,我们都会选择硬件的方式进行分析,但是硬件分析的方式需要耗费的资金比较多,而且分析工具具有一定的环境限制,但是软件分析会对计算机的代码产生一定的影响,并且会影响内存的运行。这就要求我们在进行内存分析的过程中,要能够按照不同的情况对测试的方式进行选择[11]。4.3.3程序性能分析技术在嵌入式计算机运行的过程中,还有一个十分重要的因素就是程序的性能。一般情况下,嵌入式计算机对程序的性能都有一定的要求,能够在已经设置的时间内,对某一数据进行中断处理或者是生成处理,这就要求我们要在测试的过程中,要能够根据实际情况决定先对那一部分的代码进行优化,因为嵌入式计算机的优化程序的时间是很宝贵的,要尽可能地避免对一些没有必要的程序的优化工作。使用程序性能分析技术,能够将计算机内的数据进行整理,并按照消耗的时间,消耗的类型,消耗的历时等进行分析。按照这些数据,能够对计算机中的数据进行判断,决定先对哪一部分的程序进行优化,才能够保证对数据检测的工作效率,保证对程序的优化是有效的。使用程序性能分析的工具,不仅仅能够显示计算机中每一部分的优化需要多少时间,还能够按照需要优化的程度进行排序,引导工作人员对系统程序进行优化分析[12]。在对程序进行测试的过程中,可以先对计算机软件中的代码进行分析,能够找出已经被使用的代码,以及计算机接口的工作效率等等。可以在测试的过程中使用插桩的方式进行测试,分析完毕后在可执行的代码当中适当地融入嵌入式软件,并将二者进行综合测试,得到的结果就能够明确地看出,其中的代码哪些已经执行,哪些被遗漏,或者是哪些数据的信息覆盖还不够全面。需要注意的是,使用这类分析工具进行分析,很可能会影响到计算机软件代码的运行,导致软件运行出现故障问题。 5结束语 嵌入式计算机与我们的生活之间的关系十分紧密,能够产生巨大的影响,我们身边很多部分都使用了嵌入式计算机进行功能的完成和实现,比如:飞机的飞行控制器,或者是我们家中很多的家用电器,冰箱、洗衣机等等,都在一定程度上使用了嵌入式软件技术。随着科学技术的进步越来越快,嵌入式技术也越来越繁琐。这就要求我们要在不断地使用中对嵌入式技术进行完善,对嵌入式技术进行优化升级,能够从一定程度上保证嵌入式技术的发展,对软件进行测试,能够大大地提升嵌入式计算机软件的稳定性。 作者:王琨 单位:西安外事学院工学院 软件测试论文:软件工程中软件测试的应用 1软件工程中的软件测试 1.1软件测试的含义 软件测试根据用户的使用目的,将成功开发的软件进行相应的纠错动作,从而披露该软件的各种问题及缺失因素,促进研发人员进行相应的改进,从而达到完善软件的目的。 1.2软件测试的关键性阶段 主要有以下两个关键性的检测阶段。第一阶段是软件开发过程中各主要单元模块完成后进行测试。这一阶段测试可以将缺陷控制在最小单元模块内,给研发人员最快的测试反馈,促使其完善单元模块的功能,达到用户的使用要求;第二阶段测试是软件系统全部完成后,进行全方位的综合测试,查找系统在使用过程中可能存在的问题。此时,需要根据系统要实现的功能进行多种测试工具的应用,以其找到系统不符合要求的功能或性能瑕疵。 1.3软件工程中软件测试的方法 对软件工程进行软件测试时,不同软件可以运用不同的测试方法。现阶段,主要以软件测试在测试过程中是否需要将程序进行完全运行来判断测试方法,不需要系统程序运行就能完成测试的方法称为静态方法;需要系统时时传送相应数据,并通过相应程序检测系统是否达到用户的期望值,是否存在运行逻辑上的问题和算法上的缺陷等的测试方法称为动态方法。目前,静态测试方法应用较广的有静态排演法、软件检查法和软件审查法。随着软件测试方法的不断创新和完善,新兴的测试方法如静态自动分析、分析模型等方法不断得到应用;动态测试方法随着精细化测试进程的深入逐渐细分为单元测试方法、集成测试方法、系统测试方法。这些测试方法相较于静态测试方法,具有范围广、测试成功率高、内容覆盖面大、应用程度高等特点。如白盒测试、代码覆盖测试等。 2软件测试在软件工程中的作用分析 2.1软件工程项目需要软件测试进行全方位的辅助管理 所谓软件工程项目就是将用户的要求进行立项管理,通过建立项目组、研究用户的使用目标来确立项目目标,对目标现状进行系统研究与分析、总体目标细分阶段性目标以及规划项目总体方案等,将软件开发过程建立在项目管理过程中。在这一过程中,各阶段性成果都需要软件测试来校验其可行性,从而辅助软件工程项目步入更完善的项目管理中。首先,软件工程项目需要精细化项目管理和集中项目管理两者协调统一。因此,需要设立软件测试机构,能够对项目细分的各阶段、各模块进行软件测试。其次,项目组人员组成和责任落实要依照规章制度实施。要体现软件测试的重要性和实际意义,测试机构负责人为项目组组长的最佳人选。其组员为各项目负责人和其他测试人员组成。软件测试结果必须立即反馈到软件研发人员、程序员及系统分析人员等相关人员手中,以期促进其团结协作,将软件各部分呈现出的问题解决。最终满足用户的使用要求,实现软件设计的目标。可见,软件测试的辅助作用,对于软件工程项目的精细化管理、软件相关技术的综合管理等至关重要。 2.2软件工程项目实施反促软件测试发展 研发一个新的软件系统时,其核心内容包括目标确定、框架设计、分支设计和编码应用等,这些核心内容均需要软件测试来实现其统一性和兼容性。系统目标是软件测试的最终目的,软件测试需要围绕系统目标进行缺陷的发现和反馈,从而实现各阶段测试的统一性和完整性,从而促进系统的协调和完善。经过软件测试的系统,必须保证达到项目目标,且在长时间运行下无重大bug。从这一过程来看,软件测试是在软件工程项目实施中得以发展的。软件测试机构并不是真正意义上的独立,其“独立”仅是功能上的独立。实际上,在进行软件工程项目实施的整个过程中,无论是整体设计还是精细化管理,都需要软件测试参与其中,以测试角度对软件工程项目的设计和实施进行指导和辅助,从而纠正一些设计上的错误和细节上的缺陷。这种参与的直接性促进软件测试必须紧跟项目研发现状,才能提出及时有效的参考意见,促进项目顺利开发。软件编码规范是软件研发团队必须规范执行的,而这种规范的编码刚是软件测试机构的首要任务,制定规范要严肃,执行规范要严格,才能给用户呈现出高质量的软件产品。 2.3软件测试原则 软件测试的原则是在其测试的基本目的和要求下产生的,因此,在进行软件测试时,必须注意其原则性。(1)坚持用户使用目的,坚持项目总体目标和阶段性目标的实现原则;(2)测试“精细化”即细分分支、单元模块、阶段性成果、系统全面测试等随时进行;(3)测试时间要越早越好,频率越高越好;(4)测试中逻辑性检测和算法检测要注重;(5)测试要结合数据检测进行;(6)保证测试的严肃性;(7)测试坚持第三方进行原则;(8)不合理条件值都要进行测试;(9)测试过程、方法、用便、结果、完善等都要记录在案,便于故障定位和日常维护。 3自动化软件测试技术分析 随着智能化技术和自动化技术的不断深入应用,在软件测试中,自动化软件测试技术得到创新和发展,并在软件开发中应用得越来越广泛。所以,人们将各种自动测试的效果进行评估,将成功案例进行相似引用,来判断检测的可行性。最初的自动化测试具有较严格的针对性,运用特定的测试原则和测试方法,将统计指标运用其中,从而得到测试结果,并对其进行全面评估,从而得出自动化测试的严密性。随着自动化测试的不断深入推进和创新,其测试准则和自动测试技术越来越成熟,逐渐过渡到自动测试模型化阶段。逐渐形成自动测试的等级制度,使得自动软件测试技术成为测试控制能力高低优劣的一个重要判断依据。 4结语 总之,软件测试已经发展成为软件工程中一个必不可少的重要组成部分,软件测试不仅能够对软件的质量进行一个系统的评价,而且是目前确保软件质量的主要途径之一。并实现软件产品整体质量与企业经济效益的整体提高,进而提升软件企业的核心竞争力。。 作者:栾新亮 单位:鄂尔多斯市特种设备检验所 软件测试论文:嵌入式软件测试环境研究 1嵌入式软件的特点 嵌入式系统的应用软件是实现嵌入式系统功能的关键,其主要特点如下: 1.1软件开发环境和运行环境不同 嵌入式系统软件的开发通常采用交叉编译方式,即软件的开发在通用计算机上进行,而软件的运行环境却是在嵌入式专用设备上。开发环境被认为是主机平台,运行环境为目标平台,相应的测试被称为主机测试和交叉测试。 1.2缺乏可视性 嵌入式软件缺乏可视性主要表现在两个方面:(1)数据的可视性方面:嵌入式系统通常没有显示设备和存储设备,只有在线实时观测或是将数据传输到主机上才能进行结果分析;(2)编程的可视性方面:由于嵌入式软件的开发环境和运行环境不同,在进行开发时,一方面不能实时观察程序的运行效果,另一方面程序在仿真环境和目标设备中的运行效果可能存在差异。 1.3实时性要求较高 多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调度是保证每项任务及时执行的关键,单纯通过提高处理器速度是无法完成和提高效率的,这种任务调度只能由优化编写的系统软件来完成,因此实时性是系统软件的基本要求。 1.4软硬件紧密结合 在嵌入式系统软硬件体系结构内部,各层次、模块之间的耦合度比通用计算机更强,这是嵌入式系统要求高效的结果,而通用计算机出于可扩展等要求更强调系统的模块化、层次化和标准化。 2嵌入式软件仿真测试环境 嵌入式软件测试不同于传统的通用软件测试,由于其嵌入性、实时性、反应性、专用性等特点,它比一般的通用软件测试更加困难。因此,根据不同测试阶段的需求,建立恰当的测试环境是避免嵌入式软件测试瓶颈、提高测试效率、保证测试质量的唯一出路。由于嵌入式系统通常采用软硬件并行开发的方式,在进行软件设计与测试时,真实目标设备常常不能及时提供,而且对于单片机、DSP这些深嵌入式系统来说,数据的显示采集、测试用例输入等都需要专门的软件来实现,因此在进行嵌入式软件测试前,必须首先建立嵌入式软件仿真测试环境。嵌入式软件是软硬件耦合系统,把软硬件分离开来,建立嵌入式软件独立的运行环境是建立嵌入式软件仿真测试环境的关键。一个完整的嵌入式系统包括处理器、I/O接口以及各种外部设备,在建立嵌入式软件仿真测试环境时,需要考虑软硬件的分离原则,即哪些采用真实硬件设备,哪些需要用软件仿真实现,哪些需要用硬件仿真实现,不同的嵌入式系统以及软件测试阶段,需要建立的仿真测试环境也不相同。 3嵌入式软件仿真测试环境分类 根据运行环境和实际环境的差异,嵌入式软件仿真测试环境可分为全数字仿真测试环境、半物理仿真测试环境和全物理仿真测试环境。 3.1全数字仿真测试环境 全数字仿真测试环境是指仿真嵌入式系统硬件及外围环境的一套软件系统。全数字仿真环境是通过CPU、控制芯片、I/O、中断、时钟等仿真器的组合在宿主机上构造嵌入式软件运行所必需的硬件环境,为嵌入式软件的运行提供一个精确的数字化硬件环境模型。 3.2半实物仿真测试环境 半实物仿真测试环境是利用仿真模型来仿真被测系统的外围系统,而被测系统采用真实的系统。测试环境模拟被测软件运行所需的真实环境的输入和输出,并且能够组织被测软件的输入来驱动被测软件运行,同时接收被测软件的输出结果。外部仿真设备:为目标机提供激励信号输入,接收并处理目标机输出数据,保证软件的连续、不间断运行,实现自动化测试;可以采用软件仿真或硬件仿真(ADS2等)。并不是所有的外设都采用仿真实现,可以随着项目的进展以及根据外设的复杂性,有选择性的加入真实外部设备。 3.3全实物仿真测试环境 在全实物仿真测试环境中,被测软件处在完全真实的运行环境中,直接将整个系统和其外围的物理设备建立真实的连接,形成闭环进行测试。全物理仿真测试环境是基于真实目标机的系统测试,是对整个嵌入式系统软硬件的综合测试,只有在系统研制的后期,所有硬件研制工作都已完成后才能进行。 4嵌入式软件仿真测试环境的构建方法 根据嵌入式软件及测试环境的特点,不同测试阶段的测试环境搭建方法如下: 4.1单元测试 单元测试是针对软件设计最小单位模块而进行的内部测试。由于目标机环境资源少、实现难度大,因此嵌入式软件的单元测试主要采用白盒测试的方法,一般在宿主机上,利用集成开发环境或测试工具(Clockwork、TestBed、Cantata++等)的全数字仿真模拟器来进行,找出单元编码时产生的错误以及与软件需求设计的偏差。在极特殊情况下,也可以在目标机上进行,利用单元测试中的驱动模块和桩模块进行。 4.2集成测试 集成测试是把经过单元测试的模块按软件的结构组合在一起作为一个软件部件或部件集来进行的综合测试。嵌入式软件的集成测试可在宿主机环境上利用Clockwork、TestBed、Cantata++等测试工具来完成,也可在目标机上搭建仿真测试环境来完成,具体依赖于软硬件耦合程度和集成级别。 4.3软硬件集成测试 软硬件集成测试主要是在软件集成测试完成后,形成独立的配置项,加载到相应的硬件平台上测试其运行情况,以确定软硬件能够正确协调工作,实现软件需求规定的功能、性能等要求。软硬件集成测试必须在目标机环境下进行,交联设备可以采用仿真模型替代。可以利用半实物仿真测试工具搭建测试环境来进行确认测试,比如:ADS-2、dSPACE等。 4.4系统测试 系统测试是将被测软件和硬件资源都综合起来构成完整的应用系统进行测试,确保整个系统达到研制任务书的要求。嵌入式软件的系统测试对测试环境有严格的要求,必须在真实目标机环境下进行,包括运行平台、交联设备都要是真实的,目的是要确保嵌入式软件能够在最终的真实硬件环境下正确运行。 5结束语 嵌入式系统在人类生活中发挥着重要的作用,软件所占的比重越来越大,也越来越复杂,保证嵌入式软件的可靠性正面临严峻的挑战。由于嵌入式系统的实时性和嵌入式特性,使得嵌入式软件的测试也面临一些特殊的问题。根据嵌入式软件设计过程中不同阶段的测试需求,建立合适的测试环境,才能提高嵌入式软件的测试效率,保证软件设计工作的顺利进行。另外,虽然日前已经有一些针对嵌入式软件的测试和调试工具,但是在有些方面仍存在不足,需要进一步对嵌入式软件的测试环境和测试技术进行研究,完善和研制更先进的测试工具。 作者:于慧媛 单位:中国人民解放军91413部队 软件测试论文:软件测试在软件开发过程中的应用研究 1软件测试对于软件开发工作的重要意义 软件测试是软件开发中不可缺失的工作内容,通过有效的软件测试步骤,能够帮助软件开发工程人员减轻工作负担,在很大程度上提升了软件的实用性能。因为电子软件的生产过程极为复杂,在开发的过程中需要经历许多环节,每个环节的数据要求都极为严格,很有可能因为极小的差异造成软件应用的失误。软件测试就是为了实现对于软件开发后的使用作出初步的评估,保证下一个生产环节能够正常执行,也为了确认软件的使用具有质量保证。软件的测试能够涉及整个软件设计、开发,以及未来升级的过程。首先,能够帮助软件开发商确认软件的使用质量。其次,还能够为工程师提供有效的信息反馈,帮助工程师进行软件系统操作的风险预警评估。还有,就是实现为未来软件系统升级奠定基础,能够保证软件在未来的开发计划中添加有效的性能价值[1]。软件测试的工作具有相当高的行业地位,能够帮助工程师和开发商尽早发现问题,并且给予充足的时间去解决问题,进而提升了大众对软件的使用效果,满足了推动科学技术进步的时代要求。 2软件测试的具体步骤和方法 2.1软件测试的对象 软件测试的对象主要是针对于软件使用过程中出现的逻辑操作,其中包含软件的使用规则,还有在软件应用中的程序设定是否满足人们的应用习惯,还要考虑到软件开发的初期设计是否能够满足社会大众的需求,能够实现广泛的普及,并且获得大众的喜爱。因为软件测试与其他方式的应用测试不同,软件的测试需要遍布整个软件的设计完成过程,要求软件能够实现具体使用的功能性。 2.2软件测试的种类 软件的测试工作也分成两种形式,一种是静态的检测试验,另外一种是动态的检测试验[2]。首先进行静态种类的具体划分解释,其中的工作内容具体实施不必要展开软件的运行功能,只要进行人力的代码查询工作审核就可以了。这期间可以对整个软件的设计脚本进行分析,得到房中数据的编码,保证在网络中展开的数据时正确有效的。与此同时能够展开对软件编程的评估,其中的数据值都在控制范围内,不能超过最低的数值要求。编写数据程序的人员在结束初始工作后还要展开对程序的审查,其中的大部分工作内容需要依靠合作完成。专业的人员通过技术手段结束数据的参考值评估,要求在人工审查的途径中实现数据的核对工作。总结的角度来评定静态测试的作用,就是通过人工和数据参考工具实现对编程的审核。另外一种就是动态的测试种类,这种方式需要进行软件的启动,在运行的过程中通过既定的数据进行测试评估。按照专业的白盒与黑盒方式进行测试实验,达到动态测评的目的。白盒的功能就是测试软件的逻辑性,能够满足人们使用的正常运作,黑盒则更倾向与想软件的使用功能,以及软件的数据管理进行测试。白盒与黑盒的测试功能满足了对于软件测试的基本要求,实现了为软件后续开发提供数据的重要任务。 2.3软件测试的方法步骤 将软件的测试方法进行归纳和综合,发现主要的测试方法来源于对于测试种类的需求。将白盒和黑盒的测试程序运用到软件的测试中去,实现人工和技术的双层数据收集,实现对于软件的数据编程、应用操作,以及未来升级的发展需求都进行监管。由白盒协助人工进行数据的整理,达成数据外接的基础使用。再由黑盒的运行操作达成对于内置程序、数据的检测和观察,保证软件进入正式使用中的功能性。软件测试的整体步骤,都由数据的支持进行操作,具体的步骤首先是进行功能性检验,然后将外因排除后执行内因运行,之后找寻可能导致程序出现问题的原因,最后结合参数的运算和总结,达成软件测试的目的[3]。 3软件测试在软件开发过程中的应用实施 软件的开发是一个十分复杂的过程,为了成功的实现软件的应用和升级,就需要工程师进行严密的设计、开发,以及研制,最后成就的科学技术产品。因为人们日益增长的科学需求,完美的软件必须还要经过不断的推敲和升级。 (1)软件测试的应用主要考察软件的实用性和需求。软件的创作和制造都是为了满足人们生活的需求,在开发的过程中要考虑产品的功能性,还要考虑开发商的开发成本是否能够支持整个软件的制作完成。 (2)软件的整体设计是否合理,需要通过软件测试得到论证。工程师进行软件的数据编写,是为了满足人们的生活需要,各项开发和功能的深入研究都是为了实现软件的实用性。软件的测试能够检测出软件开发中的问题,进行及时的补救工作实施,尽量做到不浪费开发成本的目的。 (3)要求在软件测试应用实际作用于软件的后期拓展。无论是学习软件还是工作软件,甚至于游戏软件,都必须要满足未来的发展和升级要求,实现能够无限开发和研制的目的,保证软件具有创新性。软件测试很大程度上也是为了找寻软件的功能延续性,促进软件的再开发和再创造。 (4)软件的测试需要应用到软件的最终检测和维护环节中去。每款软件开发后都应该得到检测,只有质量能够达到标准才能保证软件的出售。再者就是应用到软件出售后的软件维护,保证软件高质量运行[4]。 4结语 在信息技术不断摸索前进的过程中,软件的应用托陈出新不断进步,实现了人们生活、工作,以及学习的全面提速。为了保证软件在人们生活中的使用质量,以及适用程度,进行软件开发前期的软件测试是必须严格执行的工作步骤。 作者:丁旻昊 单位:中国特种飞行器研究所 软件测试论文:软件测试实验教学设计论文 软件测试是保证软件质量的重要手段之一。目前社会上对软件测试人才需求非常旺盛,据报道其人才缺口高达30万人[1],高校学生毕业后直接从事软件测试工作的占据了软件测试行业从业人员的48%[2],许多高校都开设了软件测试课程,如苏州大学[3],北京工业大学[4]等,以培养相应的软件测试人才。我校计算机科学与技术专业2008版教学设计中新增了软件测评课程,含理论课28学时及实验课8学时,于2011年首次在大四上学期开设。软件测试主要是一门技能型课程[5],其理论性相对较弱,且和软件工程概论课存在较多内容的重复。吸取了首次授课时重理论轻实践的教训,我们将软件测试课程的目标定位为在一定理论基础的指导下使学生熟练掌握软件测试的技能,因此2012年第二次授课时将理论课减少为24学时,实验课增加到12学时。借鉴同济大学朱少民教授[6-7]的经验,实验课着重讲述一些常用开源软件测试工具的使用,包括功能测试工具Selenium和AutoIT,单元测试工具Junit,代码覆盖工具Emma以及性能测试工具Jmeter等。Jmeter是Apache组织开发的一个用于压力测试和性能测试的纯Java桌面工具,可用于对服务器、网络或对象等模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能[8]。性能测试是保证应用程序后能够稳定可靠运行的必要手段之一。以我们为某机场开发的战略规划管理系统为例,由于前未进行全面的性能测试,客户使用一段时间后经常反映系统响应速度慢。利用Jmeter对主要模块进行了性能测试,结合测试结果对数据库进行了优化,此后客户再也没有反映过响应速度慢的问题。本着科研服务于教学的宗旨,以该系统为原型,完善了基于Jmeter的性能测试及数据库优化实验教学设计。 1Web应用程序性能测试实验 这部分实验目的是使学生熟练掌握使用Jmeter测试Web应用程序的一般流程和方法。实验任务测试绩效考核子系统中的评分模块。评分人登录系统后进入评分环节,选择其未完成的评分项目(若有多个未评分项,则需要全部对其评分)。每个评分项中包含对多个部门的评分,部门数大于等于3个时需符合正态分布,如可评出优秀3个、良好6个、合格4个、基本合格2个,否则可任意评分。按照循序渐进的原则,设计了3个步骤:一是Jmeter的基本应用,包括脚本录制、添加http请求、添加断言以及查看测试结果等;二是Jmeter的逻辑控制结构,如分支和循环等;三是Jmeter的高级应用,如参数值可变以及参数个数可变等。 1.1Jmeter的基本应用 Jmeter可以手工添加脚本,但更方便的是使用脚本录制软件Badboy[9]。Badboy录制的脚本可以保存为Jmeter格式,然后在Jmeter中直接打开和修改。脚本主要是一系列的http请求,其中可以设置请求的URL,请求方法(get/post)及请求参数等,如图1所示。通过添加断言(如是否含有特定字符串)检查请求是否返回正确结果。添加查看结果树并运行测试脚本查看程序的测试结果。 1.2Jmeter的控制结构 Jmeter具有丰富的逻辑控制结构,包括控制器,switch控制器,while控制器以及forEach控制器等。实验重点练习控制器和forEach控制器。控制器判断Jmeter变量是否满足给定条件,若满足则执行其包含的测试元素,否则不执行。ForEach控制器对Jmeter变量的每一个取值都执行一遍其包含的测试元素。图2是一个控制器,其条件为变量COUNT小于10且变量VAR等于字符串“abcd”。图2Jmeter的控制器图Jmeter的变量引用使用${变量名}的方式,变量一般提取自返回页面中的某些信息,如满足特定条件记录的行数或某个特定位置的字符串取值等。变量提取可采用正则表达式或Xpath进行匹配,讲解其匹配原则并现场演示。图3利用正则表达式提取需评选优秀的单位个数,其中引用名称youxiu就是变量名。匹配失败则取设置的缺省值0。如对于页面中返回的html代码“…您当前可以评出优秀<spanid="ltYSMsg">3</span>个…”可提取出优秀个数为3。 1.3Jmeter的高级应用 本部分着重解决实际测试过程中的一些常见问题,如参数内容可变及参数个数可变等。测试登录环节时需模拟不同的用户登录行为,即图1的http请求中txtUserName一项的值应是变化的。Jmeter提供的CSVDataSetConfig可解决这一问题,如图4所示。将所有评分人的信息存储在一个CSV文件中,把其中的列名填入VariableNames项,之后将图1中的txtUserName值改为userAccount(即CSV文件的第1列)实现参数值的动态变化。进入评分项后需根据情况选择优秀和良好等的个数,且要反映在http请求的参数中。由于参评单位的个数因评分人和评分项各异,因此无法在GUI界面中一一添加。需动态添加的参数包括评分列表中的name及其value,value的取值从优秀到基本合格依次为1234。为简单起见,我们按顺序对单位进行评分。如系统要求评出3个优秀,则测试中前3个部门打优秀,其余依次类推。由于同一部门的优秀良好等单选按钮的name值相同(如图5所示),我们选择提取该组唯一的ID号,然后将其转换为name,其对应关系是用$代替下划线(如ID号为gbBSCExamList_ctl02_rbExamerLevel,name为gbBSCExamList$ctl02$rbExamerLevel)。Jmeter的Beanshellpreprocessor可在提交http请求前动态调整参数个数及参数值。下面给出了Beanshellpreprocessor的代码。其中ExamerLevel_matchNr为Jmeter的系统变量,提供了正则表达式匹配项ExamerLevel匹配成功的个数(即参评单位的个数)。如前所述匹配数量小于3时可任意评分,为简单起见我们均将其评为优秀。N=Integer.parseInt(vars.get("ExamerLevel_match-Nr"));(N>=3){YX=Integer.parseInt(vars.get("youxiu"));LH=Integer.parseInt(vars.get("lianghao"))+YX;HG=Integer.parseInt(vars.get("hege"))+LH;BHG=Integer.parseInt(vars.get("jibenhege"))+HG;for(i=1;i<=N;i++){item=vars.get("ExamerLevel_"+i);item=item.replace("_","$");(i<=YX){sampler.addArgument(item,"1");}else(i<=LH){sampler.addArgument(item,"2");}else(i<=HG){sampler.addArgument(item,"3");}else(i<=BHG){sampler.addArgument(item,"4");}}}else{for(i=1;i<=N;i++){item=vars.get("ExamerLevel_"+i);item=item.replace("_","$");sampler.addArgument(item,"1");}}设计了含35个并发线程的线程组,模拟实际35个评分人的评分过程。全部线程在1秒钟之内启动,比实际情况更严格。得到聚合报告如图6所示,其中点击考核评分页面响应时间最长,为335毫秒。且测试过程中无错误发生,说明系统评分模块可靠。 2数据库性能优化实验 除应用程序外,数据库设计的优劣亦影响系统性能。这部分实验目的是使学生熟练掌握使用SQLServer测试数据库性能的一般流程和方法,并进行简单的数据库调优。为减少复杂性,设计一个简单的由三张表组成的人员组织结构数据库:user、or-gan及userorgan表。其中user表含4586条记录,or-gan表含1722条记录,userorgan表含6804条记录(一人可在多部门任职)。实验任务根据账号查询其姓名及所在单位信息。 2.1SQL语句执行计划对应用程序中频繁执行的SQL语句检查执行计划非常重要。初始时,三张表均未建立任何索引,下面SQL语句的执行计划如图7所示。由图7知,三张表均采用全表扫描的方式。对大表全表扫描可能涉及多次磁盘I/O,非常费时,应尽力避免此种情况。SQLServer报告由于缺少索引影响了查询性能,并给出了相关建议。selectA.vcAccount,A.vcName,C.vcNamefromtest.dbo.[user]Ainnerjointest.dbo.[useror-gan]BonA.vcAccount=B.cnvcempidinnerjointest.dbo.organConB.cnvcorgid=C.nNodeIDwhereA.vcAccount='testuser'为表格建立以下索引:indexIND_USERACCOUNTontest.dbo.[user](vcAccount)clusteredindexPK_ORGANontest.dbo.[organ](nNodeID)indexIND_USERORGANontest.dbo.[userorgan](cnvcempid,cnvcorgid)再次运行后显示执行计划如图8所示。可见所有表扫描均已替换为相应的索引查找,且SQLServ-er未报告缺少索引影响查询性能。两次执行查询的磁盘I/O和CPU时间见表1,可见为表添加正确的索引可提高查询性能。 2.2索引建立原则总结 建立索引的一般满足原则如下[10](篇幅所限,未给出实例):(1)为主键所在的列创建索引。为经常进行连接但未指定为外键的字段建立索引。(2)在频繁进行排序或分组的字段上建立索引。(3)在条件表达式中经常用到的不同值较多的字段上建立索引,在不同值较少的字段上不建立索引,如性别字段。不在查询很少引用的列上创建索引。(4)若经常同时使用多个字段排序,可在这些字段上建立复合索引。要尽量使关键查询形成索引覆盖,其前导字段一定是使用最频繁的字段。(5)查看索引并删除不使用的索引。需频繁进行数据查入操作的数据库应有较少的索引,需频繁进行读取操作的数据库应有更多的索引。(6)在聚集索引中,避免包括不必要的列,尽可能使用较小的数据类型。(7)在支持排序和范围查询的字段上考虑使用聚集索引。(8)具有高选择性的列是索引的好候选列,具有高密度的列是索引最糟糕的候选列。 3结语 软件测试是保证软件质量的关键步骤。在软件正式前一般都需要经过性能测试,以保证软件在一定负荷下的平稳可靠运行。Jmeter是一款优秀的开源性能测试工具,可测试繁重负载下的系统表现。软件性能表现还取决于数据库设计的优劣,建立适当的索引可减轻数据库查询和处理负担,进而提高系统处理能力。通过本教学设计实验学生普遍反映认识到了性能测试的重要性,了解了执行计划在数据库性能优化中的作用。 作者:张志远冯兴杰单位:中国民航大学 软件测试论文:软件测试与软件开发探究 摘要: 在IT行业,人们对于软件开发与测试关系的研究热度不减;同时软件的开发与测试,也一直是软件项目团队的中坚力量,要想保证软件开发产品的质量,就要有测试人员对于质量进行验证,所以测试人员也相当于质检人员,但是两者之间的关系还有更加深入的关系,对此本文就软件测试与软件开发关系展开分析,希望对于软件设计水平的提升,起到积极促进的作用。 关键词: 软件测试;软件开发;关系 0前言 软件开发是一个系统性的过程,包括概念阶段、计划阶段、开发阶段等,而软件开发工程与软件测试工程师分别对应着软件产品生命周期的开发与验证阶段。表面看似两者是一个上下游的关系,但是不同工程师所占的立场不同们对于软件的认识也呈现差异化,对此需要工程师共同讨论等,继而确定最佳的产品方案。 1概念分析 软件开发与软件测试是软件工程的重要阶段,前者是在客户需求的基础上进行软件系统制造的过程,也包括系统设计、编码程序等内容。而后者主要是将前者各个阶段,存在的漏洞等利用测试用例找出,是对于软件需求等的最终审核,也是对于产品的质检。 2工作内容 2.1开发人员 其工作内容主要体现在以下几点;第一、加强软件需求分析,明确软件开发方向。第二、编写软件详细设计文档,包括程序流程、函数等内容;还包括单元、集成测试等文档的编写。另外只有审核完写好的文档后,才能进行代码的编写。第三、代码编写是非常重要的,直接关系着软件程序的功能发挥;而软件开发不仅仅就是写代码,还包括很多其他的内容。第四、程序编码结束后,需要由开发工程师,对其进行系统自测,保证程序正确编写;自测合格后,以及文档编写好后,一并交给软件测试人员进行检测。 2.2测试人员 第一、通过对于软件需求说明书的审核,明确软件功能开发方向。第二、积极建立测试环境,也就是指软件运行的条件,包括软硬件设施的设置等。对于软件实际工作环境的模拟,也是测试环境构建的主要内容,继而保证软件的实际应用不会出现问题,对此可见测试环节还原现场环境的重要性。第三、将配套软件进行运行,检查其是否存在缺陷、功能是否充分的发挥,对于检查出来的问题,组织相关的工程师进行软件问题的修正工作。第四、协助并指导工作人员安装软件程序。 3关系 软件开发和软件测试主要的工作目标在于用户需求的实现,保证交付软件的质量,开发与测试并存,首先由开发人员进行软件实现,然后由测试人员找出软件中存在的程序问题,最后提交开发修复,两者之间是相互合作、相互影响的关系,继而除去软件开发中的的程序问题,保证软件的高品质。两者的工作交集,在于软件缺陷,但是软件开发工程师、软件测试工程师,工作岗位不同、对于软件的看法不同,对此难免会存在意见分歧,所以测试工程师加强与软件开发师之间的关系处理尤为重要,继而更好的形成向心力,保证软件开发的高效性和该品质性。好的软件开发,不仅仅要狠抓软件开发与软件测试两个环节,更要注重产品开发的全过程;另外更不能倾向于某个环节,而要让软件开发和测试都要硬,从而更好的保证后续工作的顺利进行。 4关系处理办法 4.1尊重开发成果 测试人员的综合素养、综合技能等,直接影响着软件开发的进度与质量等,为了更好地处理测试与开发之间的关系,测试人员要抱有一定岗位职责、职业素质,本着公平、公正的心理尊重软件开发环节的工作成果;软件开发会可能会存在一系列的隐藏程序漏洞等,这都是非常正常的,而测试工程师的主要职责就是找出这些漏洞,提高开发进行修正,从而另一个角度来说也是在帮助开发工程师成长;但是实际上,部分的测试人员在检查开发提交的测试软件时,会因为发现问题而出现一系列消极的情绪,对于软件开发工程师进行谩骂侮辱等,不仅降低了软件开发工程师的工作积极性,也影响了两个工作层面的关系,最终延长了软件交付的日期,以及软件的质量。开发工程工作内容繁琐且任务重,不可能全面顾及,导致程序开发存在一定的问题,而测试人员作为软件品质完善的关键,要在尊重软件开发作品的同时,积极的进行漏洞检查,实现良好的团队协作氛围。 4.2缺陷技巧的提交 由于软件开发与软件测试工作埃的交集就是程序缺陷,对此测试人员就要做到以下几点,继而保证缺陷技巧的有效提交,保证软件开发人员的更好接受。 4.2.1换位思考测试 人员在接受软件开发提交的作品时,首要的就是了解软件开发工程师对于测试结果的关注内容、范围以及关键点等;一般软件开发人员对于测试结果最注重的就是软件逻辑、数据流转等方面的内容,对此测试人员就要合理的采用测试技巧,有效的调整程序漏洞的提交方案。软件测试也是一个复杂且繁琐的过程,首先测试工程师要按照指定的测试流程,对软件作品进行系统逻辑的测试,找出影响系统正常运转的错误逻辑问题,将其第一时间反馈给开发工程师;测试环节接触到的其他问题,但并不是影响系统逻辑的漏洞点,按照漏洞提交顺序进行依次提交更容易被开发工程师所接受。 4.2.2漏洞描述要精准 测试人员的测试结果,是开发人员漏洞改进的关键,一个精准的的Bug描述,对于开发人员来说帮助性是非常大的,能够帮助开发人员更加精准的进行漏洞定位。这就要求测试人员在进行Bug描述时,要注重语言的干练简明,语气要肯定,避免使用好像、不确定等词汇,继而模糊开发人员的工作思路。其次描述的内容要突出重点,忌讳全面开花。最后根据以往的经验,给软件开发人员提出一系列的建议,像可能会出现漏洞的部位等,继而实现软件的高品质。 4.2.3注重普遍问题的提交 软件开发人员一般工作都非常的忙碌,而重复漏洞或是无效漏洞的提交,会大大的影响其工作的心情、工作量与工作进度等,对此测试人员在测试系统漏洞时,要养成Bug分析的好习惯,分清其问题的独立性还是普遍性,若是普遍问题可以提交一个。这就要求测试时人员要加强对于软件系统的熟练度,包括业务要求、操作以及使用等,当测试人员也不确定漏洞是否存在时,可以与其他测试人员进行沟通,或是与开发工程师进行沟通,继而精准定位程序漏洞。 4.2.4加强有效沟通 考虑到测试人员与开发人员之间的矛盾问题,主要的原因在于缺乏沟通或是交流无效,对此首先测试热源就要占到用户的角度上,正确的表达出自己的想法,让开发人员也占到用户的角度进行讨论。其次由于两者工作理念不同,对此难免会存在争议,对此测试人员保持自己观点,可在下个版本中完善。最后加强两者之间的沟通,明确对方的工作想法,保证系统认知的更加深入、全面,并灵活的运用测试手段,从而更好的保证软件高品质。 5总结 综上所述,通过对于软件测试与软件开发关系的分析,发现作为软件产品全生命周期的关键环节,更要加强沟通合作,提升企业研发的凝聚力,做到就事论事奔着相同目标共同努力,从而更好的保证软件产品的进度和质量。 作者:侯中原 单位:商丘医学高等专科学校 软件测试论文:计算机软件测试技术及开发应用 [摘要] 随着我国计算机网络的不断普及和发展,无论是人们的日常生活还是工作,甚至是休闲娱乐,都离不开互联网的支持,可以说,计算机软件已经受到越来越多人的应用,并且逐步成为了影响人们生活的重要技术。随着人们对计算机应用软件需求量的不断增加,计算机应用软件的开发也越来越频繁,因此,要对其开发流程以及开发需求进行深入的分析。文章将对计算机软件测试技术与开发应用进行了研究。 [关键词] 计算机软件;测试技术;开发应用;相关研究 计算机软件测试技术对于软件开发而言具有重要的作用,能充分保障软件的精确性,为软件开发工作带来安全保证。笔者将从计算机软件开发的重要性、计算机软件开发流程、计算机软件测试技术在软件开发中的有效应用,三个部分进行阐述。 1分析计算机软件开发的重要性 相对于应用软件而言,计算机仅仅只是作为一种辅助工具,计算机之所以能够帮助人们有效地解决这类问题,促进社会迅猛发展,最重要的就是计算机内的软件应用,可见,软件的开发极为重要。随着国家经济体系的不断改革,各行各业已经逐步面向现代化发展,互联网的普及无疑为人们的发展奠定了结实的基础,也给应用软件的进一步研究开发提供强有力的保障,计算机软件的应用已经在人们的生活中得以普及,而人们的日常生活也已经离不开网络的支持。计算机软件的应用不断丰富了人们的日常生活,使人们更加重视精神的自我培养,此外,计算机网络也在不断推动着人们前进。 2计算机软件开发流程 2.1分析开发需求和设计概要 在开发计算机软件之前,对其进行需求分析是开发应用软件的首要环节,亦是最重要的环节之一。软件开发需求分析质量,会直接对应用软件开发造成影响,一般情况下研究人员要根据软件需求内容,对软件的概要进行设计,并且结合软件的功能需求情况设计出软件程序流程图,若是利用类似于C语言等的高级语言实施程序编写,还应当根据软件模块设计各模块的应用功能。概要设计为软件的开发提供了程序框架,后续的开发工作都是在这个框架基础上进行操作,可见这个框架不但能够决定计算机软件程序功能,而且还能对软件运行的效率产生一定的影响。在基于软件程序具体的开发过程中,想要实现其特定功能,可选择多个语句或者逻辑关系等来实现,但不同的逻辑关系与语句也会从一定程度上影响软件。软件开发及其需求越来越复杂,如何编写简洁而又不会存在漏洞的应用程序,已经成为了各软件开发人员最终的目标,因此,在实际研究过程当中,研究人员要十分重视概要设计环节的工作,并且保持思路清晰,设计完程序流程图之后要进行全方位的审核,不断简化软件的逻辑关系,最终实现科学合理的软件逻辑关系。 2.2详细的编码与设计 紧跟需求分析和概要设计后的一个环节就是进行程序的具体编写工作。在编写程序的过程当中,首先应当选择计算机语言,经过长时间的发展,高级计算机语言出现提高了软件的开发效率。人们按照开发软件的实际需求,有针对性地研究了很多种类的计算机语言,例如:如常见有JAVA、C语言等,到了现在出现了VF与VB等可视化的编程软件,这类软件的研发使研究人员即便没有专业知识也可完成简单的软件开发。此外,在实际编码前,研究人员应进行详细设计,在已设计的框架上,按特定的逻辑关系将软件所需实现的一些功能进行设计,根据详细设计流程进行编码。目前,计算机软件设计使用最多的是C语言,这种语言的模块形式较为简单、语句便于理解,所以非常适合在开发、维护软件过程中运用,受到研发人员的青睐。 3计算机软件测试技术在软件开发中的有效应用 软件程序的编写完成之后,研发人员还要对其实施相应测试,监测这款软件的应用效果以及功能等是否能够达到预期效果,一般情况下,测试软件的方法就是随机输入一些数据到计算机中,然后再看结果是否达到要求,为了能够确保软件功能的精准性,常常会选择几组随机数据配合一些特殊参数进行检测。如果检测出来的结果和软件功能相符合,那么则说明通过测试,反之,则不符合。近几年以来,计算机的软件开发技术得到迅猛发展,研究人员也开发了一些专门针对软件测试的程序,但是由于受到技术水平因素的影响,使用测试软件受到一定的局限,比如:一个测试软件只能对一种软件实施检测,并且测试结果只能当作参考,测试结果的准确率还需要提升,但是不管怎样,测试软件的研发就足以标志着计算机软件程序的未来发展方向。新开发软件通过检测以后,需要交予需求方进行使用,为了保证软件能满足人们的实际使用需求,使用方也会进行验收,软件验收方要求极为严格,但是验收方式基本和测试方法相似,同样采取输入参数来进行验收,因此,就增加了不必要的验收程序。研发人员还应当继续研究,争取研发出更多的测试软件,使软件的测试结果更加精确。软件测试技术作为软件开发过程中最为重要的组成部分,该技术主要目的是为了将软件产品中存在的问题及时找出,并将测试报告交给软件开发人员予以修改。可见,在软件开发工作中,软件检测技术的应用是不可缺少的环节。 4结语 总而言之,计算机网络技术已经在人们的生活中得以广泛应用,而软件就是应用计算机的关键,随着人们各类需求不断增加,开发计算机软件已经成为了研究人员的日常工作,在具体的软件研究过程中,软件测试技术的使用是必不可少的,因此软件开发人员还应切实做好相关工作,解决软件开发所面临的困境,不断提升自己的开发水平,对软件开发工作进行深入研究,促进软件事业的持续发展。 作者:高俊 邹金萍 单位:江西生物科技职业学院 软件测试论文:人才培养的软件测试课程改革 摘要: 本文针对软件测试课程的教育现状,结合软件测试的课程特点和培养目标,从面向应用型人才的培养方式出发,提出了以案例式教学为主导,走教学产业化发展的软件测试改革方案。 关键词: 软件测试;应用型人才;案例式教学;教学产业化 随着我国IT行业的发展,越来越多的企业意识到软件测试的重要性,因此软件测试人员成为当前IT业界亟需的热门人才。面对软件测试人员紧迫的需求形势,应用型人才培养单位应该扩大软件测试人员的人才培养规模,提高培养质量。 一、《软件测试》课程教育现状 我国软件测试技术发展已有十余年,但IT市场对于测试人员仍然呈现出供不应求的势态。目前国内高校对软件工程专业几乎都会开设软件测试课程,甚至有些高校已经设置有软件测试专业。2011年11月,教育部主办了“2011年高等学校软件测试课程教学论坛”,对测试人才的培养及测试领域的全面发展起到了积极地推动作用[1]。高校系统化的专业教育体系为学生奠定了扎实而科学的学科基础,并对软件测试技术的理论化和系统化发展起到了不可替代的作用。利弊相依,传统的人才培养模式对软件测试课程设置和培养方案上还是会存在以下不足。 1.重理论轻实践在传统的软件测试课程设置中,大多采用教师在课堂上讲授理论知识,学生上机时完成实验操作的教学方式。实验的目的只是为了检查学生知识点的理解和掌握,实验题目大多比较陈旧,不能与时俱进地与当前的最新技术或最热门的应用相结合,使得学生的测试知识体系过于单薄。 2.重学生个体知识积累,轻团队协作能力培养团队协作在软件工程中的重要性无须多述。软件测试作为软件工程中重要一个环节,贯穿于整个软件生命周期,测试人员与系统分析员、软件设计师、程序员、维护人员之间的沟通必不可少,良好的团队协作才能有助于项目的进行,有助于高效、正确地开发出高质量的软件产品。传统的教学模式中,很少引入分组协作的环节去锻炼学生的沟通和交流能力,更不能设计出测试人员和开发人员的沟通场景,不能满足学生在项目中去加深理解、巩固提高的需求。 3.重即有知识,轻科学创新一直以来,软件测试课程在高校的课程体系中受到重视并不多,课程结束后并没有延续测试知识的后续课程。因此,学生不能在后面的学习和实践中进行总结提升。知识在母体中是要经过消化、适应、转化、演进、创新、融合、活化,而后才称为组织的“行动知识”,现有的教学模式不能很好的产生知识发酵效果。 二、《软件测试》课程特点和培养目标 软件测试是一门应用型较强的学科,应注重理论联系实践。一个合格的软件评测师除了要掌握即有的测试理论和软件知识外,还必须具备对软件测试行业的深刻理解,必须具备对计算机专业知识,包括编程技能、数据库、网络、中间件等知识的系统掌握,必须具备沟通能力、团队协作精神。软件测试是为了尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件交给用户,这并不是一项简单的工作。要做好软件测试,测试人员不仅需要站在客户的角度思考问题,真正理解客户的需求,具备良好的分析能力和创造性思维能力,完成功能测试和界面测试,而且要能理解软件系统的实现原理和各种使用场景,具备扎实的技术功底,能使用测试工具完成相应的性能测试、安全性测试、兼容性测试和可靠性测试等更具挑战性的任务[2]。从这个角度看,一个优秀的测试工程师需要掌握更多的知识和技能。 三、《软件测试》课程教学改革方案 以上可以看出,当前高校对于测试课程的不重视,以及当前的软硬件设施及教学方法都不能满足对应用型测试技术人才的培养要求。为了适应软件产业发展对测试人才的迫切需要,实现软件人才培养的持续性发展,针对软件测试课程调整培养方案,展开深入的教学改革和实践活动十分迫切和必要。 1.加大师资力量,构建完善的软硬件测试平台教师素养的提高是软件测试教学改革得以顺利开展的前提。此前,国内对软件测试并不重视,致使国内软件测试人才短缺,大部分高校内虽然有计算机系,但多以重开发轻测试,测试教师的专业素质和数量都远远不够。因此,不仅要重视对教师测试专业技术的培训,提供更多的学习机会,也应该认真开展软件测试教学研究,构造专业的软件测试教学团队。作为一门实践性较高的课程,软件测试必须建议专门的、完备的实验教学体系和环境。目前,高校普遍缺乏软件测试的软、硬件环境,致使学生无法通过项目实践来深入理解和提高测试相关知识和技能。 2.运用案例教学,丰富软件测试项目实战案例在教学活动中,学生总是对最新、最流行的项目和案例感兴趣,陈旧的案例既不能满足当前市场上对测试人才的技术需求,又不能很好的激起学生的兴趣。运用案例教学最重要的环节就是丰富案例素材,保持案例的“鲜活性”与“生命力”。高校可以采用历年本科毕业设计中运用了流行的技术、难度适中、功能较为完整的应用作为软件测试课程的测试案例,不但可以保证素材的延续性,也使得学生毕业设计完成的质量有所提高。 3.加强校企合作,走教学产业化发展之路[3]企业需要人才,高校为企业输送人才,校园中学习的技能最终要接收用人单位的考验。所以与软件企业合作,建立对口的学生实训基地,是应用型人才培养的重要途径。软件测试技术的掌握与提高离不开项目实战,让学生在真正的软件工程过程中从事测试工作,不仅能使学生深刻体会到软件测试在整个项目中的作用,掌握测试方法和技巧,对于学生的沟通交流能力、团队协作能力都有积极的促进作用。 四、小结 软件测试是保障软件质量,验证软件可靠性的重要环节,其重要性不言而喻。重视软件测试应从企业用人的实际需求出发,高校应加强面向企业需求的软件测试改革,切实培养学生的动手操作能力,使学生掌握最新的测试方法和技巧,让企业需求促进和推动高校教学发展。 作者:于营 单位:三亚学院 软件测试论文:软件测试质量管理论文 1测试流程不合理 1.1测试设计重点偏离使用QC软件测试发现bug统计,如表1所示。根据表1工作量统计,25人/日为5个中级测试工程师一周的工作量,但是根据测试用例发现的bug数量仅占bug总量的44.18%,该比例显示测试用例的设计重点严重出现偏离。需要在测试用例设计的方向上进行调整。 1.2测试过程不可控QC软件测试计划中测试执行阶段为2013.3.8-2013.3.27,执行三轮测试;实际测试时间为2013.3.23-2013.4.20,执行测试三轮,计划完成时间严重偏离,表2为原计划与实际计划的对比。表2显示测试计划进行了较大调整,计划截止时间比原计划延迟23天。延迟原因经分析主要为开发提交测试时间延迟,开发提交版本问题较多,测试计划安排不合理,在两轮测试间为安排开发修改bug时间等。想要解决该问题,不仅需要对测试过程进行管理,同时也需要对开发提交的测试版本质量进行管理。 2软件质量管理改进对策 2.1需求工程管理软件开发过程中,需求不明确会带来需求的频繁变更,浪费了很多时间。针对此项问题,可对需求相关的活动进行统一管理,其需求管理结构图如图2所示。加强需求开发和需求管理的有机结合,不仅减少了需求的变更次数,还解决了工程师对需求不能理解到位的问题。需求开发和需求管理同样重要,只有两者互相配合才能做出用户满意的产品。 2.2立项管理为了使有限的资源发挥更高的价值,公司可通过立项管理流程进行立项管理,立项管理流程分为立项建议、立项评审和立项筹备三个阶段,其具体流程图3所示。 2.3测试流程管理针对测试流程中发现的问题,可对整体的测试流程做如下的改变:(1)测试部门可进行需求学习及需求讨论,对理解不清楚及有疑问的需求,由研发设计部门进行解答,研发设计部门不能解答的由其联系用户确认后作出解答;(2)需求确认后,针对系统功能和性能等指标,由测试工程师进行测试测用例的设计,设计从两个方面进行,一方面测试工程师根据需求进行测试用例的编写,另一方面测试工程师可根据用户反馈问题进行分析汇总;(3)使用QC功能测试工具对应用软件兼容性、操作系统兼容性进行测试,以便于使用测试工具完成多种环境下的功能和兼容性测试;(4)进行自由测试以便于对系统测试用例进行补充,分析测试用例未覆盖问题的原因;(5)定期分析缺陷库中的问题,分析问题产生的原因,进行测试用例的修改。 3结论 本文指出了软件质量管理过程中可能会引起软件质量问题的原因,对软件质量管理的相关问题进行了分析,归纳和总结,这些问题在软件开发人员中具有一定的普遍性。实践表明,通过对这些问题进行分类,开发人员可以清楚地知道在软件设计中容易出现的问题,能够及时采取相应的措施,推动软件质量的全面提高。 作者:翁婕丁铁乔扬单位:南京莱斯信息技术股份有限公司质量与技术管理部 软件测试论文:软件测试团队建设的软件工程论文 根据权威机构统计部门调查数据显示可知,在常用的软件开发项目环节中,软件测试工作大约能够占到软件开发工作总量的42%以上,而软件测试所需投入的研究经费成本也将占到总额数的50%。由此可知,软件测试环节对于整个软件工程开发应用具有十分重要的意义。然而,如何建立一支高效软件测试团队对于构建更加完善的软件工程起着直接导向性作用。BarryBoehm曾阐述了人的因素在软件测试中的重要作用,人为所占因素甚至超过了其他环节性因素,其代表理论构造性成本模型认为由于软件测试分析师与程序员的原因会导致其工作效率相差数倍。因此,加强软件测试团队的高效率建设对于构建高质量软件应用程序具有重要作用。 1高效软件测试团队建设的可行性策略 1.1软件测试团队的特质建设 软件测试团队的素质建设对于整个软件工程质量而言具有非常重要的作用,人是测试工作中最具价值也是最重要的资源。因此,应该积极构建合格的、高质量的合作团队。(1)软件测试以及软件工程开发都需要程序员具备足够的自信心,对软件检测结构以及程序的缺陷要如实汇报。对于软件项目工程中出现的各种问题要认真处理,以此减少客户可能遇到的种种问题。(2)软件测试人员还要具备足够的怀疑精神,对可能存在的漏洞性错误要及时予以检测和纠正,进而提高其自我创造力。(3)软件测试团队要积极构建沟通协调能力。可以通过与客户进行必要的沟通来及时发现软件运行中存在的不足之处,其中测试者可以针对模拟环境下用户对于软件环境的应用情况进行科学分析,以此对软件编写过程和总结文档进行反复检查检测,提高软件的运行效率和正确性。(4)必备的检测技术能力。软件测试团队必须具备重要的专业技能,需要精通数据库、通信、网络、GUI测试、测试工具、自动化测试脚本和相关业务领域等,以此全面提升他们的测试能力和测试积极性。 1.2软件测试团队的制度性建设举措 一个优秀的软件测试团队必定拥有一套完善的团队管理制度,拥有明确的职责分工和高端测试人员,通过不断规范团队管理制度,做到扬长避短,及时提升整体测试质量。其中,软件测试团队需要不断加强汇报制度建设、工作总结制度建设、奖惩制度建设、测试审核制度建设、会议制度建设等,通过科学合理地分配职责关系来进一步强化团队成员的素质建设。在此过程中,还要注重对于资深测试人员的正确引导和建设,加强彼此间的沟通交流,不断丰富团队的测试知识库,通过科学吸收先进的测试管理知识来提升整体测试技能和技巧,以此减少开发团队协同工作中的一些领域瓶颈。 2结语 综上所述,本文对目前国内软件工程的发展应用现状以及其中出现的漏洞不足之处进行了分析。只有不断加强对软件测试团队的整体素质和综合开发技能的教育,才能从根本上提升其软件测试技能,要在不断建立健全团队管理制度的基础上加强相关软件工程建设,以此全面提高测试人员的软件工程技术水平。 作者:段炼单位:郑州银行科技开发部 软件测试论文:软件工程中软件测试的必要性 1软件工程提升软件健壮性分析 软件工程目前一直缺少一个明确的定义,但是目前业内专家都一致认为软件工程一般分为需求分析、设计、编码及测试4个环节。其中前面3个环节是整个软件的编写,而最后1个环节的软件测试,则是通过各种专业测试方法来测试软件是否满足软件工程下的10种特性:可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性。 2当前软件测试的现状 从对软件工程的分析来看,软件测试是保证软件最终健壮性的最后一个工序。但是,当前很多软件设计公司,在软件测试方面投入的人力物力都非常低,甚至没有专门的软件测试部门,而是由一些软件设计人员兼职。虽然这样也有了所谓的软件测试这道工序,显然因为软件设计人员本身的先入为主,所以在软件测试的过程中,往往不容易发现潜在的问题。另外有的软件测试人员仅仅把软件推到市场上,部分使用人员来进行测试,虽然这也是一种测试方法,但是这种由用户测试的软件测试环节,更多的是在软件的操作体验的测试,并不能够发现软件潜在的bug,正确的软件测试流程,应该设计专业的测试软件,通过白盒测试的方法来针对软件代码进行测试。而上述的仅仅测试界面和操作,那只是软件测试中的黑盒测试法,只有综合白盒和黑盒,才可能获得更好的软件测试效果。但是,目前能够综合这2种测试方法的专业软件测试部门,还是非常稀缺的。这自然导致了国内整个软件行业的软件健壮性存在缺陷的主要原因之一。 3软件测试重要性分析 3.1软件危机下凸显软件测试的重要性 软件危机一直是IT行业的最重要的话题,其实在软件危机这个名词出来之前,软件工程就已经初步有了核心流程,不过正是因为很多专家有着自己的理论,所以让软件工程这门技术的解释出现了很多不同的版本,不过在众多版本中,软件测试始终占据一个重要的模块。软件危机常见的表现就是因为软件在开发的过程中,成本失控、时间跳水、稳定性和兼容性欠缺等诸多问题,而不得不一而再再而三的重新开发,特别是软件在设计的过程中,对于可维护性、可修复性不重视,导致维护的成本占据了整个软件生存周期的90%以上,这很明显是不正常的。通常而言,软件维护的成本应该是软件生存周期的70%以下,超过70%,这个软件最终的结局一定会失败。软件测试的过程,除了针对软件的运行是否稳定,同样也会对软件的可维护性进行有效的判断,尽可能的避免软件危机的产生,所以从软件危机的角度上来看,软件测试在软件工程中的地位无疑是非常重要的。 3.2软件测试的必要性 (1)是交流的问题,容易导致软件接口处的错误。现代软件设计已经不是单人作战的模式,已经上升到团队甚至全球软件工程师通过互联网这个大平台进行合作,这种方式显然对软件工程规范要求更高。其中交流往往就成了一个很重要的问题,很多软件工程师在设计的过程中,尽可能的将自己负责的模块做到完美,甚至也能够考虑到模块间的借口问题。但是因为交流上的不便,或者忽视交流,往往会产生2个模块接口不兼容,甚至还会发生软件需要重新改写的问题。 (2)软件结构有越来越复杂的趋势。虽然软件开始实施模块化设计方式,将一个软件整体拆解成无数个小的系统模块进行设计,然后将设计好的模块进行统一封装。这种化整为零的软件设计方式的确有效的改善了软件复杂性的问题,但是同样也面临着模块间的兼容问题,不同设计师的设计风格可能会导致软件可维护性降低及可移植性降低,特别是一些软件开发公司,根本就没有软件工程的概念,其研发的软件产品,更是漏洞百出,自然很难保证软件产品的健壮性。 (3)程序代码的设计问题。目前一个软件的诞生,往往会有好几千万行的代码,而且在软件正式代码编写之前,还需要撰写概要设计代码和详细设计代码,这些往往都给错误埋下伏笔。如果程序设计代码撰写不规范,没有相应的注释,没有相应的模块设计,往往计算式发现了软件的错误,最终维护起来,也很难让维护工程师定位,甚至连测试工程师也很难找到错误的地方。 (4)设计文档的组成非常少。一个软件产品的诞生,除了优秀的代码设计之外,还要一份完善的代码文档,包括软件的可行性研究、需求分析、详细设计、代码编写,以及软件测试等工作流程中所需要的一切的代码文档。如果代码文档贫乏,甚至没有,那么一旦在软件测试环节,或者在软件使用环节,出现错误时,那就很难进行维护调试了。这时候的维护成本往往会比重新编写一款软件的成本还要低,可见设计文档的错误撰写给软件健壮性的影响。 (5)一些软件测试工具和开发工具本身的问题,往往导致软件出现严重的bug。而且在设计阶段,还很难发现,因为是本身软件测试工具和软件开发工具引起的,因为软件测试工具和开发工具实际上也是一种软件,如果这些软件的健壮性有问题,自然也会导致测试结果出现偏差,最终影响到软件的健壮性。 3.3软件测试成本过半证明了软件测试的重要性 软件工程虽然在很多专家和权威机构的定义有所偏差,但是无一例外,对于软件成本构成的分析上,软件测试的成本一直占据了主要部分,最低的认为,软件测试成本要占据30%,最高的则认为占据到50%。如果将后期维护成本也放在软件测试板块中,那么这个测试成本就会变得更高。因为软件进入维护期时,一旦出现软件需要进行调试,那么修复后的软件依然要进行软件测试,否则很难保证调试后软件依然能够保证健壮性。作为一个软件系统的所有代码,都是牵一发而动全身,修改了某处代码,可能会影响到另外一个模块的功能,所以在维护期内,对软件的任何变动,都需要进行软件测试,才能够保证软件接下来的健壮性。但很明显,如果将软件测试工作放在软件推出市场之前,就来进行有效的测试,那么对于软件整个生命周期的成本,将能够得到有效的降低。软件测试的成本的高低,往往和软件的质量成正比,而软件质量提升了,后期的维护成本就能够有效的降低,所以综合起来,软件测试这部分的成本支出是非常有必要的。 4软件测试流程分析 (1)建立独立的软件测试部门,测试部门领导应该对这个专业非常精通,而不是简单的由开发人员兼职,这个测试部门需要从可行性研究开始就应该着手对软件研发进行测试,可行性研究的最终确认应该也有软件测试主管部门的签字确认才能够进行下一步的工作。 (2)软件测试工作不是等到软件全部开发完毕才来进行测试,而是跟随软件设计的整改生命周期,针对每一个环节进行测试,软件测试部门应该拥有独立的物理部门和独立于开放环境的测试环境,这样才能够提供更加完善的软件测试,尽可能的将软件bug扼杀在摇篮里。 (3)软件模块测试,因为现在软件设计都已经进入模块化设计标准,比如一个完整的软件是S,它有A、B、C、D等模块构成,那么对于A模块的软件设计过程中,就应该有独立的软件测试人员进行跟踪,直到A模块被测试证明没有隐患。以此类推,分别对B、C、D等模块分别进行测试,合格以后,组装后的软件依然进行测试,这样才能够最终提升软件健壮性。在软件设计的过程中,其实测试人员是和软件开发人员并行工作的,而不是等到软件设计完毕之后,再来对模块进行测试,这种方法才能够提升软件测试的效果。 5结语 软件测试随着软件系统复杂性的不断提升而变得越来越重要,如果现在的软件设计公司依然按照传统的软件研发,只注重软件的功能设计,而忽视软件测试,通过不断的压缩测试成本,希望以此来提升软件最终的利润作法已经行不通了,只有将软件测试做好、做精,才能够提升软件的健壮性,才能够提升软件的生存周期,才能够降低软件的整体成本。 作者:董倩范亚斌单位:石家庄学院 软件测试论文:探微软件测试在软件工程的重要性 1关于软件测试的认识 在软件开发的每一个阶段中,人员的参与都是离不开的部分,而人的工作以及人们之间的通信质量有很难做到完美无缺,这就导致了错误是不可避免的。另外,伴随着计算机控制对象越来越复杂,且软件的功能及规模也在不断的提升,这也使得错误相对而言更容易发生,比如对于WindowsNT操作系统来说,其代码约为3200万行。总体来看,在软件设计阶段,人们所犯的错位是引起软件失效的主要原因,而软件缺陷的根源则在于软件的复杂性。在确保软件可靠性以及质量的过程中,软件测试属于最为主要的手段,以当前的软件工程来看,多以结构化分析及设计作为核心,因此在开发阶段,需求分析以及设计都是以工程管理以及技术评审作为质量的保障手段,而工程管理以及技术评审又存在着主观上的缺陷,很容易遗漏错误使其延续至开发阶段。客观来说,软件测试在发掘软件中隐藏缺陷的过程中的确有着很好的效果,以英国的SHOLIS项目来看,这一项目使用形式化方法对软件规约进行描述及证明,而且利用程序正确性证明方法对前期的很多缺陷进行排除,但是通过软件测试却依旧发现了整个过程15.175%的缺陷。此外,随着人们对软件测试重要性的认识越来越深,其所在软件开发周期中所占的比例也越来越高,当前很多软件开发机构已经将其40%的研制力量投放到了软件测试中,而对一些比较重要的软件来说,其测试的费用往往会高达其他阶段费用的3至5倍,由此可见,不管从哪个角度出发,软件测试都是非常重要的。 2软件测试分类 当前的软件测试技术主要可以分为动态测试以及静态测试,其中,静态测试主要是指在不执行程序代码的情况下找到程序中有可能存在的缺陷或者对程序代码进行评估的过程中,广义上看,静态测试还包括软件需求分析以及技术评审。至于动态测试,则是通过抽样测试数据对程序进行运行以起到检查程序中存在的缺陷。在动态测试的过程中,其核心内容主要包括测试用例、运行正与以及对于程序运行结果进行验证这3部分内容,此外还包括一些数据管理、文档编制、操作规程等辅助方面的工作。 3软件测试的对象 在软件测试的过程中,不单单进行一些比较简单的程序测试,也就是说仅对程序能否运行进行测试是远远不够的。具体来看,软件测试要贯穿在软件定义以及开发的整个过程中,因此软件测试的对象包括需求分析、系统设计、程序编码以及各阶段说明文档。此外,因软件开发过程中各个阶段之间有着非常金敏的衔接,因此如果前一阶段出现问题必然会对下一阶段段的工作造成影响,所以为了确保每一个阶段的正确性,我们要做好确认及验证工作。具体来看,确认主要是对需求规格以及程序进行确认,这既含有静态确认,又有动态确认,其中静态确认大多数是由人工进行分析,而动态确认则是利用动态分析以及程序测试对程序执行的情况进行检查。至于验证,则主要是采取一定手段对程序执行情况进行检查,进而证明软件各阶段中的完备性、正确性以及逻辑协调性。举例来说,我们验证的对象包括测试用户需求和系统分析员报告是否想和、设计说明书和测试需求说明书是否匹配等。 4软件测试目的及原则 4.1软件测试目的 测试目前因立场的不同又可以分为两种,从客户角度来看,总是会希望通过测试来发现软件中的缺陷及隐蔽错误。而从软件开发者角度来看的话,则是希望产品少出现错误,对软件已经符合客户需求进行验证,在这种思路下,测试人员会使用一些导致程序失效概率小的测试模块进行测试,并对容易导致错误暴露的测试用例进行回避,而且对于有可能出现副作用的语句也并不会去刻意的检查。基于此,在程序中,还存在很多预料不到的问题,而这类问题往往要在一些比较特殊的环境之下才能够表现出来。从以上分析我们可以看出,在对软件进行测试的过程中还是要更多的站在用户角度对问题进行考虑。 4.2软件测试原则 (1)“尽早和不断的进行软件测试”,只有时刻牢记这一原则才能够降低软件开发中由于工作多样化、人员配置复杂化所带来的不利影响。具体实践的时候,我们首先要端正态度,对各阶段技术审核要认真进行,另外,我们还要将软件测试贯彻到每一个环节中,进而早对错误进行发现和预防。 (2)测试用例选择的过程中要有输入数据和以及和输入数据相对应的预期输出结果,具体来看,在我们进行软件测试的过程中要选择比较适合程序段的测试用例,这些用例可以对程序员所编制的程序是否存在错误进行分析,而给出预期的输出结果则可以对程序段是否存在错误进行更为快捷的判断。 (3)要避免程序员对自己的程序进行测试,在软件测试的过程中,冷静的情绪以及客观的态度是不可避免的,而人又很难对自己的劳动成果进行否定,因此在程序员对自己程序进行检查的过程中会从主观上出现偏差,导致测试结果不准确、不客观。 (4)设计测试用例的过程中要注意使用不合理输入套件,所谓不合理输入条件主要包括输入异常或者会导致异变的条件。在软件正常使用的过程中,不合理输入是不可避免的,轻则会导致运算错误,严重的时候甚至会使软件失效。 (5)对测试工作中的群集现象进行注意,针对测试过程中错误较多的程序段,要对其进行详细认真的检查,这是因为从经验上看,程序段中残存的错误于已发现的错误往往会成正比。 (6)对测试要认真执行,这是指我们要做好一个详细的规划,具体来说,规划主要包括:软件功能、输入、输出以及每一功能测试的进度安排等。 (7)对测试计划、用例、出错统计以及分析报告等进行妥善的保管,进而为日后的软件维护提供更为便捷的服务。总体来看,在我们的工作中如果能够把握住以上原则必然能够对提升测试工作的效果起到很强促进作用。 5结语 在软件开发工程中,软件测试属于一个重要的环节,一旦缺乏了这一环节,所开发出的产品必然难以满足用户的要求。本文关于软件测试必要性的分析还存在很多不足之处,也希望各位测试人员能够对其进行补充及指正,进而共同促进这方面研究水平的提升。 作者:楼炜单位:同济大学软件学院 软件测试论文:软件测试技术在铁路产品开发中的作用 按照软件特征分类,软件测试可分为:功能测试和性能测试。功能测试是黑盒测试的1个方面,它检查实际软件功能是否符合用户的需求。一般分为:逻辑功能测试、易用性测试、安装测试和兼容性测试等。性能测试主要有时间性能测试和空间性能测试2种。通常还包括:一般性能测试、可靠性测试、负载测试、压力测试。其它分类还包括:回归测试、冒烟测试、随机测试。回归测试是指对软件的新版本测试时,重复执行上一版本测试时的用例。冒烟测试是指对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。随机测试是指测试中所有的输入数据都是随机产生的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。 软件测试过程一般来说,软件测试工作从立项后就开始了,主要经历以下几个主要环节,如图1所示。需求分析是软件测试的1个重要环节,测试人员对这一环节的理解程度将直接影响后续测试工作的开展。一般而言,需求分析包括软件功能需求分析,测试环境需求分析,测试资源需求分析等。测试计划的依据主要是项目开发计划和测试需求分析结果而制定,测试计划指导整个测试过程。测试设计在测试活动的各个阶段,对测试策略、测试方法、测试用例进行制定和编写。测试环境搭建要尽可能模拟实际应用场景,满足项目的设计要求,从而达到理想的测试效果。测试执行和测试记录由测试工程师完成,主要是查找软件的错误和缺陷,并记录测试活动中出现的问题。缺陷管理是对测试活动中出现的BUG进行管理和跟踪,保证每个BUG得到及时修复。软件评估是在测试活动的最后,对软件进行全面地分析和总结。 铁路产品开发过程中容易忽视软件测试 铁路产品供应商普遍重视占领市场份额,追求利益的最大化,提升产品的服务质量,但是却容易忽视保证产品质量的软件测试,这给铁路安全运输带来巨大安全隐患。项目的开发过程通常是确定项目负责人和项目参与人、项目的方案以及项目需要完成的时间,然后投入项目的开发。研发过程中采用团队协作,项目分工到人,经过程序编写、调试,最后集成为产品,并在实验室和现场环境下进行测试实验。对于项目进展情况的掌握是通过不定期的召开会议和单独询问主要开发人员以及研发人员汇报来实现的。 在这种开发模式下,因为项目的开发过程中没有系统和独立的测试过程,所进行的测试也是以正向思维为主,重点验证软件是否实现了相应的功能,而不是软件在异常情况下的响应和处理。软件开发和软件测试本来就是不同的活动,开发人员的工作目标是创建相应模块,实现特定功能,从而会不自觉地朝这个方向努力,挑选那些使程序出错可能性较小的测试数据和手段,无法保证软件被全方位进行测试,会给项目带来隐患。正是认识到这一情况,才大力主张产品开发应进行科学和规范性管理,加强软件测试队伍建设,任命专职人员从事测试工作。利用软件领域中的相关技术,对软件进行科学、合理的测试。 如何在企业内部实施软件测试 企业想要在产品开发过程中,对产品软件展开相关测试,首先应建立合适企业特点和开发模式的测试流程;其次,对不同测试阶段和不同产品的软件和硬件的特点,拟采用不同的测试技术和策略。另外,在产品开发过程中,项目的配置管理、质量保证的等方面都应形成明确的制度。 1测试流程 企业应全面规范项目开发管理流程,对项目进展的各个阶段进行明确划分。软件测试是建立在软件开发的成果之上,即测试的对象就是软件开发的阶段性成果,如设计文档、程序代码和可执行的程序。 软件测试和硬件测试的侧重点有所不同。对于软件测试,采用比较通用的测试流程,如图2所示。软件项目的开发从项目立项开始,测试人员介入项目组,明确需求分析阶段的用户需求,针对不同测试阶段的工作重点,制定各阶段的测试计划。在设计测试阶段,测试人员需要确定各测试阶段的测试方法和必要的测试工具,搭建测试环境,编写相应的测试用例。接下来,按照测试计划分别进行单元测试、集成测试和系统测试,形成各阶段的测试报告,对测试过程中发现的缺陷进行跟踪,保证缺陷得到及时修复。为了保证软件在现场环境下能够正常运行,测试人员针对现场实际情况,制定现场验收计划,确定现场验收策略,对软件进行现场验收和评估。当软件通过了各阶段的测试,且全部缺陷得到修复,将进入到软件的阶段。软件阶段通过对软件版本的管理和控制,实现软件、维护和升级等。 对于硬件测试,需要面向硬件编程,即在硬件环境下,编写代码,实现采集、控制、通讯等功能。由于硬件产品的开发不能脱离硬件环境,因此,测试活动与硬件产品开发、过程调试、硬件联调都是密不可分的,软件测试作为硬件产品开发过程中的重要环节,“验证”和“确认”产品满足项目的设计需求,硬件产品开发流程如图3所示。硬件产品的开发,首先要明确硬件需求,预计产品达到的效果。在硬件总体设计阶段,获取硬件需求,并根据功能进行模块划分,定义模块之间的接口。在详细设计阶段,对各模块进行编程,搭建相应的硬件电路。过程调试可分为:软件过程调试和硬件过程调试两种,软件过程调试指的是在硬件电路的环境下,进行软件调试的过程,保证软件能够正确控制硬件电路和读取相应数据;硬件过程调试指的是产品电路部分的调试过程,验证电子器件之间逻辑是否符合系统设计要求,保证硬件产品稳定、可靠,不受干扰。各硬件功能模块调试成功后,需要进行整体硬件联调,各硬件模块被连接成1个整体,形成产品的雏形,在此阶段,主要验证各模块之间的接口是否符合设计要求,是否能够实现系统设计的各项功能。硬件产品经过整体联调后,形成样机。测试工程师根据产品的硬件需求说明,制定测试计划,确定测试方案和测试方法,并搭建测试环境,对样机进行硬件测试,确认产品符合硬件产品设计要求。 2软件测试技术在各阶段的运用 在软件测试实施的各个阶段,所采用的测试方法和测试策略也各不相同。下面对于测试过程的各阶段进行分别叙述。 2.1设计和代码审查 设计审查是由项目组和测试组成员组成评审组对软件设计和开发的输出进行评价,以判断确定设计和开发的输出能否实现软件产品预先定义的规格,同时通过审查标识出与项目需求之间的偏差。设计审查按《项目计划》所规定的评审点进行。因临时变更引起的突发性的评审随时进行。代码审查实际上属于静态测试。在代码审查之前,首先要对代码进行静态分析,其目的是通过对源程序分析、目测,但不执行程序,找出源代码中可能存在的错误和缺陷,对程序设计的结构属性,如分支、路径、转移等进行审查,尽可能地掌握程序的结构,为单元测试的测试用例的设计和执行提供信息。代码审查的目的是检查源程序编码是否符合详细设计的编码规定,确保编码与设计的一致性和可追踪性。检查的方面主要包括:书写格式、子程序或函数的入口和出口,数据,参数,程序语言的使用,存储器的使用,可读性,逻辑表达式的正确性,代码结构合理性等。静态分析和代码审查通常可以同时进行,通过静态分析掌握源程序结构,通过代码审查,尽量减少书写错误和隐含的逻辑错误,为单元测试提供比较稳定的环境。 2.2单元测试 单元测试是软件测试的基础,集成测试、系统测试都是建立在单元测试之上。单元测试是用来检验每个软件单元能否正确地实现其功能,满足性能和接口要求,还要验证程序和详细设计说明的一致性。从广义上来讲,单元测试包括静态测试和动态测试。静态测试就是上面介绍的“代码审查”,而动态测试则是通过测试用例、测试工具来执行程序,检验程序是否存在缺陷的过程。单元测试一般采用白盒测试方法,手工测试和自动测试相结合,针对程序内部的结构和逻辑来展开,单元测试工具一般针对不同编程语言和开发环境而设计开发的,种类很多。我们利用白盒测试进行代码测试,利用黑盒测试进行功能性测试,利用回归测试保证维护代码的完整性。单元测试工具固然有用,更重要的是测试策略,以及测试用例的设计。这也提醒我们在做单元测试的过程中,不可避重就轻,要抓住项目核心,进行科学、有效的测试,只有这样才能达到事半功倍的效果。 2.3集成测试 集成测试阶段采用白盒测试和黑盒测试相结合的方式,将每个独立的功能模块进行关联和集成,便于进行功能测试、界面测试、结构测试、数据正确性测试等。在进行集成测试前,测试工程师要搭建测试所需的硬件和软件环境,尽量模拟设备实际的工作环境。结合项目的不同特点,测试过程可以采用手工或自动测试。在进行多次重复测试和回归测试的情况下,可采用自动化测试工具对软件进行功能性检测。 2.4系统测试 在系统测试阶段,不仅要进行功能测试,还要对系统的性能、安全性、兼容性和可靠性等进行测试,系统测试涉及人机交互和复杂逻辑,因此系统测试多采用黑盒测试的手工测试方法。系统兼容性测试要考虑软、硬件的兼容性。项目开发的硬件和软件要在指定的环境下,进行多次反复的安装和反安装测试,以验证接口数据调用和驱动程序是否达到设计标准。安全性测试和软件的安全策略密切相关,安全性测试主要包括:用户访问权限、数据库安全性、文件安全性等。性能测试、负载测试等必须借助测试工具来实现。过分强调测试工具的作用,极力追求各种软件测试工具,是软件测试本末倒置的表现。实际上,测试过程中80%以上的缺陷是手工测试发现的,仅有不到20%的缺陷是靠工具测试发现的,而且这还得要求测试人员合理地使用工具。 3采用的测试模型 企业对产品开发应重点关注产品开发的过程控制,以及测试、管理。保证产品质量从源头开始。因此,测试过程更适合采用W模型,如图4所示。在W模型中,测试过程和开发过程都贯穿项目开发过程的整个生命周期,两者同时开始,同时结束,相辅相成、始终保持着同步的关系。这样做的原因是:测试工作尽早介入,软件存在问题的可能性就会降低。项目正式立项后,测试人员既可参与到项目组中,通过学习和阅读相关文档,加强对项目的了解,对项目有个整体认识,形成初步的测试思路。同时测试越早介入项目就能够越早发现问题,解决问题所花费的成本越小。如果在软件的最后阶段进行测试,发现功能设计不合理或性能不好,需要修改需求和设计,不得不返工到系统设计或需求定义阶段,会造成很大的代价,所以有必要将软件测试延伸到需求、设计阶段,对需求、设计进行验证。有资料表明,60%以上的软件错误不是程序错误,而是分析和设计错误。若把软件分析、设计上的问题遗留到后期,可能造成设计、编码的部分甚至全部返工,从而增加软件开发成本及延长开发周期等后果。同时,需求和设计阶段所产生的缺陷具有放大效应,严重地影响软件质量。因此,为了更早地发现并解决问题,降低修改错误和缺陷的代价,有必要将测试延伸到需求分析和设计阶段中去,使软件测试贯穿于整个生命周期,提倡软件生命周期测试的理念,即软件测试是对软件形成过程中的所有工作产品(包括程序以及相关文档)进行的测试,而不仅仅是对程序的运行进行测试。测试在对需求和设计阶段的测试活动主要是通过需求评审和设计评审来实现,可以更早发现问题,及时修改问题。即对软件开发阶段中的阶段性产品进行评审、走读或者回忆评审,发现其中的问题,是一种静态测试。通过静态测试,可以更早地发现问题,把问题消灭在萌芽中,将每个阶段产生的缺陷及时清除。 总结 软件测试作为专业性比较强的技术在我国起步较晚,受重视程度不够,但它是保证软件质量的终极手段,目前越来越受到了人们的关注。铁路行业的生产企业,认真做好产品质量把关,合理运用相关检测技术,将软件缺陷消灭在萌芽阶段,保证铁路运输和人们生命财产的安全。 作者:朱剑辉单位:哈尔滨铁路局科学技术研究所
软件工程论文:ISO9000在软件工程管理的应用 杨挚 ISO9000系列标准及软件质量认证 近年来,国际上影响最为深远的质量管理标准当属国际标准化组织于1987年公布的ISO9000系列标准,这一国际标准发源于欧洲经济共同体,但很快就波及美国、日本及世界各国。到目前为止,已有70多个国家在它们的企业中采用和实施这一系列标准。中国对此也十分重视,也采取了积极态度。一方面确定对其等同采用,与其相应的质量管理国家标准系列GB/T19000;同时积极组织实施和开展质量认证工作。计算机软件行业自然也和其它领域一样被席卷进去。 ISO9000系列标准如此迅速地在国际上广为流行,其原因主要在于: 1)市场经济,特别是国际贸易的驱动。无论任何产业,其产品的质量如何都是生产者、消费者、以及中间商十分关注的问题。市场的竞争很大程度上反映了在质量方面的竞争。ISO9000系列标准客观地对生产者(也称供方)提出了全面的质量管理要求、质量管理办法,并且还规定了消费者(也称需方)的管理职责,使其得到双方的普遍认同,从而将符合ISO9000标准的要求作为国家贸易活动中建立互相信任关系的基石,并且在国际贸易中,把生产者是否达到ISO9000质量标准作为购买产品的前提条件,取得ISO9000质量标准认证被人们当作进入国际市场的通行证。 2)ISO9000系列标准适用领域广阔。它的出现最初针对制造行业,但现已面向更为广阔的领域,这包括: (1)硬件:指不连续的具有特定形状的产品,如机械、电子产品,不只是计算机硬件。 (2)软件:通过支持媒体表达的信息所构成的智力产品。计算机软件当然属于其中。 (3)流程性材料:将原料转化为某一特定状态的产品。如,流体、粒状、线状等,通过瓶装、袋装等或通过管道传输交付。 (4)服务:为满足客户需求的更为广泛的活动。 ISO9000系列标准的内容 2000版ISO9000系列标准的内容 ISO9000:2000质量管理体系基本原则和术语 ISO9001:2000质量管理体系——要求 ISO9004:2000质量管理体系——业绩改进指南 ISO19011:2000质量和环境审核指南 2000版ISO9000族标准的特点 新版ISO9000族标准对比现行的1994版而言,具有以下的特点。 1.面向所有组织,通用性强。新版ISO9000族标准适用于所有的产品类别、所有的行业和各种规模的组织,总之,新版标准面向所有组织,通用性很强,将成为适用范围最广的国际标准之一,表现在: (1)新版标准消除了1994版对硬件产品制造业的偏向性。 2000版标准巧妙地采用了“产品实现”、“动作控制”、“过程的测量和监控”和“产品的测量和监控”等词汇和要求,消除了行业的偏向性,对非制造业贯彻ISO9000族标准所带来的方便是不容置疑的。 (2).为特种行业制定行业附加要求奠定了共同的基础。有些行业确有其特殊性,2000版本标准允许在ISO9001基础上增加行业特殊要求的条款。这样既能使所有组织的质量体系基本要求具有一致性,又确保行业特殊要求的适用小性。已有软件.通讯.汽车.等行业都已用此方式制定各自的行业特殊要求。 (3)。‘‘允许裁剪“的规定使2000版ISO9001标准的适用范围扩大到1994版ISO9001/9002/9003/三个保证摸式的标准户群。三个保证没摸式的差异都在第7章产品实现过程中,2000版ISO9001,1.2允许对第7章要求中不影响满足顾客和法规要求,不及组织责任的标准条款进行裁剪,从扩大了ISO9001标准的适用范围,又获得”以一顶是三(三个质量保证摸式),减少标准数量的功效。 (4)。考虑了小型企业的适用性。2000版标准保留了大小企业都是必要的条款,有的还进行强化,对小型企业可能不太上适合的具体要求则进行弱化。使2000版ISO9001标准的通用性更强了。 2.确立八项原则,统一留念理念。 3.鼓励过程方法,操作性强。2000版标准的修订采用了过程摸式,提倡用过程方法来识别和建立体系。 4.强化关键:领导作用。 5.自我评价测量,突出改进。 6.关心各相关方,利益共享。 ISO9000系列标准原本是为制造硬件产品而制定的标准,不能直接用于软件制作。后来曾试图将ISO9001改写用于软件开发方面,但效果不佳。于是,以ISO9000系列标准的追加形式,另行制定出ISO90003标准。这样,ISO90003就成了用于“使ISO9001适用于软件开发、供应及维护”的“指南”。不过,在ISO90003的审议过程中,日本等国曾先后提出过不少意见。所以,在内容上与ISO9001已有相当不同。ISO90003(即GB/T19000.394),全称《质量管理和质量保证标准第三部分:在软件开发、供应和维护中的使用指南》。 制定与实施ISO9000系列标准 1)强调质量并非在产品检验中得到,而是形成于生产的全过程。ISO90003叙述了需方和供方应如何进行有组织的质量保证活动,才能得到较为满意的软件;规定了从双方签订开发合同到设计、实现以至维护整个软件生存期中应当实施的质量保证活动,但并没有规定具体的质量管理和质量检验方法和步骤。 ISO90003的核心思想是“将质量制作入产品之中”。其实道理是很明显的,软件在完成编码以后,不论花多大的力气用于测试,提高质量都是有限度的,更不必说需求规格说明存在的问题常常是测试无法发现的。事实上,软件产品的质量取决于软件生存周期。 2)为把握产品的质量,ISO9000要求“必须使影响产品质量的全部因素在生产全过程中始终处于受控状态”。为使软件产品达到质量要求,ISO90003要求软件开发机构建立质量保证体系。首先要求明确供需双方的职责,针对所有可能影响软件质量的各个因素都要采取有力措施,作出如何加强管理和控制的决定。对与质量有关的人员规定其职责和职权,使之责任落实到人,产品质量真正得到控制。 3)ISO9000标准要求证实:“企业具有持续提供符合要求产品的能力”。质量认证是取得这一证实的有效方法。产品质量若能达到标准提出的要求,由不依赖于供方和需方的第三方权威机构对生产厂家审查证实后出具合格证明。显然,如果这一认证工作是公正的、可靠的,其公证的结果应当是可以信赖的。正确实施产品质量认证制度自然会在促进产品质量提高,指导消费者选购产品,提高质量合格产品企业的声誉,以及节省社会检验大量费用等方面发挥积极作用。 生产企业为了达到质量标准,取得质量认证,必须多方面开展质量管理活动。其中,企业负责人的重视以及企业全体人员的积极参与是取得成功的关键。 4)ISO9000标准还强调“质量管理必须坚持进行质量改进”。贯彻ISO9000标准是企业加强质量管理、提高产品质量的过程,这个过程包含许多工作绝非轻而易举、一蹴而就所能奏效的。即使已经取得了质量认证也不能认为一劳永逸而放松质量管理。实际上认证通常以半年为有效期。取得认证之后尚需接受每年1~2次的定期检查,其目的在于促使企业坚持进 行质量改进。 软件工程论文:浅析软件工程 摘要:软件工程专业是计算机领域发展最快的学科分支之一,软件工程(software engineering,简称为se)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。这一学科包括许多的内容,具体来讲有程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等。当今社会,网络化迅速发展,软件的应用领域越来越广。现在比较普遍的软件有电子邮件,人机界面,办公套件,操作系统,游戏等。目前,基本上每个行业都会某种程度的运用到计算机软件。这些应用对于推动经济和社会的发展起到了举足轻重的作用,提高了工作效率,改善了人们的生活质量。 关键词:软件工程 计算机领域 程序设计 开发工具 设计模式 生命周期、软件开发 1 概述 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。这一学科包括许多的内容,具体来讲有程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等。当今社会,网络化迅速发展,软件的应用领域越来越广。现在比较普遍的软件有电子邮件,人机界面,办公套件,操作系统,游戏等。目前,基本上每个行业都会某种程度的运用到计算机软件。这些应用对于推动经济和社会的发展起到了举足轻重的作用,提高了工作效率,改善了人们的生活质量。 我们究竟是将软件的开发看成一门科学,还是将其看成是一门工程,关于这个问题已经讨论了很长时间了。事实上,软件的开发具备这两者的特征。但是我们不能将二者混淆了。大多数人认为软件工程基于计算机科学和信息科学就像是传统意义上的工程学之于物理和化学。在世界各个国家,尤其是美国大约有40%的软件工程师都有计算机科学的学位。他们可能不经常运用到计算机科学上的知识,但是会经常运用到软件工程上的知识。许多应用都需要软件工程,在软件开发的许多程序中也需要软件工程。软件工程的主要作用就是指导软件项目的方方面面。在软件工程中,软件开发与各种市场活动紧密相连。软件工程的方法学认为程序员在开发软件的时候是处在一个团队中的,而且在编写程序时要符合软件的需求,设计,以及客户的利益。 伴随着开发技术的不断进步,软件开发过程也在不断的改进。从早期的瀑布式(waterfall)的开发模型直到最近开始兴起的敏捷开发方法(agile),表现出来的是随着时代的变化,软件产业对于开发过程的认识也在不断的变化,对于各种类型项目的理解方法也在发生着变化。在美国曾经有权威机构对软件组织的绩效做过评估,所得到结论是:软件工程的专业分工不足,是造成品质低落、时程延误、预算超支的最关键因素。2003年,the standish group年度报告指出,在他们调查的13522个专案中,有66%的软件专案失败、82%超出时程、48%推出时缺乏必需的功能,总计约550亿美元浪费在不良的计划、预算或软件估算上。 2 软件工程的需求分析 有一种观点认为软件工程是学习怎么做软件的,对吧?我认为,这种观点算对,但不是全对。得到一个软件产品,自然是软件工程的目的所在,但是软件工程所包含的却不仅仅是这些。就拿软件业界比较常见的例子来给大家讲一下,这个例子就是盖房子,我们盖房子,是不是就买块地,然后准备好建材,就哐当哐当地开始建房子了呢?大家明白不是这样,要建好一座房子,先要对土地进行测量勘察,确定可以在上面建房屋,之后还得先规划出整个房子的蓝图来,接下来才是对根据蓝图开始建房子。建好房子后,还得经过一些检测,比如甲醛有没有超标啊,包工头有没有偷工减料啊,这些都合格之后才能交付使用。于是有人入住了,住久了,发现浴室漏水,那就得修补一下。再住久了,住了几十年,房子旧得不成样子了,这时候它的寿命也到了终点了。 软件工程之所以叫软件工程,就是因为它使用了工程学方法来帮助软件开发,建筑也是一门工程学,所以它们之间是会有些共通之处的,不信?请看:首先,我们在对土地进行测量勘察的时候,是在确定它是否适宜建房子,在软件工程上来讲,这个术语叫“可行性分析”,可行性分析的任务就是确定开发这个软件是否在技术上可以做到,在资金上有充足支持,在市场上能够受欢迎,如果答案是肯定的,那么就可以继续下一步的开发步骤。规划 房子的蓝图,在软件工程上被分为两个过程:“需求分析”、“设计”。需求分析就是得到软件需要做什么,需要实现什么功能。而设计就是告诉开发人员怎么实现这些功能。也就是规划出软件的一个蓝图,在“编码”阶段再对其进行实现,这就对应着建房的关键阶段,就是按照蓝图盖好房子啦。房子在入住前需要检测是否合格,软件在交付给用户使用的时候自然也需要检测是否合格,这个阶段叫做“测试”。检测合格了,那就可以交付给用户使用,在市场上销售。软件不可能完美无缺,所以在使用过程中,一定会出现某些问题,这时候就要将问题提交给软件开发人员,修复问题,这个阶段就是软件过程中的“维护”阶段。过了一段时间,这段时间可能很长,也可能很短,这软件已经不适应生产力的发展了,那么就可以正式宣告这软件寿终正寝了,至此,软件的生命周期才正式结束。 我们还要注意,软件生命周期包括制定计划、需求分析和定义、软件设计、程序编码、软件测试、运行维护这六个阶段,是指一个计算机软件从功能确定、设计直到不再使用该软件的全过程。 软件工程,正是贯穿在一个软件的整个生命周期中的。从开发某个软件的计划被提起或者立项,软件工程就开始发挥着作用,用自己的一套方法体系,来指导软件开发的整个过程。因此软件工程不等于编程,编程只是软件工程整个过程中的一个重要环节而已。据统计,在整个开发周期中,平均编码这个过程只占了整个周期的大约30%的时间。 3 软件工程原则 软件工程学主要是用来对软件开发和维护进行指导,是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完整的工程化原则。它充分的运用计算机科学、数学及管理科学等方面的知识,并借鉴传统工程的原则、方法来完成开发软件的任务,这样就能够最大限度的开发高质量的软件,并且能够减少成本。 boehm是一位知名的软件工程专家,在借鉴了许多的专家和学者的经验之后,再加上自己在开发软件方面的经验,在1983年总结出了软件工程的七条基本原理: ①用分阶段的生存周期计划严格管理; ②坚持进行阶段评审; ③对产品严格把关; ④在技术上运用现代程序设计; ⑤结果能清楚地审查; ⑥开发小组的人员不要太多,但是这些人员要有真才实学; ⑦不断对软件工程实践进行改进是很有必要的。 一般来说,一个软件方法往往规定了明确的工作步骤、具体的描述方式以及确定的评价标准。软件开发的基本方法包括结构化方法、面向对象方法等。 随着软件工程学的发展和软件开发的实践,软件开发模型依次被提出:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、形式化方法模型等。 目前,已经推出很多软件开发工具,如需求分析阶段的psl/psa系统;编码阶段的各种语言编译工具、编辑程序、连接程序等,都是软件编码阶段的软件工具;测试阶段的测试数据产生程序、动态分析程序、静态分析程序等软件自动测试工具;维护阶段的版本控制系统等。从广义上来讲,软件分析、设计阶段的各种图形工具,如数据流(dfd)等也可以称为软件开发工具。 从技术和管理上采取多项措施后,组织实施软件工程的最终目的是保证项目成功,即达到以下几个主要目标: ①使开发成本最少; ②达到预期的软件功能; ③软件性能更好; ④使软件易于移植; ⑤最大限度降低维护费用; ⑥按时完成开发任务,及时交付使用。 4 结束语 软件工程的方法的意义是非常广泛的。具体来讲包括项目管理,分析,设计,程序的编写,测试和质量控制。有些人认为人们要认真遵守这些方法进行软件开发,但是有些人还没有足够的能力实施这些方法。事实上,具体运用哪种方法开发软件是受很多方面因素的限制的。 软件工程论文:信息系统开发中面向对象软件工程方法的应用分析 随着科学技术的不断进步,计算机硬件也进入了高速发展阶段,软件开发方法也随之得到不断更新。面向对象(oo)方法于60年代后期被提出,但花了近乎20年才被人们广泛认识和使用。如今,面向对象软件已成为行业内的主流,并在软件行业中占据着非常重要的位置。传统的软件工程方法常把数据与处理的过程分开,大大增加了软件开发的难度。面向对象方法吧软件工作视作离散解空间对象的结合,并使问题空间与解空间的结构、描述模型相一致,简化了程序的同时降低了软件系统开发的难度。 目前,国内普遍采用传统的结构化分析设计和面向对象程序相结合的方式进行项目开发,并且大部分项目也取得了成功。但这种方法无法让实现两者的平滑过渡及连续性,并且不利于软件重用、维护、测试等工作的进行。如果全过程仅采用面向对象软件工程方法,则能确保信息系统开发的完整性和一致性。由于面向对象数据库产品尚未完善,因此此方法很难应用于实际中。为此,必须制定相应的规则和算法,确保面向对象分析、面向对象设计的结果能正确地向关系数据库转换。 一、关于面向对象软件工程 1.面向对象。面向对象主要是指在满足客户需求的基础下,将需求合理构建成独立的业务模块,之后利用多态、继承、封装、抽象的编程思想对业务逻辑进行构建,使之与业务需求相一致,最后将各模块整合以达到最佳的预期效果。 2.面向对象软件工程。面向对象软件工程时面向对象技术和软件工程相结合的产物。面向对象技术贯穿到面向对象软件工程的全过程,并将过程中形成的面向对象分析、面向对象设计和面向对象程序设计三部分,贯穿到软件工程的各个相应阶段。面向对象软件工程所采用的具体模型不外乎以下几种:整体——部分模型、类——对象模型、对象模型、分类模型和状态模型。 3.面向对象的方法。随着时代的发展,面向对象分析和面向对象设计的理论和技术都得到了逐步完善,软件开发方法也不断地推陈出新。国内外目前已衍生出多种的面向分析方法,其中最有影响力的主要有:booch方法、rumbaugh方法、coad和yourdon方法、jacobson方法、统一的ooa方法(uml)。从面向对象分析到面向对象设计是一个将模型逐渐扩充的过程。在这个过程中,主要考虑的是如何分析处理问题,对于与特定计算机相关的问题则可以忽略不计。面向对象设计可以分为高层设计和低层设计两个阶段,高层设计主要用于建立体系整体架构,低层设计则主要用于对类的详细设计。 二、面向对象方法在医院收费信息系统的应用 为了更好地理解面向对象软件工程方法在信息系统开发中的应用,我们采用了医院的收费信息系统为例。首先,可将医院收费的需求构建成三个独立的业务模块——功能模型、动态模型、对象模型。 1.功能模型 对收费信息系统进行业务分类,其中主要包括划价和查询统计两个子系统。分类的目的是为了业务模块的构建更合理清晰,节省和减少了系统操作人员的工作时间和工作量。病人缴费以后,操作人员可通过划价子系统输出其收费单据,并按有关规定将单据导入数据库中。如果病人想清楚医院的具体收费,操作人员可键入查询条件,从而为病人输出相关单据。 2.动态模型 医院收费信息系统被划分为两个子系统,其中划价子系统的动态模型主要显示为一些列的前台操作,其主要表现为:病人请求→划价员根据相关单据进行划价;病人付款→操作人员打出收据→将信息导入数据库→修改记录。查询统计子系统跟划价子系统类似,主要均是由病人提出请求,操作员再根据病人需求键入查询条件,从而输出病人的相关统计表单。 3.对象模型 本系统主要涉及到的重要的类模型为——库存类图、人员类图和单据类图。 (1)库存类图。库存类模型所增加的属性(库存量、生产日期、保质期)主要跟药物和其特性密切相关。医院内各种药物及材料都标明了库存量和保质期,而药品则常被细分为:西药、中药、中成药。 (2)人员类图。病人和医院工作人员均继承在人员类中,其中病人是医院收费信息系统的主角,划价请求、查询请求、缴费等划价子系统业务都是病人类的方法。医院工作人员类又可细分为三个子类,包括医生类、收费员类和操作员类。医生类是必然的存在,病人的病情及其主治医生,这些都需要存档。操作员是除病人外在系统中的又一主角,查询、划价、统计均是其工作。由此可见,系统的操作运行离不开操作员。收费员的工作极为简单,只需进行收费操作即可。 (3)单据类图。单据可分为治疗单据和收费单据。治疗单据在病人治疗后由医生开出,单据上主要标有:单据号、医生和病人的姓名、日期等项目。其中父类为单据号、医生和病人的姓名,子类为治疗项目如手术项目类、药品项目类等。收费单据时是系统根据治疗单据划价、病人缴费后所打印出的凭据。其父类为收费项目类,子类则为药品收费项目类、手术收费项目类等。由于单据的不同,子类会根据其属性而有所变化,因而系统可以根据需要打印出不同类别的单据。 软件工程论文:软件工程在“软件开发设计实训”课程中的应用 笔者所在学院的软件工程系是成立于2005年的新专业,为校级特色专业。近年来,随着对软件工程特色专业建设进程的推进,课程体系日趋完善。针对软件工程学科具有理论多且实践性极强的特点,本系较大幅度地加大了实践类课程和环节所占的比例,“软件开发设计实训”便是其中很重要的一门实践课程。由于软件工程学科发展速度很快,在软件产业不断发展,全国对高素质的软件人才的需求量激增的形式下,迫切需要研究和探索实践类课程的教学模式,激发学生学习兴趣,以更有效的手段和方式提高教学和指导质量,为培养更加符合社会实际需要的软件开发人才打下坚实基础。在我校教改基金的资助下,依托软件工程教学团队,本文对将软件工程应用于“软件开发设计实训”课程的教学模式及主要措施进行探讨。 1 选择适当的软件工程过程 “软件开发设计实训”课程的主要目的是使学生学会用面向对象的设计方法设计实际系统。结合软件工程学科的发展和应用现状,软件开发过程主要采用rup(rational unified process,统一软件开发过程)的方式组织软件开发。rup是风险驱动的、基于use case(用例)技术的、以架构为中心的、迭代的、可配置的软件开发流程。 rup分为初始、精化、构造和交付四个阶段,各阶段涉及多种工作流。rup的核心工作流主要包括: 需求捕获工作流:需求捕获通过对问题的理解和分析,确立问题涉及的信息、功能和系统行为,将用户需求精确化、完全化。需求的焦点主要在初始和精化阶段,在精化阶段后期,需求捕获的工作量大幅下降。 分析工作流:分析的主要工作开始于初始阶段的结尾,和需求一样是精化阶段的主要焦点。精化阶段的大部分活动是捕获需求,分析工作与需求捕获在很大程度上重叠。 设计工作流:设计的主要工作是位于精化阶段的最后部分和构造阶段的开始部分的主要建模活动。系统建模最初的焦点是需求和分析,在分析活动逐步完善后,建模的焦点开始转向设计。 实现工作流:实现(实施)是关于把设计模型转换成可执行代码的过程。从系统分析师或系统设计师的角度看,实现工作流的重点就是完成软件系统的可执行代码。实现工作流是构建阶段的焦点。 测试工作流:测试是一项相当主要的工作。测试工作流贯穿于软件开发的整个过程。它开始于软件开发的初始阶段,而细化阶段和构造阶段是测试的焦点。测试是为了找出程序中的错误与缺限,而不能证明程序无错。 rup就像一个元过程,通过对rup进行裁剪可以得到很多不同的开发过程,非常灵活,所以可以将其按本课程需要进行精简,从而把深奥的理论指导融入具体软件项目的开发设计中,让学生更加深切地体会到什么叫学以致用,消除畏难情绪,培养和增强在软件开发设计中自觉遵从软件工程思想的习惯。本课程使用的case(computer aided software engineering,计算机辅助软件工程)工具集采用sybase公司的powerdesigner。 2 将有价值的软件工程知识引入课堂,教学采用项目贯通案例 为让学生在中小规模的实训项目中也能体会到较大型项目通常会用到的一些软件工程技术,让本课程更有实用价值,教师需要对学生补充一些软件工程相关知识,包括:设计模式、架构设计、类的持久化以及数据库设计、面向对象实现以及文档的书写这四个方面。 为配合上述四个方面的软件工程相关知识的介绍,教师采取“项目驱动的案例教学”方法【2】,在课堂讲授中引入一个完整的、规模适中、难易适度的软件项目案例。该案例需要通俗易懂而又具有实际意义,涉及的应用领域应该是学生较为熟悉的,这样理解起来更为容易。以此案例完整的开发设计过程为主线,借助这个贯穿整个课程教学进程、文档齐全的完整案例来将软件项目开发设计过程中的各个环节串连起来,着重展现上述四个方面的知识运用,让学生熟悉和掌握软件开发设计的具体实施步骤和技术。 3 学生实践环节分小组按项目方式进行 由于在本实训课程之前学生已经学习过一门先导课程:“软件需求分析实践”,所以可以把学生仍然按照在“软件需求分析实践”课程中的各小组成员组成来进行项目分组,这样各小组便可将该课程中的最终成果——《软件需求分析规格说明书》作为本课程的起点来进行,需求捕获工作流便只需粗略进行。由于本课程侧重于软件开发过程的分析工作流和设计工作流,对实现工作流和测试工作流也只作粗略涉及。 每个项目小组通常为3到5人,分组时采用了优势互补的方式,注意合理搭配,尽量让每组各个成员具有不同的优势能力,并让其民主推选一名组长负责组内的组织和协调【3】。 教师的项目贯通案例教学分阶段间插在学生实践过程中,每介绍一个阶段的rup理论,就紧跟几次课的学生实践环节,如此交替进行,当教师的教学案例施教完毕,学生的项目也同步进行到最后阶段。 项目进行中模仿软件公司的例会形式,定期由项目小组长召开小组讨论会(如每周一次),对最近这段时间的项目进展情况和技术问题进行讨论。每个开发设计阶段结束时教师均要求各小组给出相应的文档,且每个阶段完毕要进行一个模拟的里程碑式的评审(教师参与作为评审团的一员)【4】。 教师还应在课程即将结束的最后课时中对各小组的项目完成情况及普遍存在的共性问题作一个分析总结,并让各小组组长总结本组项目完成的经验教训,以利于同学之间取长补短,活跃思维,提高分析总结问题的能力。 4 依托教学团队,理论及案例部分采用轮流授课法 笔者所在的软件工程系于2009年底成立了软件工程教学团队。团队兼顾了职称、学历、教学、科研的合理搭配,由有大型项目开发和管理经验的老教师提供指导来提升年轻教师的教学能力,并让其参与到科研项目中积累项目经验。本课程的任课教师均由该团队中选出。本课程所用的《软件开发设计实训指导书》的编写由各任课教师分工完成,每人负责完成一章内容。本课程每个教学班安排30人左右,各教学班的教师全程负责该班整个课程的实践指导环节。而理论及案例讲授部分的教学则采用轮流授课法,实施方案是每个阶段的课堂讲授由编写实训指导书的相应章节的教师对全体教学班集体授课,其他教师同时到场辅导。具体各阶段的课堂讲授内容安排如下: 1)rup总论以及课程概述 2)设计模式 3)常用的软件架构风格及适用情况分析 4)对象持久化与数据库设计 5)面向对象实现及文档编写与整理 对应进行的学生的各阶段实践任务如下: 1)按既定方式确定各小组成员和组长,并且重新审核各组在先导课程“软件需求分析实践”中的最终成果《软件需求分析规格说明书》,进一步完成分析模型,得出用例图,分析类图,序列图及协作图。这一阶段学生需提交分析模型文档。 2)按照设计模式重新设计类。这一阶段学生需完成两个任务:一是实现设计模型中的具体设计类,具体要求学生:使用设计模式和机制;创建初始设计类;确定持久类;定义类可视性;定义操作;定义方法;定义状态;定义属性;定义依赖关系;定义关联;定义内部结构;定义泛化关系;解决用例冲突。二是完成用例实现的设计,主要设计模型内的协作关系,以设计类及其对象为基础,描述各个特定用例的实现和协作。这一阶段学生需提交设计模型、类图和用例实现。 3)完成架构设计。这一阶段学生需要设计包结构,完成系统设计模型图的实现子系统、接口设计类及架构模型(组件图),重新审查用例模型,得出用例模型的架构视图。这一阶段学生需提交子系统设计文档、接口设计文档及架构模型文档。 4)根据持久类以及数据库知识对数据库进行设计(包括字段编码设计)。这一阶段学生需提交数据库设计文档。 5)本课程的最后阶段。完成实施模型(部署图);完成界面以及输入输出(报表等)设计;完成具体子系统的编程工作,并进行二次迭代重新审核前面的设计部分;整理测试报告;整理文档并编写软件使用说明书。这一阶段学生需提交组件图、部署图、输入输出设计说明及具体子系统代码执行程序。 5 考核方式强调过程考核,开发设计能力与书写文档能力并重 本课程的实训目标是使学生能综合运用所学的知识进行中小型应用项目的软件开发设计。为此,我们提出了本课程考核的指导思想:重视实训过程,看重软件开发设计能力的提高,采用复合考核的方式,课程成绩由平时考核、过程考核和项目验收答辩成绩组成。重点突出“会不会做”,强调对学生的实际开发设计能力考核,同时注意防止轻视书写文档的观念。这种考核方式不但能更客观地反映学生的学习情况,还能引导学生有意识地加强软件开发设计技能的培养,开发设计能力与书写文档能力并重,更利于达到预期的教学效果。本课程具体的课程考核成绩组成如下: 1)平时成绩*10%(考勤成绩*50%+小组开发设计工作中的合作精神表现*50%); 2)阶段考核成绩*60%(五个阶段,各阶段的能力表现及提交的文档各占20 %); 3)项目验收成绩*30%(项目文档汇总整理占50%,项目答辩50%)。 6 结束语 “软件开发设计实训”课程是软件工程专业实践类课程中非常核心的一门,其实践性和综合性都很强,能集中训练和提高学生进行软件项目开发和设计的实际技能。其教学实施过程不应被视为只要学生针对项目要求能编写出相应的软件即可,而更应注重软件开发设计过程的方法和技能的培养,以培养具有软件工程思想的真正符合社会需求的软件人才。本课程应紧随软件工程学科的发展而不断更新。在今后的课程开展过程中,其教学模式和措施还需要不断创新、总结和改进,需要持续不断地研究和探索。 软件工程论文:计算机软件工程管理工作探析 论文 关键词:软件工程管理 开发人员 组织结构用户 论文摘要:通过对软件产品特点的分析,讨论软件工程管理可能涉及的人员、组织机构、用户、控制、文档资料等内容. 一、引言 软件工程管理目前还没有引起人们的足够重视。究其原因:首先是人的传统观念,工程管理不为人们所重视;另一方面软件工程是一个新兴的学科领域,软件工程管理的问题也是刚被提出的。同时,由于软件产品的特殊性,使软件工程管理涉及到很多学科。因此.对软件工程管理,人们还缺乏经验和技术。但事实证明,由管理失误造成的后果要比程序错误造成的后果更为严重。很少有软件项目的实施进程能准确地符合预定目标、进度和预算的,这也就足以说明软件工程管理的重要。 二、软件工租,理的内容 目前软件生产自动化程度很低,在开发过程中人是起决定性的因素,因此,软件工程管理很大程度上是对人的管理。我们可根据软件产品的特点.分析软件下程管理的具体内容,它包括对开发人员、组织机构、用户、文档资料等方而的管理。 (一)开发人员 软件开发人员一般分为:项目负责人、系统分析员、高级程序员、初级程序员、资料员和其他辅助人员.根据项目的规模人小,有可能一人身兼数职,但职责必须明确。不同职责的人,要求的素质不同。如项目负责人需要有组织能力、判断能力和对重大问题能做出决策的能力;系统分析员则要有概括能力、分析能力和社交活动能力;程序员需要有熟练的编程能力等。人员要少而精,选人要慎重。软件生命期各个价段的活动有分工又互相联系。因此,要求选择各类人员既能胜任工作,又要能相互很好地配合.没有一个和谐的工作气氛很难完成个复杂的软件项目。 (二)组织机构 组织机构不等于开发人员的简单集合。这里的组织机构要求:好的组织结构、合理的人员分工和有效的通讯。软件开发的组织机构没有统一的模式。下面简单介绍三种组织机构。 1.主程序员组织机。ibm公司提出的主程序员组是软件系统结构化思想在组织上的体现。它的目的是为了保证全组的协调和统一。一位高级工程师(主程序员)主持计划、协调和复审组的全部技术活动。技术人员(一般25人)负责分析和开发活动,一位后援工程师支持高级工程师的工作,并且在该项目继续进行时,可以代替高级工程师工作,以减少可能的损失. 2.专家组。专家组强调每个人的才能,把每个人都看作是某一方面的专家,由这些专家组成一个开发机构。这种组织结构虽然能发挥所有工作人员的积极性,但往往有可能出现协调上的困难,选择这种方式要慎重. 3.民主组织.民主组织由从事各方面工作的人员轮流担任组长。很显然,这种组织结构对调动积极性和个人的创造性是很值得称道的。但是由于过多地进行组长信息“转移”不符合软件工程化的方向。 (三)用户 我们是为用户开发软件的,在开发过程中自始至终必须得到用户的密切合作和支持。作为项目负责人,要特别注意与用户保持联系,掌握用户的心理和动态.防止来自用户的各种干找和阻力。 1.用户不积极,不配合。这种表现通常来自对采用先进技术持怀疑态度的用户,他们心理上的抵触情绪会在行动上表现为消极、漠不关心。在需求阶段,做好这部分人的工作很重要,通过他们中的业务骨千,才能真正了解到用户的要求。要使他们认识到: 计算 机的 发展 和应用是 现代 化的必然趋势,使用计算机将会带来巨大的 经济 效益:让他们掌握新的技术和方法去取代某些可能过时的或淘汰的专长。 2.用户求快求全.这种表现来自对使用计算机持积极态度的人.他们中一部分人希望一个早上就能用上计算机,并且全能用上计算机。要他们认识到;开发一个软件项目不是一朝一夕就能完成的,软件工程不是靠人海战术就能加快的工期。另外,即使计算机能够处理的事情,系统也不能下于包罗万象,贪大求全。要根据现有的条件量力而行。如果系统大而全,必然会很复杂,开发时间就拖得很长,因此可能会导致一个系统的失败或性能太差. 3.用户需求变化.在软件开发过程中,用户可能会不断提出新的要求和修改以前提出的要求。从软件工程的角度不希望有这种变化。但实际上,不允许用户提出变动的要求是不可能的.因为一方面每个人对新事物有一个认识过程,不可能一下子提出全面的、准确的要求:另一方而还要考虑到与用户的关系。对来自用户的这种变化要正确对待:要向用户解释软件工程的 规律 ,并在可能的条件下部分或有条件地满足用户的合理要求.例如:软件需求分析阶段结束后软件的设计口标已经确定,这时用户要求的重大变化要导致设计目标的变化,特别是到软件开发的后期,一般不可能满足这种变化的要求。要向用户解释清楚工程的内在规律,但对用户提出的如性能等局部方而的要求,只要是合理的,就要加以考虑。 4控制。人员控制是对开发组织内部人员控制。就是要保证开发人员的积极性和稳定性。人员的频繁更换或流动将会大大增加软件出错误的机会。至少要保证软件项目每一期工程或软件生命期每一阶段中人员的相对稳定性。同时注意发挥每个开发人员的积极性和创造性。经费控制要编制详细的经费预算。并在各阶段进行经费的核算。在经费上失去控制,软件项目就没有经济保证。质量控制与各阶段的复审在意义和作用上是一致的,在此不再叙述。 5.文档资料。开发过程的各种活动后都要反映在文档资料上。每一个阶段的文档资料是以后各阶段工作的基础,又是对前面各阶段工作的复审。软件工程管理很大程度上是通过对文档资料管理来实现的。因此,要把开发过程中的初步设计、中间过程、最后结果等建立成一套完整的文档资料。文档标准化是文档管理的重要方面。 三、结束语 在当今的软件工程时代,每个项目涉及众多的人力和物力,管理问题日益突出。在实际工作中,不管是否正式提出管理问题。都在自觉或不自觉地进行着管理,只不过是管理的好坏程度不同而已。随着软件规模的不断增大.开发人员也随着增多,开发时间也相应持续增长。而对于规模大、人员多、开发时间长的软件项目,必须要有良好的管理和力求在确定的时间和预算范围内有效地、合理地组织人力、物力.按计划完成预定的软件项目。 软件工程论文:“软件工程专业卓越工程师培养方案”的探索与实践 2004年,世界工程师大会在中国召开,会议的主题是“工程师塑造可持续发展的未来”。这个主题告诉我们,“工程师”对人类未来发展的重要性,同时也告诉我们“工程教育”对人类未来发展的重要性。[1]应该看到,尽管一些应用型本科院校把培养“一线工程师”作为学校的办学宗旨,并在此基础上对教学模式、教学方法进行了一系列的教学改革,但由于与企业的结合不够紧密,高等工程教育所培养出的“一线工程师”与企业、与社会的脱节比较严重,不能适应现代社会发展的需求。 2010年6月教育部基于提高工科院校专业教育教学水平而正式启动推出的“卓越工程师教育培养计划”(以下简称“卓越计划”)[4]是贯彻落实《国家中长期教育改革和发展规划纲要(2010-2020年)》和《国家中长期人才发展规划纲要(2010-2020年)》的重大教育计划。该计划旨在培养造就一大批创新能力强、适应经济社会发展需要的高质量各类型工程技术人才,为国家走新型工业化发展道路、建设创新型国家和人才强国战略服务,对促进高等教育面向社会需求培养人才,全面提高工程教育人才培养质量具有十分重要的示范和引导作用。 上海应用技术学院“软件工程”专业从 2010 年起即着手准备,在原有专业设置基础上不断探索与实践,根据it学科行业发展的特殊性,制定具有前瞻性的人才培养标准,并通过全面修订人才培养方案、实施人才培养模式、教学方式、训练方式和评价方式等的改革。 一、培养模式 本专业实施“3+1”校企联合培养模式,学生须接受3年的在校培养,累计1年的企业实践和毕业设计。前三年学生在校学习学科基础知识和软件工程的基本理论知识和技能,打好从事软件工程领域工作的扎实专业基础。在校学习过程中,定期聘请企业教师参与到教学实践中,使学生对企业的生产实际有初步的了解。 第四年学生将被安排在合作企业进行为期一年的学习与实践。一些与企业联系密切的专业课程及毕业设计在企业完成,学生参与到企业的各个项目组,随项目组一起参与实际项目的开发。项目组负责人将视学生为自己的员工,分派合适的工作要学生随导师或独立完成。通过参加一个或几个实际项目的工作,独立地完成一部分工作,并以企业标准进行考核,使学生对软件标准化设计的全过程有更深入的了解。增强学生的责任心,提高学生的实际工作能力。 二、培养标准 按照教育部“卓越工程师教育培养计划”的总体工作思路和标准要求,上海应用技术学院“软件工程专业卓越计划”将以“培养面向未来国家建设需要,适应未来科技发展,德智体全面发展,掌握软件工程学科的基本原理和基本知识,具有扎实的基础理论、宽厚的专业知识和良好的实践能力,获得工程师基本训练,能胜任软件工程项目的规划、设计、实施、管理、研究、教育,以及投资与开发等工作,具有创新精神和国际视野的卓越的专业工程师”。 三、培养方案架构 按照课程群和模块化的指导思想搭建培养方案的课程架构,满足不同学生、企业对知识能力培养的需求。培养方案课程体系总体架构如图1所示。1-5学期按照课程群进行教学,满足学生对不同知识能力的需求;第6学期根据学生实习企业对知识能力的需求分模块进行教学;第7-8学期进入对口的企业实习并完成毕业设计。 四、校内培养方案 校内培养方案的设计目标是通过学习使学生具有较强的工程意识、工程素质、工程实践能力,成为专业知识扎实、动手能力突出、素质优良的卓越软件技术人才。为了保证卓越工程师培养计划的实现,制定了卓越工程师计划专业知识与能力的实现矩阵,进一步明确了本科课程体系设置,包括课程模块的构成、具体翔实的课程教学目标以及教学考查方式。结合专业特点以及学校学院的教学平台、 教学设施、教学创新实践基地等,加强了教育教学中的基础性、创新性、实践性、国际化,使专业的教育教学更上一个新的台阶。 (一)课程群划分 将课程划分为三条主线进行教学:1.基本理论课群,包括操作系统、计算机网络、离散数学、数据结构、算法、计算机原理等。本部分课程培养学生计算机学科的基本理论和体系结构,使学生具备坚实的理论基础,为其今后的继续学习和发展打下基础,同时满足学生考研需求。2.程序设计能力课程群,.net、java两个主流平台并重,再加上三门培养综合设计能力的课程,以提高学生的实践动手能力,并满足不同企业对开发工具的需求。为了加强学生的程序设计能力,我们在课程设置上体现了在校学习期间三年不断线的思想,每学期都有与程序设计有关的课程和实训。要求学生第一年编写代码不少于5000行,第二年不少于10000行,第三年不少于20000行。在进入企业之时,已经具备了较强的程序设计能力。3.软件工程能力课程群,以提供学生软件工程的管理与被管理能力。 (二)课程模块划分 根据合作企业的知识能力的不同需求划分为若干不同模块。通过对学生工作去向的跟踪调查和软件工程行业需求调查,确定了erp开发、web应用开发、手机应用开发、软件咨询服务等几个方向。每个方向设立若干课程构成若干课程模块,对应不同的去向,满足不同企业的需求。在基本能力培养的基础上,根据学生第四年去向选择模块,在第6学期完成,由企业方参与教学,完成学生进入企业的过渡。 五、企业培养方案 企业培养方案突出了理论和实践综合素质的培养,在教学体系上形成了企业导师教学讲解、专题实训、项目实践的“三位一体”、工学交替的人才培养方案。 整个企业阶段的培养方案划分为企业工程教育或专业特色实习(累计15周)、现场工程实践和专业综合设计(累计25周)两个部分,共40周,其中: 1.企业工程教育或专业特色实习(15周) 根据企业的业务和项目情况设置相关课程,折合15周。目的是培养软件企业需要的一线工程人才。为了提高本专业特色实习的质量,聘用计算机软件工程专业知识过硬、实践经验丰富的技术人员为教师。在实习过程中,采用案例教学法,把企业实际软件工程项目纳入学生实习范围,让学生接触和开发企业实际的工程项目。为了提高实习效果,企业工程教育要做到讲授、训练、实践穿插进行,使学生全面感受企业的工作环境、管理体制和项目开发过程,做到学生学习的专业特色内容与企业实践相结合。 2.现场工程实践或专业综合设计(25周) 为使学生成为满足软件产业需求的创新型人才,专业综合设计采用项目驱动的实习模式,专业综合设计通过参与企业实际项目完成,共25周。专业综合设计课题全部来源于企业的工程项目,实行1人1题,由实习单位的专业技术人员和学校的专业教师担任设计指导教师。专业综合设计结合实际工程问题,进行有针对性的研究与实践,培养学生综合运用所学知识和技能、分析与解决实际问题的能力,培养学生勇于探索的创新精神、严肃认真的科学态度和严谨求实的工作作风。 经过一年多的实践,卓越工程师人才培养成效显著,一批特色鲜明、实践能力强的工程应用型创新人才脱颖而出,2012届参加卓越工程师培养方式的学生,在就业方面占据了明显的优势。受到了企业的普遍欢迎。目前,2013届学生参加卓越工程师培养计划的工作正在进行,受到2012届成功运作的影响,学生们积极性很高。在卓越工程师计划的实施过程中,我们也发现了一些培养计划中的不足之处,并在2013届的实施中加以以调整。相信经过几年的努力,我们的培养方案会愈加成熟。 软件工程论文:地方院校软件工程校企合作 实训教学改革的探索与实践 地方院校教学目标是培养社会所需要的应用型人才,这是其优势所在。实训教学是指独立设课的实训课和理论课中的实训环节,是实现培养目标的主体教学环节之一。实训教学是培养学生专业技术应用能力及分析问题和解决问题能力的重要途径,是教育过程中不可缺失的重要环节。本课题的研究基于某些国内外知名企业提供技术服务为基础,以梧州学院软件工程专业为探索平台进行的教学改革实践。校企合作的内容主要包括实践教学体系建设、实训教材建设、实训基地建设、产学研等多方面。 着力打造“4+5”的实践教学体系 学院软件专业打破传统的三段式教学,着力打造“4+5”的实践教学体系。“4”是指突出培养学生四种能力(实践能力、创造能力、就业能力和创业能力);“5”是指培养过程的“课程实验—期末实训--毕业实训—顶岗实习—创新性实践活动”五个模块。五个模块是根据软件工程特点,循序渐进地培养四种能力,体现工学结合。这五个模块和整个课程体系,都是围绕主线来展开。其中的“创新性实践活动”对软件技术人才来说是非常重要的,一个软件就像一个作品,必须有创意和实用的算法。 校企合作,共同开发实训课程和教材 为了支持“一条主线,五个模块”的实践教学体系,学院软件专业采取校企合作方式,共同开发实训课程,分别用于各个模块教学中。目前,已与多家企业共同建设基于任务驱动、项目导向、工作过程的《信息开发技术》课程,基于工作过程的 “教学做”一体化情景化教学的《网络综合布线》课程。与企业合作开发《信息开发技术教程》、《多媒体技术与应用实训教程》、《网站规划与设计实训教程》、《计算机组装与维护实训教程》、《角色动画教程》等教材。 校企合作,共建校内生产性实训基地 学院软件专业采取校企合作方式,与多家企业共建网络构建、服务器、综合布线实训室,实训室建设贯彻先进性、真实性、工程性、开放性的建设原则,将实训基地建成具备多类网络架构真实环境,集教学、科研、工程、培训、技能鉴定等多种功能于一体的网络技术与软件工程中心,着力培养学生的职业技能和创新能力,提高人才培养质量,提升社会服务能力。 以产学研充实教学内容,提高教学和管理水平 为搞好产学研,学院建立二级科研机构软件开发中心,软件专业教师在研究所兼职搞开发,取得了良好的效果。先后完成了梧州市国税限时办结税务系统、广西财政厅的预算单位银行账户管理系统、基于cmpp的短信系统的研究、广西科技厅的nsq物流信息实时智能配对系统、新型农村合作医疗信息系统等。在重大课题研究中积累了丰富的研究经验。特别是在医疗卫生行业, 建立医疗卫生行业综合信息平台。医疗卫生行业以新型农村合作医疗、城镇居民健康档案管理系统为切入点,以现有系统为基础,以国家农村合作医疗建设政策为指导思想,以具体的信息化项目作为实际载体,参与到医疗卫生行业“一个平台、四大系统”的建设中(即建立一个包含网络硬件和基础软件的统一技术基础平台,建立卫生行政管理信息系统(卫生电子政务)、突发公共卫生事件应急系统(突发公共卫生事件应急指挥决策、疾病预防控制、卫生监督、医疗救治等系统)、医疗服务信息系统(医院信息)和卫生应用信息系统(合作医疗、社区卫生、妇幼保健、医教科研等系统)),在加快全市公共卫生信息化建设进程,全面提高突发公共卫生事件监测、应急反应、医疗救治、执法监督和指挥决策的能力方面作出我们应有的贡献。 总结 软件工程专业的“3+0.5+0.5”的教学模式的实训环节是按照校内半年、校外半年的方式进行组织的。校内实训基地引入来自企业的真实项目,学生在贴合软件企业工作环境的实训室中完成校内综合实训。校外实训基地由来自企业的兼职教师带领在企业顶岗实习的学生参加企业项目的研发,在实战中进一步深化所掌握的专业知识。通过分方向、多层次、分阶段来逐步训练学生的专业技术能力和职业素质。整个实训环节包括专业认知、基本技能实训、核心技术实训、综合实训、顶岗实习几个环节,实训涵盖了基础知识、专业核心技术及综合能力培养等各个方面,所建立的实训教学体系有一定的借鉴意义。 软件工程论文:基于软件工程开发的领域本体构建研究 目前流行的领域本体构建方法有:英国edinbunrgh大学ai应用研究所的enterprise项目组开发的“骨架法”,该方法使用middle—out开发方式提供与商业和企业有关的术语及其定义的集合;加拿大toronto大学企业集成实验室开发了tove项目本体,通过该本体来建立指定知识的逻辑模型;bernaras等人开发的欧洲eaprit kactus项目中由应用来控制本体的开发,每个应用都有相应的知识本体,这些本体即能复用其他的本体,又能集成到项目以后的本体应用中;西班牙madrid理工大学ai实验室开发的,methontology法构建知识级本体;美国southern california大学信息科学研究所开发的sensus法,主要通过自然语言处理,提取和合并不同电子知识源的信息而得到该领域本体的内容。 本文借鉴了上述传统领域本体构建方法中的基本思想,并在构建框架中融合了软件工程开发方法中的结构化开发方法和原型化开发方法。 1 传统领域本体构建方法分析 1.1 共同点分析 纵观上述“骨架法”、“评估法”、“bernaras”、“methonotology”及“sensus”方法构建领域本体过程中的思路,它们之间存在以下共同点: (1)许多本体构建方法都以一个具体任务为起点,这样易于知识的获取和本体功能的描述。 (2)本体构建大致可划分为阶段法(如骨架法)和演化法(如methontology法)。 (3)在构建过程中可分为“非形式化描述本体”和用正规描述语言“形式化描述本体”前后两个阶段。 (4)希望通过累积的方法构建本体,即先构建一个基础本体,然后做进一步开发。 (5)对于由同一个基础本体构建出的领域本体,由于高层概念的共享,本体系统之间具有互操作能力。 1.2 缺陷分析 ieee 1074—1995标准是软件开发生命周期过程的标准,其中包括模型阶段、项目管理阶段、软件开发阶段与集成阶段4个开发阶段,其中软件开发阶段的具体步骤如下: (1)开发前期:主要进行可行性研究等活动; (2)开发阶段:主要进行需求分析、设计和实现等活动; (3)开发后期:主要进行软件的安装、试运行、操作和维护等活动。 与ieee 1074—1995标准对比而言,目前领域本体构建还远远没有成为一种工程性活动,还具有如下缺陷: (1)没有一种方法是完全成熟的,不论是bemaras法、sensus法、骨架法、评估法,还是methontology法。 (2)缺乏工程化的本体通用构造方法和标准。由于每个研发团队处于不同的学科领域,虽然总结出各个领域不同的开发方法和体系结构,但是各个本体开发方法都不尽统一,缺乏通用的标准。 本文在领域本体构建过程中扬弃上述5种领域本体构建方法中的优缺点,而且借鉴了软件工程开发的基本标准。 2 基于软件工程开发的领域本体构建 2.1 构建框架 本文在领域本体框架构建的形式上采用结构化方法中分段式模式,将整个领域本体构建过程分为领域本体规划阶段、领域本体分析阶段、领域本体设计阶段、领域本体实施阶段及领域本体运行阶段,每个阶段都有自己独立的目标及主要任务,前一阶段任务的完成是后一阶段任务开始的前提和基础,后一阶段任务通常是对前一阶段提出的解决问题方法的进一步具体化,即该过程是按照软件工程开发的生命周期流程来逐步解决问题的。在领域本体分析阶段,根据领域本体规划阶段提出的具体要求和目标,采用原型化方法不断地对分析结果进行修改和完善。其构建框架如图1所示。 2.2 构建框架分析 2.2.1 领域本体规划阶段 (1)确定领域本体的用途和范围 确定领域本体范围的方式之一是设计并填写本体的性能调查表,以下从需求的角度对本体支持的性能调查表进行简单的分类: ①需求细化。需求细化过程必须满足何种标准?会产生多余的需求吗?需求是客户的清晰表述吗? ②需求追溯能力。需求还能分解吗?需求的来源是什么?谁记录需求?需求在特定的设计团队中适用吗? ③需求满足。需求能够满足吗?两个或多个需求间相互冲突吗?更高抽象级别的需求怎样满足评估? ④文档生成。需求属于哪类文档?哪些是与需求文档中的段落相符的需求?不属于客户报告的需求有哪些(商业机密)? ⑤升级。这是需求的最新版本吗?需求的旧版本有哪些?为什么还要改变需求?变化对需求文档的一致性和完整性有影响吗? (2)考虑复用现有领域本体 一些本体已经初具规模,可以在网上找到相应的本体库及相关资料,在具体开发之前,有必要在这些本体中寻找系统可以重用的本体,这样可以省去元本体和顶层本体的建立,而把本体建立的目标重点放在领域本体的建立上。 2.2.2领域本体分析阶段 (1)定义类和类层次 类描述了领域的概念而非单词。在类和类层次的定义过程中,需要依据以下8个原则: ①确保类层次的正确性 恰当使用is—a和kind-of等类间关系,is-a关系指类a是类b的子类,前提是b的每个实例也是a的实例。类的子类表示概念是kind-of父类表示的概念;层次关系间具有传递性,并应区分直接子类和间接子类的关系;避免类层次的循环,确保类层次随着领域发展而进化。 ②分析类层次中的兄弟关系 在类层次中,兄弟关系是同一类的直接子类,并在同一抽象级别上。关于直接子类的个数并没有明确规定,但父类一般只有2-12个直接子类,过多或过少不都合适。 ③多重继承关系 一个类可以是几个类的子类,则子类的实例是其所有父类的实例,子类将继承所有父类的属性和关系约束。 ④引入新类的时机 当类的子类有其父类不具有的新属性,或有已定义的新属性值,或覆盖父类属性的约束,此时可以引入一个新类。新类可以没有任何新的属性,没有必要为了一个额外的限定条件来创建新类。 ⑤新类或特性值 如果有不同属性值的概念变成其他类中不同属性的约束,则应该生成新类,以便加以区别;类的单个实例不应经常改变,当使用概念的外在(非固有)属性来区别类时,这些类的实例将需从一个类移动到另一类。 ⑥类或实例 判断类结束和单个实例开始依赖于知识表示中最低的粒度级,而粒度级又由本体应用来确定;如果概念已经形成自然的层次,则应表述为类,单个实例是最特殊的概念表述,实例没有层次性。 ⑦限定范围 确保不包括类具有的所有特性,仅在本体中表述类最突出的特性,不增添所有类(术语)间全部的关系。 ⑧不相关子类 很多系统明确指定某些子类不相交,如果类没有任何共同的实例,则它们不相交。 (2)定义类的属性及其约束 类的属性是描述类和实例的特性,也是类间区分的特性。通常有四种对象特性能变成本体中的属性: ①固有的特性,如圆柱的半径和高度。 ②外在的属性,如螺旋的设计者。 ③局部,若对象是结构化的,物理和抽象的部分。 ④与其他个体间的关系。 不同的约束可以用来描述属性的值类型、值范围、值基准,及值的其他特征。下面从5个方面来描述属性普通的约束: ①属性基数。基数定义属性有多少值。有些系统定义单一和多个基数,而有些系统用最小和最大基数来描述属性值的个数。有些属性设置最大基数为o,目的是为了表示特定子类的属性不能有任何值。 ②属性值类型。通常属性值类型可分为字符串型(string)、“浮点或整数”数值型(float或integer number)、“是或否”布尔型(yes或no boolean)、枚举型或符号型(enumerated或symbol)、实例型(instance)。 ③属性的领域和范围 属性应能描述其领域中所有的类,属性应能填充其范围内所有类的实例,同时不应指定属性的范围是本体中最通用的类。 ④逆属性 属性值可能会依赖于另一属性值,称为逆关系,在两个方向保存此数据是冗余的,通常使用逆属性,可以自动填充另一逆关系的值。 ⑤默认值 如果类的多数实例的特定属性值是相同的,则可把该值定义成默认值。当类的每个新实例包含这个属性值时,系统自动填充默认值,还能把此值改成约束允许的其他值。 (3)生成实例 定义类的单个实例首先需要选择类,接着生成这些类的单个实例,最后填充属性值。 为了使生成的类、类间层次关系、类属性及约束、类实例等更符合构建目标和用途,并为了保障在较短时间内适合用户的需求,在领域专家的指导下,采用原型化软件工程开发方法对该阶段产生的成果不断修改和完善。 2.2.3 领域本体设计阶段 (1)领域本体的形式化表示 一般用语义模型表示领域本体。perez等人用分类法组织领域本体,归纳出5个基本建模元语: ①类(classes)或概念(concepts) 从语义上讲,它表示的是对象的集合,其定义一般采用框架(frame)结构,包括概念的名称、与其他概念之间的关系集合、以及用自然语言对概念的描述。 ②关系(relatiom) 在领域中概念之间的交互作用,形式上定义为n维笛卡尔积的子集,即:r=c1×c2×……×cn ③函数(functions) 一类特殊的关系。该关系的前n-1个元素可以惟一决定第n个元素。形式化定义为f:c1×c2×……×cn-1→cn。 ④公理(axioms) 代表永真断言,如概念乙属于概念甲的范围。 ⑤实例(instances) 代表元素,从语义上讲实例表示的就是对象。 另外,从语义上讲基本的关系有4种:整体与部分关系(part—whole)、分类关系(is—a)、实例与概念关系(instance—concept)和属性关系(attribute-of)。但在实际建模过程中,概念之间的关系不限于上述4类关系,可以根据领域的具体情况定义相应的关系。 (2)领域本体的形式化描述语言 领域本体可用自然语言、框架、语义网络或逻辑语言等来描述。但对计算机来说,形式化描述语言做为一种可供计算机处理的概念模型,应具备以下条件: ①应该具有较强的表示能力,同时也应兼顾推理能力,以满足智能检索中进一步实现推理的需求。 ②应该具有较强的内在逻辑系统支持。 ③应该具备一致的描述概念和表示数据的能力。 ④应该尽可能与w3c已有标准兼容,从而保证其持续发展需求。 ⑤应该具备xml语法特性,最好是基于语义web。 ⑥所表示的领域知识是形式化的,即机器可读和可理解的。 目前已经开发了6种本体语言,有些是直接基于xml语言的语法,如简单html本体扩展(simple html ontologyextension,shoe)、本体标记语言(ontology markup language,oml)和基于xml的本体交换语言(xml—based ontology exchange language,xol);另外有2种本体语言是建立于rdf(s)之上,以便改善rdf(s)的特征:本体交互语言(ontology interchange language,oil)和darpa主体标记语言+本体推理层(darap agent markup language with ontology inference layer,daml+oil)。最近,以oil和daml+oil语言为起点,已开发出语义网所用的web本体语言(web ontology language,owl)。各个本体语言之间的层次化关系如图2所示: (3)领域本体的文档化构建和存储 构建领域本体文档,可对后续领域本体修改和进化奠定基础。1个owl文档由以下4个部分组成: ①本体首部:包含了文档的元数据,如导入数据、版本数据及与其他owl文档的兼容数据。 ②类的定义:通过(owl:class)标签定义类,使用(rdfs:subclassof)来继承1个或多个类,由此建立类的层次关系。类的语义用类的描述来表达。owl区分了6种类的描述:1个类标识,1个详细的列举,1个属性的限定,2个或多个类描述的交,2个或多个类描述的并,1个类描述的补。 ③属性的定义:owl存在2种类型的属性,即对象属性(object property)和数据类型属性(datatype property)。对象属性是用来表述2个类实例之间的关系,而数据类型属性则描述类的实例、rdf literals,以及xml schema数据类型之间的关系。属性之间还能够定义子属性关系以及为属性声明额外的特征(传递属性和逆属性)。如能够定义father是parent的子属性,定义anceator为传递属性,定义child为parent的逆属性。 ④个体(实例)的定义:一个个体是一个特定类的实例,并与其属性相联系。 2.2.4 领域本体实施和运行阶段 (1)领域本体评价 这里采用gruber在1995年提出的5条准则: ①清晰性。所定义的术语应尽量客观,避免受社会背景和客观环境的影响;给出的定义应尽可能完整。 ②一致性。即本体中定义的公理应该是逻辑一致的,概念和概念间关系在逻辑上也应该是一致的。 ③可扩展性。本体应该能够保证添加新的通用或专用术语,而不需要修改原有的定义,即能支持在已有的概念基础上定义新术语。 ④编码偏好程度最小。概念应该在知识层次上说明,而不应该依赖于特定的符号层次的编码,因为不同的系统可能采用不同的表示风格。 ⑤最小本体承诺。一般地,本体承诺只要满足特定的知识共享需求即可,这可以通过定义约束最弱的公理及只定义交流所需的基本词汇来保证。 (2)领域本体试运行 可针对某一应用目标,可利用初始生成的领域本体在特定的应用范围内进行试运行,来验证初始领域本体是否能够满足领域范围应用的需求,特别是要检验其一致性、完整性和可扩展性。经过试运行,若符合要求则转向(4);若不符合要求则要重新经过本体分析阶段,然后转向(3)与(4)。 (3)领域本体文档的修改 针对试运行的结果,可在owl文档的基础上做一些标注性的修改。 (4)领域本体应用 对于修改后的领域本体,可正式投入实际运行应用过程。 3 总结和展望 本文在总结与分析传统领域本体构建方法中的基本思想及缺陷的基础上,提出了基于软件工程开发角度来构建领域本体的思路。其中利用结构化开发方法构建领域本体整体开发流程,充分借鉴了结构化开发方法中的用户至上原则,结构化、模块化、自顶向下地对系统进行分析和设计等优点,但由于结构化开发方法中存在开发周期过长、不易满足用户需求并难易修改等缺陷,因此在领域本体构建的重要环节,即在领域本体分析阶段采用原型化开发方法,使用户与开发者通过不断地沟通尽快确定领域本体初始模型,并通过结构化开发方法所划分的层次结构过程不断地优化和修改初始模型,使其能够尽快满足用户的需求。 软件工程论文:计算机专业“软件工程”课程的教学研究 摘要:针对“软件工程”这门课的课程特点,本文提出几种实用的教学方法和手段,目的为了提高“软件工程”的教学质量。 关键词:软件工程 教学改进 实践 中图分类号: 1、 引言 提起软件,在当今社会人们并不陌生,正是由于软件的发展,使计算机应用逐步渗透到社会生活的各个角落,使各行各业都发生很大的变化。这同时也促进人们对软件的品种、数量、功能和质量等提出了越来越高的要求。然而,软件的规模越大、越复杂,人们的软件开发能力越显得力不从心。于是,人们开始重视软件开发过程、方法、工具和环境的研究,软件工程应运而生。 “软件工程”主要介绍软件工程的基本原理、开发方法和开发工具,通过本课程的学习,使学生了解和初步掌握开发1个软件项目所使用的方法和工具,以及“软件工程”的发展过程和发展趋势,为进行软件开发打下1个良好的基础。 2、 课程特点 1。 课程综合性强。 软件工程与其他计算机课程,如程序设计语言、数据结构、编译原理、数据库以及操作系统等课程都是相互作用和影响的。在1定程度上说,软件工程讨论的是在实际开发当中综合运用这些课程中讲过的理论和方法,将这些课程的理论和方法放在1个统1的目标下,这个目标就是在有限的时间及预算条件下,开发出高质量的令用户满意的软件。 2。 课程内容不断更新。 软件工程课程的教学培养目标应该以市场需求为导向,使课程培养的学生真正能够在软件行业中发挥作用。因此,在授课时,我们不能拘泥于教材内容的限制。在讲解基本原理、基本概念和基本方法的同时,介绍1些新方法、新技术。这样,有助于开拓学生的视野和培养创新意识与开发能力,使他们走向社会后不至落伍。 3。 课程的实践性强。 软件工程是1门实践性很强的课程,它是各种开发经验的总结与提炼。在学习过程中不但应注重概念、原理、方法和技术的掌握,更应注重方法、技术的实际应用。学习软件工程必须投身于软件开发的实践,才能真正领悟软件工程的精髓。 实际教学当中,这门课的教学效果往往不是很理想,教师觉得这门课教起来较困难,学生学习中多数也觉得枯燥无味,很难达到较好的教学效果或获得较强的实践能力等预期目的。如何改善?结合软件工程的课程特点,笔者认为可以从以下几个方面来改进《软件工程》的教学质量。 三、软件工程教学改进的内容和方法 1。 教学过程引入实际案例 软件工程课程涉及面很广,如果不结合实际工程项目进行教学,很难把教学内容教授给学生。因此,在教学过程中引入案例,将复杂抽象的概念用具体生动的实例进行诠释,能够收到事半功倍的效果。例如,在授课时教师可结合1个“学校教材购销系统”实例,给学生介绍具体的开发过程和方法。 另外,学校还可邀请领域内有实际经验的资深程序员,针对软件工程中具体理论和方法在实际开发中的应用,在课堂上和学生进行面对面讲座,深入浅出地作讲解。这样,学生可以更加熟悉、掌握软件开发的过程。 2。 组织课堂讨论,形成教学互动 我国有句名言:“授人以鱼,不如授人以渔”。学生是教学活动的核心,教师要利用合适的方法调动学生的积极心理和参与意识,改变传统的教师高高在上的教学方式,让学生参与教学过程,有机会发表自己的看法。 比如在讲授需求分析这章内容时,可结合“学校教材购销系统”这个案例,要求学生按照软件工程教学的思想和方法认真做好需求分析。在实施过程中,首先由学生独立思考,给出解决方案。然后在课堂上,组织学生进行讨论,分析各自解决方案的优劣,并进行综合。最后由老师进行总结和评价,指出该案例所涉及的理论知识及其应用方法,就学生提出的问题进行解答。这样通过组织学生讨论,可使学生进1步理解和掌握课程内容的方法和步骤,使抽象的知识变得看得见,用得着,大大激发了学生学习的兴趣和自信。 3。 加强实践环节 从本质上看,软件工程的实践性和综合性是其他相关课程难以比拟的。因此,必须结合设计项目和实际应用加以施教,才能取得良好的教学效果。那么,在把握教学进度的同时,必须及早安排好课程设计,让学生同步开展课程设计。这样,理论课讲完了,课程设计也基本结束,学生们能从理论和实践的结合上,加深对软件工程知识难点、重点的理解,进1步深刻理解软件过程和系统消化理论知识,训练项目设计的思路,锻炼实际开发能力,培养严格规范的项目开发方法和步骤,体验文档编写整理、阶段性评审总结以及软件测试等各个方面的工作流程,直接培养了学生从事实际开发的能力。 四、结束语 在教学中,我们还应根据学生的具体情况,因材施教。总之,通过不断改进教学,使学生能更好地理解、掌握知识,运用所学服务社会。 软件工程论文:如何面向学生主体与项目驱动设计软件工程教学模式 摘要:提出了面向学生主体和项目驱动的软件工程教学模式。从开展以学生为主体的理论教学过程、实施基于项目驱动的实践教学环节、制定符合教学特点的课程考核体系三个方面出发,对该模式进行了研究和探讨。 关键词:软件工程;教学模式;软件工程;学生主体;项目驱动 1 引言 长期以来,在我国《软件工程》课程教学中强调理论学习而忽视实践能力培养的现象比较普遍,现有的国内不少教材对实践能力的培养重视不够,表现为:①教材中的案例缺乏完整性、统一性和实用性;②缺乏与理论教学相适应的实验教材。evelyn等在他们的著作《project-based software engineering an object-oriented approach》中强调了学生具备开发项目经历的重要性,认为现有的教材过分强调软件工程理论的教学,不能有效地培养学生的软件开发技能。由于缺少软件开发各个阶段的经历,因此,学生较难理解、掌握所学的课程内容。 我们主要围绕《软件工程》课程的内容体系、教学方法、课程考核等方面对该门课程的教学模式进行了改革,其根本思想是开展以学生为主体的理论教学过程;实施基于项目驱动的实践教学环节;根据教学过程的特点,制定该课程的考核体系。我们把改革后的、新的教学模式称为“面向学生主体和项目驱动的软件工程教学模式”。 2 开展以学生为主体的理论教学过程 2.1 建立合理的课程内容体系 建立合理的课程内容体系首先应合理地选择教材,我们选用的教材为shari lawrence pfleeger 编著的《software engineering(theory and practice)》。该教材内容的特点是:①理论性,教材比较全面地介绍了软件工程中的基本原理、概念和方法;②实践性,课程的内容体系强调基本原理、方法在实践中的具体应用;③先进性,教材较为详细地介绍了软件工程中的新技术、新方法。同时,我们选用的辅助教材为清华大学张海藩编著的《软件工程导论(第四版)》。 其次,应根据学生的培养方向、学时数等因素对所讲授的内容作必要地取舍。我们以传统的生命周期方法学和面向对象方法学为主线,建立了课程内容体系,参考国内外先进的软件工程理论和应用实例,对教学内容进行了必要的补充和删减;以培养学生的软件开发过程中的技能为目标,制作了内容丰富、联系项目开发实际的多媒体教学课件;建立了较为完善的软件工程典型项目案例库,为每一个案例提供详细的分析说明;编写了供实践环节使用的《软件工程项目案例实施指南》。 2.2 开展以学生为主体的案例式教学 在教学过程中,开展以学生为主体的案例式教学,克服了传统的“教师教、学生学”的模式。在课程的开始,即将学生分为若干个项目小组(每个小组5至7人),并为每个小组确定一个负责人,各个项目小组选定一个互不相同的项目,并明确所选项目的总体要求及考核标准。教师以一个完整的项目案例贯穿于整个理论教学过程中,学生则带着自己项目中的问题去理解、思考教师所讲授的内容。学生的作业主要体现为项目的阶段性的分析和设计文档,项目小组的成员在讨论、协作的基础上,每次均以小组的形式提交作业。 2.3 建立《软件工程》课程教学资源平台 该课程的教学辅助资料围绕《软件工程》网络课程建设而展开,所建设的网络课程主要内容包括:教学大纲,教学内容,电子教案,课程习题,模拟试题,多媒体课件,实验部分,课程评价反馈等。建立网络课程平台的目的是为了便于学生进行网上自学、讨论交流、作业提交、在线测试、教学效果评价等功能,充分发挥学生在学习过程中的主体作用。 通过该门课程的理论教学改革,学生普遍反映能够较好地理解、掌握软件工程项目的开发理论和方法,和单纯的理论教学相比,改革后的教学方式更容易让人接受,学习的主动性得到了提高。 3 实施基于项目驱动的实践教学环节 我们把实践教学和项目开发相结合,实施基于项目驱动的实践教学环节。不同的项目小组开发不同的项目,学生在实践环节中主要完成在理论学习过程中形成的分析、设计文档,以小组成员分工协作的方式共同开发一个完整的项目。完成一个符合要求的项目是该门课程实践考核的主要内容。学生的学习活动是在项目开发的各项过程和活动的驱动下完成的。在具体的实施过程中应注意以下几个问题: (1)由项目负责人在课外时间召集项目组成员讨论、进行人员分工,使项目小组的所有成员熟悉和感受软件开发小组的组织和管理。 (2)实验内容应覆盖软件生存周期的各个阶段,使学生通过实验加深对理论知识的理解。项目小组的所有成员均应参加软件开发的每一个阶段。 (3)应保证实验内容具有可操作性和适当的难度。可操作性保证学生都能完成实验,帮助学生树立学习信心,并在一定程度上减少学生抄袭的现象;适当的难度有助于培养优秀学生进一步钻研的精神。 4 制定符合教学特点的课程考核体系 传统的考核方法不能在教学的过程中把握学生的学习效果,不能充分调动学生学习的主动性和提高学生的学习兴趣,课程的考核应该和课程的教学特点相适应。因此,我们制定了分阶段、互评定的二次考核体系,具体措施为: (1)课程考核由三部分组成:理论考核占40%,实践考核占40%,平时考核(作业、考勤)占20%。 (2)实践成绩的评定包括小组成绩和个人成绩两部分,各占50%。小组成绩为小组中所有成员的第一次考核成绩,个人成绩为小组成员的第二次考核成绩。 (3)小组成绩由各个小组阶段成绩的平均值与完成的项目的最终验收的情况(包括系统是否达到需求规格说明中的功能性、非功能性要求,文档是否全面、合理、规范等)组成。小组的阶段性成绩由教师和该项目组之外的其他项目组共同评定。 (4)个人成绩由教师根据小组每个成员的答辩成绩来评定,答辩的内容为小组成员在项目开发中所完成的任务,其中,评定项目负责人个人成绩时,还应考查其项目开发的组织、 管理能力。 考核结果表明,我们采用的考核方法提高了学生按照软件工程的原理、方法、技术、标准和规范进行软件开发的综合能力和软件项目的管理能力,特别在基础技能、团队协作、人际交流、项目规划几个方面明显具备较强的能力。 5 结束语 《软件工程》课程的教学模式改革主要体现在以下三个方面:在理论教学方面,以学生为主体的教学模式,表现为以分组形式的案例教学过程;在实践教学方面,通过小组内成员分工协作的方式,完成小组所选定的项目案例;在课程考核方面,制定了符合教学特点的课程考核体系。在整个教学过程中,学生始终处于主导地位,是学习的主体,教师处于指导和评价学生阶段性学习效果的地位。从学生反馈的结果来看,通过对该门课程的教学模式进行改革,使学生经历了软件开发的全过程,锻炼和培养了学生的系统分析能力、设计能力、编程能力、测试和维护能力、团队协作能力和文档书写能力,全面地提高了学生的综合素质。 软件工程论文:基于软件工程理论的信息工程监理的研究 摘要:信息工程是企业信息系统中不可或缺的一部分,其包括信息网络工程、信息资源工程、信息应用工程。该文将凭借着软件工程理论,从信息工程开发的角度,进行信息工程的三维监理,从而构建一种新型监理模式,即“三控四管一协调”。从而使信息工程监理走向更深入、更全面、更有效的水平。 关键词:软件工程;信息工程监理;监理模型 自从二零零二年十二月我国信息产业部颁布《信息系统工程监理暂行规定》(简称《规定》)之后,信息工程监理公司越来越多。根据《规定》,信息工程监理主要是指依法设立且具备相应资质的信息系统工程监理单位,受业主单位委托,依据国家有关法律法规、技术标准和信息系统工程监理合同,对信息系统工程项目实施的监督管理。[1] 1 信息工程的特点 跟其他的一般的建设工程项目相比,企业信息工程有着复杂高度、能见度低等不确定因素。其主要有以下几个特点: 1.1 组织驱动技术 企业信息工程项目的组织和建设越来越表现出不可分割的一面。工程项目组织要求信息工程必须严格确定“前期准备-工程项目规划-工程项目设计-工程项目实施-工程项目验收-工程项目维护”的“组织思维”过程,设立周密的“组织标准”通过这些组织标准来带动技术标准的设立,通过组织的需求来带动技术方面的需求,也通过组织的满意度还评价技术方面的满意程度。 1.2 全员全程参与 信息工程并不能跟那种“交钥匙”工程一样,其要求建设单位的所有员工进行全程参与。这主要是由于企业信息工程项目不并简单,而是一个非常复杂的知识传递的过程,其要求建设单位的所有员工必须学习并接受相关知识;因此建设单位与开发单位之间必须相互适应、相互协调,必须协同共进。企业信息工程系统是一个人机相结合的有机系统,没有建设单位人员的全程参与,信息工程系统将不可能实现其有效性、完整性、全面性。 1.3 复杂度高,不确定因素多 由于信息工程项目的需求比较复杂,其不像其他建筑工程那样具有可见性。检验复杂,较长的维护期,还有其它非技术因素原因导致企业信息化项目失败[2]。因此,企业的信息工程项目具有搞复杂度、低能见度,存在许多不确定的因素。 2 信息工程监理的必要性 现在,我国企业实现信息工程项目的成功几率还非常低,根据我国企业信息工程项目的自身特点,保证信息工程项目的成功几率的提高,必须进行信息工程建立,即必须通过第三方监理单位对企业信息工程项目的实施进行监督。信息工程监理将有利于开发单位跟企业的相互协调,彼此协同共进,能确保信息工程项目的有效进行。对于信息工程监理的必要性,主要原因在于:目前我国企业信息工程监理对过去传统的建筑工程监理模式进行了参考,但又跟一般的建筑工程的监理有一定的差别。第一,信息工程的可见度非常低,开发过程相当多变、复杂,其知识密度也相当高。不像建筑工程项目的监理那样能随时对施工现场进行其质量、进度进行监督管理,信息工程监理根本无法对信息工程的操作现场、质量进行监督和管理,信息工程的进合同执行情况、软件质量、资金使用情况、进度等很难把握和操控。从而致使了信息工程监理低能见度、高复杂度、差操作度等现象。为了解决这些监理中出现的问题,必须采用软件工程理论。通过软件工程,可以将高复杂度的信息工程项目进行分解,对信息工程中低“能见度”的难题设置了一套有效的解题方案。根据现有的软件工程平台和工具,将能为信息工程项目的监理提供一套“复杂度”低、“可见性”高的监理平台,很大程度上满足了现阶段我国企业信息工程项目建设的需要。 3 基于软件工程理论的信息工程监理模型 软件工程是一门通过工程化的手段来维护和构建高质量的、实用的、有效的软件的学科。软件工程涉及到的内容有:设计模式、软件标准、系统平台、软件开发工具、数据库、程序设计语言等多个方面。在目前的现实生活中,软件的应用领域非常广泛,政府部门、航空、银行、农业、工业都会应用到软件,其最具典型的软件有:游戏、数据库、编译器、操作系统、办公套件、人机界面、嵌入式系统和电子邮件等等。软件工程的应用将对社会和经济有着极大的促进作用。多年的实践证明,通过软件工程的方法对信息工程进行监理能更易被监理活动过程中的三方接受,因此将软件工程引入信息工程项目监理中,将能为信息工程项目的监理提供一套“复杂度”低、“可见性”高的监理平台。 3.1 设立信息工程监理的目标 进行软件工程最主要的目的是利用科学的有效的管理方法来促进软件开发质量的提高。其主要要求是要将过去的软件开发模式(小作坊开发模式)进行转变,对过去的开发模式其进行细分和分解,按照各阶段的特征选用不同的方法和工具,从而使复杂度较高的软件生产进行可度量、可控的设置。再者,经过对各个阶段进行严密的、有效的控制,从而促使一些可能出现的风险和问题在前期阶段就得以解决和重视,从而促使软件开发风险的降低和软件质量的提升。总之,企业信息工程监理的最主要的任务就是对工程的进度、质量、投资等进行有效的、科学的控制和规划,其最基本的方法是进行有效的合同管理、展开合理的组织协调、实现工程的动态控制、完成理想的目标规划,使监理贯穿于整个“前期准备-工程项目规划-工程项目设计-工程项目实施-工程项目验收-工程项目维护”的工程项目过程。因此,信息工程监理的最终目的是通过合同管理、质量控制、进度控制、成本控制、信息管理来保证工程项目的有效、高质量、顺利的进行。 3.2 构建信息工程监理的模型 根据信息工程监理的目标,信息工程项目应该分为:项目分析、项目设计、项目实施以及项目维护等四个阶段[3]。基于软件工程理论的信息工程监理并不是机械地复杂软件工程的相关理论于信息工程的监理中,而是根据软件工程理论,对搞复杂度、低能见度的工程项目进行设计和管理,并将其融入到信息工程的监理中去的一种方法。根据这中方法,从而建立基于软件工程理论的信息工程监理模型。该模型以信息工程项目过程控制为主线,对企业信息工程的项目分析、项目设计、项目实施以及项目维护等四个阶段进行全方位控制和监督,从管理上对其进行风险管理、需求管理、合同管理、信息管理,从控制上对其进行进度管理、质量管理、成本控制,并从管理角度对项目阶段进行总体协调,形成企业信息化项目监理的“三控四管一协调”三维监理模型。其监理模型如图1所示。 4 结束语 综上所述,软件工程是一门通过工程化的手段来维护和构建高质量的、实用的、有效的软件的学科。通过软件工程的方法对信息工程进行监理能更易被监理活动过程中的三方接受,因此将软件工程引入信息工程项目监理中,将能为信息工程项目的监理提供一套“复杂度”低、“可见性”高的监理平台。进行软件工程最主要的目的是利用科学的有效的管理方法来促进软件开发质量的提高。其基于软件工程理论的信息工程监理的模型应该以信息工程项目过程控制为主线,对企业信息工程的项目分析、项目设计、项目实施以及项目维护等四个阶段进行全方位控制和监督。 软件工程论文:基于工作过程的软件工程师职业课程体系研究 摘要:课程体系的研究,是通过对软件企业软件工程师的职业工作过程分析,建立软件工程师的职业能力模型,然后建立针对工作领域的岗位特定能力模型、行业通用能力模型、核心能力模型。根据以上模型映射出实训体系的四个组件:实训教程、流行技术、职业素质、软件素养,然后建立不同技术特点的课程开发标准。 关键词:职业能力模型;核心能力;岗位特定能力 1 基于工作过程的课程开发模式的必要性 近年来在政府推动与经济发展需求的刺激下,我国高等职业教育的规模有了很大发展;全国职业教育工作会议的召开,又为高职发展迎来了新的历史机遇。然而,我们可以在短短几年内建设起大量被称为高职学校的校舍,却无法在短期内形成真正的高职教育。受传统教育体制的影响,教材更新速度也严重滞后于软件技术发展,师资素质又得不到提高,人才培养模式缺乏创新,这种传统教育模式无法真正适应软件企业对软件人才的需求。一方面是大批企业找不到急需的技能型、实用型、国际化、规范化的软件职业技术人才;另一方面,学校培养出的软件人才由于不能适应企业需求而找不到理想的工作。如何凸显特色已经成为高职发展的重大课题;如何开发一套既适合高职生学习特点,又能增强其就业竞争能力的教材,是高职课程建设面临的另一个重大课题。 要有效地解决这些问题,建立能综合反映高职发展多种需求的课程体系,必须进一步明确高职人才培养目标。为此,不能仅仅满足于对“高职到底培养什么类型人才”的论述,而是要从具体的岗位与知识分析入手。高职专业的定位要通过理清其所对应的工作岗位来解决,而其课程特点应该通过特有的知识框架来阐明。也就是说,高职课程与学术性大学的课程相比,其特色不应仅仅体现在理论知识少一些,技能训练多一些,而是要紧紧围绕基于工作过程和工作目标重构其知识、技能、素质的课程体系。 2 软件工程师能力素质模型 2.1 软件工程师能力素质模型 职业人的能力分为三层:岗位特定能力、行业通用能力、核心能力。每个具体的职业、工种、岗位和工作都会对应一些岗位特定能力。岗位特定能力从总量上是最多的,但是适应范围又是最窄的,对每个行业来说,又存在着一定数量的通用能力,从数量上看,它比特定能力少得多,但他们的适应范围要宽些,涵盖整个行业活动领域。而整体上,存在着每个人都需要的,从事任何职业或工作都离不开的能力,这就是核心能力。核心能力往往是人们职业生涯中更重要的、最基本的能力,对人的影响和意义更深远。我们在日常生活中看到的岗位特定能力,其实是浮出海面的冰山一角,而行业通用能力和核心能力则是海面下的冰山主体,它们是每个人在职业生涯中,甚至日常生活中必备的最重要的能力,它们具有普遍的适用性和广泛的可迁移性,对人的终身发展和成就影响极其深远,目前核心能力包括:交流表达、数字运算、革新创新、自我提高、与人合作、解决问题、信息处理、外语运用。 2.2 软件工程师岗位特定能力分解 根据软件工程从业人员的岗位不同,从java软件工程师和.net软件工程师两个方面,提取了基于工作过程的能力描述。 (1)java软件工程师 (2).net软件工程师 2.3 行业通用能力分解 2.4 核心能力分解 3 软件工程师课程内涵 根据软件工程师能力模型影射出职业课程中的四个组件:实训教程、软件素养、职业素质、流行技术。 根据软件工程师能力形成规律,我们分s1、s2、s3三个阶段逐步实施。通过s1阶段的训练,学生具备了利用面向过程思想、面向对象思想分析设计解决问题的能力,掌握c/s软件体系的程序开发方法。通过s2、s3阶段的训练,使学生具备利用b/s软件体系结构进行软件开发、设计的能力;掌握大型企业级应用问题的分析、设计方法。 3.1 实训教程 “实训教程”以项目为主线,分为learning案例、training案例、mentoring案例三种。项目案例均为企业真实项目,由经验丰富的软件工程师编写而成,在实施环节由实训工程师带领学生完成。 “实训教程”重点提高学生的职业特定能力,通过项目实训,学生能够将理论知识与实际项目相结合,不但提高了软件开发技术水平,还能够具备大型项目的开发经验与行业知识,增强团队合作的能力。 3.2 软件素养 软件素养要求对软件行业知识的认识有足够的深度与广度。它是软件工程师应具备的基本素质,是软件行业通用能力,软件素养组件与大学的计算机相关课程共同培养学生的这一能力。 “软件素养”主要包括实用操作系统知识,各种软件开发团队模型的理解与认识,项目开发流程与规范,项目文档编写,软件开发中各种工具的配置与管理,设计模式的原理与实现等。 3.3 职业素质 职业素质是劳动者对社会职业了解与适应能力的一种综合体现,在软件开发中包括责任心、学习能力、创新能力、沟通与合作能力、高效的团队协作能力、积极主动的心态、扎实的工作作风、科学的工作方式及较强的解决问题能力等。 3.4 流行技术 it业正在以传统行业七倍的速度快速发展,软硬件技术在以摩尔定律的速度更新,即使学生在大学中学习的是最新软件版本与技术,毕业之后,版本也已经更新,“流行技术”正是为解决此问题而提出的,目的是让学生与it信息同步,把自我知识与最新知识做到无缝衔接。 软件工程论文:预审制度在软件工程硕士学位论文质量监控中的作用 1. 引言 软件工程硕士专业学位的设立,是我国学位与研究生教育改革的重大举措。经过近十年的发展,已经逐渐发展壮大成为我国规模最大、覆盖面最广的专业硕士学位之一。随着数量的不断扩大, 软件工程硕士生的培养中出现了不少问题。如导师难以对每一个硕士生进行悉心指导和严格要求, 而且招生生源有着不同的理论及实践基础。在这种情况下,硕士学位论文质量难以提高,因此, 确保软件工程硕士的培养质量已成为一个不容忽视的问题。需要进一步对培养质量进行审视,并采取切实措施,保障培养质量。 2. 预审制度的必要性 硕士学位论文是综合衡量软件工程硕士培养质量的重要标志。它体现了研究生综合运用基础理论、专业知识与科学方法、解决行业实际问题的能力,以及反映具有新思想,新方法或新进展的创新能力。在数量不断扩大、培养质量面临严峻挑战的背景下,科学公正地评价软件工程硕士学位申请者的学位论文, 是保证培养质量的一个重要环节。 2.1目前软件工程硕士学位论文主要存在如下的问题: 论文缺乏自己的实际创新点和具体工作。部分论文停留在对以往研究内容的重组或综述的水平,缺乏对自己实际工作的阐述和验证,技术难度和工作量不够。论文写作缺乏整体性思路,很多学生论文撰写结构欠合理,对本领域内的工程和学术动态了解不全面,缺乏实用价值和社会效益。论文格式不够规范。主要表现在各级标题字号、错别字、参考文献引用格式不够规范、图标排版不符合要求等方面。 2.2目前学位论文评阅及答辩制度存在以下问题: 2.2.1校内外评阅制度难以切实起到监控作用:以往硕士学位论文评审实行的是校内外专家的实名评阅制度,校内、校外两位专家评审意见中有一人没有通过的,就不能直接进入答辩阶段;如果两位专家评审意见都是可以通过的,就可以直接进入答辩阶段。评阅制度是对论文质量的一种监控方式,是对硕士生是否达到培养要求及质量的检验,但目前现实情况是对评审专家没有一套严格、完整的遴选机制,往往评审专家都是圈内熟人, 甚至是硕士生指导老师的好友、课题合作人等,他们事先知道论文作者和导师是谁, 碍于情面,论文一般均可顺利通过评审。即使觉得论文不符合评审要求的,也不会直接给出不同意进行答辩的意见结论。 2.2.2“双盲”抽检制度不能全覆盖所有硕士学位论文:硕士学位论文“双盲”抽检制度(即评审专家不知道被评人、被评人也不知道评审专家),在多年实践中的确是提高学位论文水平的一项重要举措,实现并达到了非常好的效果,但由于实行的是抽检机制,并不全部覆盖所有的学生,抽中参加双盲审的学生比例有限,大部分学生和导师在得知未抽中参加“双盲”后,往往对论文的重视程度不足。 2.2.3硕士学位论文答辩流于形式:学位论文答辩成员组成尽管回避了导师,聘请了一些校外企业专家,但由于答辩专家通常是由导师聘请,会导致答辩专家们答辩时往往留面子,缺乏打破沙锅问到底的精神, 即使有些专家坚持原则认真负责的, 但在投票时少数比率起不了作用, 结果常常是评审结论与实际水准不符, 答辩流于形式。目前硕士学位论文一旦进入答辩程序,就很少有不通过的,使得论文答辩本应该具有的权威性大有所失。 2.2.4无法确保论文修改质量:答辩专家即使指出论文中有些较大的缺陷和问题,需要进行修改,但是由于答辩已经完毕,并且决议通过答辩,在申请学位之前,学生就没有动力也不会去花时间对要求修改的论文内容去做充分的修改和完善。答辩专家组也很难在答辩之后继续跟踪确保对原答辩论文进行修改质量的监控。 目前学位论文评审方式与答辩方式不足以及时发现和有力遏制以上所述的问题,而学位论文作为全面衡量软件工程硕士生培养质量的主要指标,因在各环节上予以严格要求,并在制度上给予切实的保证。因此,有必要在正式答辩之前建立一套硕士学位论文质量的内部控制管理机制,以确保硕士学位论文的质量。 3. 我们的预审制度和执行效果 预审,就是在硕士学位论文成型之后论文正式评阅之前进行的一项审查过程,采用匿名方式请专家对论文进行评审、以决定是否可否进入答辩阶段的一项论文评审制度。对于达不到要求的,就要求其继续修改或者下一次再申请。设立预审制度的目的是想通过匿名评审专家组对硕士学位论文进行内容和形式上的审查,发现问题,查找缺陷,提出改进意见,并决定可否提交正式评阅并进入答辩流程,以保证论文写作和论文答辩的较高质量。这是对以往论文答辩制度的一种修正、补充。它把对硕士学位论文的质量监控重心提前到评阅前,使得学生拥有充足的时间修改论文,并采用匿名审核,力争做到公平公正。对保证论文质量有较大的作用。 3.1预审制度的主要内容 预审由硕士学位候选人提出书面申请, 经导师同意并签署书面意见后,于每学期开学后第3周之前(大致在每年3月31日前、9 月30 日前)向学院软件工程硕士教学管理中心(以下简称管理中心)提交完备的申请材料。申请材料包括学位论文一式2份以及已发表的符合学校有关规定要求的论文复印件, 并由管理中心形式审查相关培养环节是否全部完成。符合条件者进人预审程序。管理中心根据论文研究内容,选择2名以上相关领域的教授或副教授组成预审小组进行匿名预审。导师不得作为本论文预审组成员。论文预审的主要内容是审查论文选题、分析框架结构、研究方法、工作量、引用资料文献数据和写作规范、基本结论,并进行原创性审查,看是否存在抄袭、剽窃等问题。预审组在规定时间内本着认真负责的态度严格把关论文质量,对预审中提出的问题要求进行书面记录并填写《软件学院--工程硕士学位论文预审意见表》反馈至管理中心,由管理中心及时反馈预审结论至相关导师告知答辩申请人。硕士生根据预审小组提出的问题和建议认真修改论文。 预审结论分为以下几种: (1)可以参加答辩:认为论文达到了硕士学位论文水平,且不需要修改,可以直接参加答辩; (2)修改后再审:认为论文及课题工作接近硕士学位水平。但论文需要修改,并给出具体修改意见。学生需根据预审意见认真进行修改,修改后的论文经导师审查确认后,再提交管理中心提请原预审专家组审核。符合要求的,可正常参加答辩,否则就不能参加本次答辩,需整改后下一学期再重新申请。逾期未提交修改论文的,视为自动放弃本次答辩申请; (3)不通过:认为未达到工程硕士学位论文要求,不能参加本次答辩。导师应指导答辩申请人完善课题工作,修改论文,下一学期再申请参加论文预审和答辩。 (4)涉嫌抄袭:发现论文涉嫌抄袭、并经查实的,则一律退回,并至少一年内不得再申请答辩。如果以后再次发现抄袭,则直接取消答辩资格和申请学位的资格。 3.2预审制度实施效果 预审制度实施以来,迄今已经完成了对1367位硕士学位论文申请者的审查, 其中通过预审的629人、推迟答辩的167人、需要修改的544人、抄袭27人,共授予学位1143人。从总体上看,预审制度真正起到了对论文质量的监控、提高作用。由于论文预审不是最终性的,且匿名进行评审,排除了论文本身之外的因素,预审专家组本着对学生负责任、帮助提高论文质量的态度对硕士学位论文提出问题和修改建议,有助于硕士生多方位思考并对论文进行有效改进,起到了协助其导师把住质量关的作用。论文预审不仅对当事人有很大的帮助, 并且对其他准备提交论文的学生也具有很大的促进作用,导师们也更加重视论文的质量和指导。? 4. 预审制度实施的总结和思考 预审制度最主要的优势是对硕士学位申请人的论文质量进行事前监控,在正式答辩前,学位申请人能够在导师指导下根据预审专家提出的修改意见对论文进行修改和完善。预审未通过的论文不许提交答辩,这在制度上将那些质量差的论文隔离在外,有效地把好了硕士生出口的质量。 在看到预审制度效果的同时, 我们也清醒地认识到要最大限度地发挥预审的功能, 必须同时严格硕士生的开题工作,只有抓牢抓实开题工作,才能在论文工作的源头保障论文的质量;同时引起导师及其论文作者对论文质量的重视,导师是保障论文质量的关键因素,只有导师和论文作者共同重视,才能保障培养的质量。为了更好的完善论文预审制度,我们觉得今后还需要在以下方面进行进一步的改进: (1)落实论文预审的后续检查机制,预审结束后, 学位申请人应该严格按照专家提出的修改意见认真仔细地修改论文。在评阅和正式答辩阶段, 评阅专家及答辩专家除了对论文的主要工作给予评价外, 也要评判硕士生的学位论文是否按预审意见进行了修改和完善。如果后续的检查机制落实不彻底, 预审专家所提的修改意见得不到严格贯彻, 预审也难免会流于形式。 (2)预审过程中,为了避免论文预审的偏颇,尽量做到同一位导师所指导的学生论文分送到不同的预审组,以尽量提高论文预审的公正性和合理性。 (3)进一步细化预审复议环节的工作,对导师、学生提出的论文预审复议要求交由学科专业委员会复议,并指导导师、学生对论文做后续的修改。 (4)增强预审奖惩机制管理,促进导师持续关注论文质量,对预审结果优秀的老师予以适当的奖励,反之则需对导师增强后续再培训,鼓励导师改进研究生培养质量。 预审制度在我院已取得一定效果,我们将继续总结经验,不断探索和完善预审制度,切实提高我院的研究生培养质量。 软件工程论文:有关软件工程案例教学法分析 摘要:本文就案例教学法在软件工程中的应用作了初步的探讨,同时,简要介绍我们在尝试软件工程案例教学中的一些体会。 关键词:软件工程;案例教学法;分析设计 1 引言 随着计算机应用日益普及和深化,正在运行使用着的计算机软件的数量以惊人的速度急剧膨胀,而且现代软件的规模往往十分庞大,所以指导计算机软件开发和维护的工程学科—软件工程,日益显示其重要地位。然而学习者一般不好理解软件工程的实践性,不能将所学的知识真正应用到软件开发过程中去。如何将理论与实际联系起来呢?我们认为在软件工程中采用案例教学发将会弥补这一缺憾。 案例教学法以对案例的分析解决为主线,通过对案例中的问题进行分析,激发学生的求知欲,调动学生的积极性,使学生自觉主动的学习案例,掌握原理和方法,实行科学的教育思想观念的一种教学方式。它是一种互动式的教学方法,可以实现启发式教学,能够极大的促进学生的学习兴趣,实现真正的教学相长。它更是实现理论联系实际的现实可实施的途径。案例教学法在软件工程教学中的应用将在更大程度上激发学生学习的学习兴趣和参与的积极性。同时,利于学生掌握理论知识,并运用知识解决软件开发中的实际问题,最终提高教学质量,达到学校教育培养的目标。 有鉴于此,本文试对案例教学法在软件工程中的应用作了初步探讨,以期对教育同行和广大学习者有所启发和借鉴。 2 案例教学法的含义 案例教学法(case methods of teaching)可简单地界定为一种运用案例进行教学的一种方法,它是美国当今教育行业中非常盛行而有效的一种方法,在我国正在慢慢推广开来。1910年,美国哈佛商学院最先使用案例教学,开创了案例教学的先河。案例教学法于20世纪80年代初传入我国,它有利于培养学生分析问题、解决问题的能力,提高教学效果。 案例教学是在学生掌握了有关基本知识和分析技术的基础上,在教师的精心策划和指导下,根据教学目的和教学要求,运用典型案例,将学生带入特定的现场进行案例分析,通过学生的独立思考和集体协作,进一步提高识别,分析和解决某一具体问题的能力,同时培养学生的沟通能力和协作精神的教学方式。通过案例分析,学生可以获得蕴涵其中的那些已形成的教育原理、教学方法等知识,同时可以提高和发展学生的创造能力以及解决实际问题能力。更重要的是,通过案例教学获得的知识是内化了的知识,是“做中学”获得自己理解了的能驾驭的知识,不再像传统教学下获得的抽象的、过度概括化的生硬知识,它能立即被用到类似教学实践情境中去解决处理类似的疑难教学问题。所以从美国教育家舒尔1986年在美国教育研究协会(aera)年会重要演讲中发出要发展关于教学的案例知识的呼吁,时至今日,在众多国家的教育研究领域中都能发现案例教学法的应用。 3 软件工程案例的选择 概括而言,案例是含有问题或疑难情境在内的真实发生的典型性事件。没有案例,案例教学无从谈起,没有好的案例,便没有有效的案例教学,所以案例的选择在案例教学中至关重要。一个高质量的案例应该具备以下几个特点。 (1)目的性。案例教学的目的是为了让学生理论联系实际,通过案例让学生掌握基本的原理和概念,提高发现问题,解决实际问题的能力。一个好的案例应该使学生在讨论中加深对教材中某一重点或难点知识的理解和把握,能利用课堂学习的理论知识来分析和解决案例中所涉及的问题。所以案例的选择一定要围绕教学目的和教学要求来。如果脱离这两个中心,即使案例再生动,其教学效果也大打折扣。 (2)真实性。案例一定是现实中发生的真实事件,是常见又复杂的问题,有助于学生实践能力的提高。 (3)启发性。一个好的案例需要蕴涵一定的问题,能启发学生思考,发现多种解决的途径。问题越诱人深入,越能够给学生留下较多的思维空间,教学效果越好。 (4)生动性。案例必须生动活泼,引人入胜,这样才能引起学生的兴趣,以便展开深入的思考。 软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。它强调使用生存周期方法学和各种结构分析及结构设计技术,所以软件工程案例即是选择一些典型的软件开发系统,介绍其开发和维护的过程。 我们根据讲解软件工程课的具体体会和开发软件的实际经验,撰写了五个案例,开发了《软件工程案例分析》网络课件,详细介绍五个软件系统的开发过程,互动的方式讲述了用软件工程的方法是如何进行分析和设计的,同时在系统开发的每个过程中提出大量的问题供学生思考。案例选择了房产管理系统、财务管理系统、机票预定系统、计算机储蓄系统四个应用软件系统,同时为了提高学习者理解开发软件的难度,特别介绍l-simple语言编译系统。采用传统的生命周期方法学,从问题定义、可行性研究、需求分析、总体设计到详细设计做了比较详细的研究。系统中五个案例涉及到当前人们日常生活中关注的几个领域:房产管理、财务管理、计算机储蓄、机票预定,还有计算机的语言编译系统。案例既具有典型性,同时又具有真实性。我们选择四个应用软件和一个系统软件,一方面考虑到目前软件市场涉及应用范围的广泛性,另一方面考虑到软件工程学习者中大部分为计算机专业,对于系统软件也有一定爱好,对于将来开发系统软件作一个铺垫。 4 软件工程案例教学的主要环节 案例教学的需要具备三个主要环节: 阅读案例,个人分析——分组讨论,集体交流——总结归纳,消化提升 我们尝试的软件工程案例教学中同样采用了这三个阶段: (1)阅读案例,个人分析 学生首先对具体案例进行必要的基础知识的了解,认真阅读案例,并且要有个人的研究与分析,用软件工程的传统途径—生命周期方法学作为理论指导,熟悉软件开发过程各阶段的基本任务。 其次,学生需要尽快进入案例情境,了解、掌握案例中揭示的有关事实、情况,自居案例中的教师角色,设身处地地分析思考案例中教师的行为及对策的合理性与不合理性。在案例的分析过程中,要注意寻找其中的因果关系,只有弄清问题产生的原因,才可能找到问题的合理解决手段。注意区分基本性问题和现时性问题。基本性问题即抽象或一般的问题,常与事实背后的概念、原理、规则等有关,需要通过对案例中所包括的信息进行解释、分析、演绎、推理和抽象以得到概括化的结论。现时性问题即案例中教师所面对的特殊决定、疑难问题等要求在一定的时间范围内得到解决的那些问题,需将自己已有的知识或过去形成的经验与案例展示的背景材料、内外部因素等整合起来进行综合评判来提出多种经得起别人反驳的见解、对策以及方案。 (2)分组讨论,集体交流 分组讨论是案例教学中非常重要的环节,本质上是一种概念或想法的交流。围绕案例的重点,难点,疑点,进行讨论,辩论和争论。每个学生可以自由的抒发己见,相互启迪,互相借鉴,重点是想法的交流。要求每个学生简要介绍自己对软件开发所做的分析设计,并提出自己对该软件开发流程的看法,供大家讨论与切磋,可以按照案例中所提出的问题一个一个讨论。在教师的引导下,让学生进行课堂发言,进行全体学生的交流。本阶段要讨论主要解决两个问题:1、小组讨论没有达成共识的问题;2、按照教学目标,有意引导学生掌握软件工程的生命周期法各阶段所做的具体工作以及进行相关工作的必要性。 为了使分组讨论有效地开展,教师要作好充分的课前准备。除了熟知案例陈述的事实、观点外,还要谙知案例反映或蕴涵的原理、规则等知识,以便引导学生概括出来。要认真学习研究案例后给出的教学指南,具体拟定出课堂教学计划,这要求教师认真思考回答以下问题:希望课堂上发生些什么?如何引导这些情况的发生?讨论如何开展?时间如何安排?自己扮演什么角色?是先得结论再分析,还是相反?并对课堂讨论中可能出现的情况作出预测。教师还要依据课程目标、案例目标及教学计划的具体安排重点分析以下方面的内容:案例中反映的那些重要论题、案例中易得出两可结论的那些材料、案例中反映的情况发生的根源、案例中人物的行为、案例中所反映的而学生可能设想不到的情况等。在讨论掌握上,教师要力保讨论沿预期的轨道进行,把讨论引导到问题的解决上去,并引导出与论题相关的理论知识,力争班上每个学生都至少有一次发言的机会,切实做到有效参与。 (3)总结归纳,消化提升 总结归纳是软件工程案例教学的最后阶段,要求学生要对每个案例写出学习报告。该报告中包含学生在阅读案例中所得到的具体收获;通过分析与设计软件,提出自己所解决的实际问题;对理论上软件工程概念和案例中的实际是否一一相对应;以及对软件工程仍然存在的困惑。通过反思进一步加深对案例的认识,真正作到理论和实践的相结合。 案例教学中,师生都要注意角色转换,如果学生仍然热衷于将自己置身于教学过程之外,只做一名旁观者,案例教学也就失去了它的价值。学生只有真正地深入案例、体验角色,才会有案例情境的“再现”,案例教学的价值才能被体现。而教师在教学过程中也要不断变换自己的角色,可充当监督员,激励启发学生,监督案例分析、讨论情况;可充当示范员,向学生演示、讲解、分析案例中的事实、图表、材料等;可充当主人翁,制定下一步的工作计划并在实施中起主导作用;可作仲裁,解决各种争端;可充当交警,使讨论回到预定的轨道上来;等等。 5 结束语 传统的“黑板教育学”越来越受到冷落,案例教学已经提到教育改革的重要日程上来。华东师范法学教育系郑金洲曾指出,案例教学并不是单纯的一种教学方法,它实际上是以教学内容的变革为前提条件的,正是有了形形色色的案例,才使案例教学成为可能;案例教学也并不是一种单纯的教授法,它实际上也是以学生行为的转变为前提条件的;如果学生仍然热衷于自己先前的角色,把自己置身于教学过程之外,只是一个旁观者,案例教学也就失去意义。 笔者从事软件工程的教学工作,在软件工程中进行案例教学法的尝试,并且在实践中得到了一定的效果。然而,在软件工程案例教学中仍有很多问题需要进一步研究探讨,比如在案例中如何体现软件的测试阶段,它需要具体的环境来实现;如何在案例中能够让学生更深入理解软件的维护过程等等问题,都是有待于我们进一步完善,使案例教学在软件工程中得到进一步的推广。 软件工程论文:软件工程专业“计算机组成原理”课程教学探讨 计算机组成原理在我院的软件工程系被定为专业基础课,在学科体系中起着基础性和准备指导性的作用。目标是通过该课程的学习,使学生掌握计算机各功能部件及整机运行的工作原理和方法,并为学生建立起整机的概念。为后期的系统开发的理论、实践的学习奠定基础。但该门课程具有概念多、知识点多、内容抽象等特点,加上学生思想上有“偏软”现象,使该课程的组织教学有一定难度。本文将对计算机组成原理的教学现状、教学方法、教学内容、及通过实践等辅助教学手段来改进教学等方面进行阐述,以期对一般本科院校的计算机组成原理教学有一定借鉴促进作用。 一、计算机组成原理的课程的教学现状 (一)课程本身的特点决定这门课程教学难度大 1、基础概念多的特点 计算机组成原理这门课程由于内容较多,所涉及的基础概念也较多。在cpu模块有微程序、微指令及流水线等系统类概念,其中alu部分有原码、补码等与编码相关的概念;在存储器部分,与存储器单元相关的有ram、sram、dram、rom及各种rom设备,与存储系统相关的有cache存储器、虚拟存储器等概念;外设部分有中断等信息的各种传送方法。对整个计算机系统,有计算机的各种性能指标。对各个概念,靠单纯记忆的方法很难掌握,必须放在系统中学习。 2、理论性强的特点 计算机组成原理这门课程首先要考虑其原理性,现在仍然采用冯.诺依曼式计算机模型作为基本模型,但也要考虑现代计算机的发展,以融入实际的需要。如何对内容进行合理的安排、衔接,对任课教师来说,是一不小的挑战。 3、内容抽象的特点 要让学生明白计算机的工作原理、方法和实现,需弄清数据和信号在计算机各部件件间的流动情况,对学生来说,这看不见也摸不着,如何将信息流动的复杂情况形象、生动地向学生展示、讲解,教师对此需要作出相当的努力。 (二)学生对该们课程的认识误区 大部分的学生认为,我们学的专业是软件工程,专业是“偏软”的,而计算机组成原理这门课程是“偏硬”的,对其转为实际能力表示怀疑。由于对这门课程在学科中的作用认识不明确,在学生中就有一种印象,学习这门课程主要目的是修学分的需要,另外还有考研的需要,但考研的学生比例较小,再加上这门课程本身的学习难度,因此认真学习且能学好这门课程的人数就不多了。 二、对组成原理教学的几点建议 (一)对学生对该门课程的认识进行相应正确引导 由于是一门基础理论课,加上本身的教学内容特点,可能内容较为枯燥,因此学生可能会因为课程内容本身而不感兴趣。因此我们要在思想上要对学生加以引导,使学生认识到,学习这门课程不仅对计算机本身的运转有更深刻的认识,更对与硬件相关的嵌入式系统设计,软件的设计实现有基础指导作用。并为学生在计算机领域的进一步研究和发展奠定基础。因此,学生不能因为这门课程“偏硬”,而自己的专业和就业方向“偏软”就否定这门课程的重要性。 (二)根据课程设置需要对教学学时进行相应调整 根据不同的专业,学生的不同层次,及大部分学生的就业方向对该课时设置不同的教学学时。报告[3]中指出,对于多数调查对象为毕业生的调查结果,多数人认为这门课开设为64、48或32学时。而48学时的人稍多些。这与本人想法基本一致,对于非计算机专业,作为导论型的,32学时足矣;对于软件专业,其目的主要是通过掌握其基本原理,能更好的为软件系统的设计服务,开设48学时,其中8学时实验较合理。而对于偏硬件的计算机专业,可以根据需要,开设56或64学时。 (三)根据专业要求及课程设置对教学内容作出调整 计算机组成原理在学科中的地位被定为专业基础课,在学科中具有承上启下的作用,希望通过本门课程的学习,使学生对计算机硬件的组成、各部件及各部件之间运转情况进行了解。对于软件专业的学生来说,为硬件相关的嵌入式系统设计及其他软件的设计奠定基础。计算机组成原理从内容上主要分为三部分:cpu、存储器、外设。但由于学时的限制及课程的安排(本专业开设了微机原理课,外设是其讲授重点),重点讲授cpu和存储器两部分。存储器内容分为主存储器和存储体系两部分内容。前者讲述存储元器件的基本原理,而后者则是cache、主存和辅存之间的区别与联系,如果开设了计算机体系结构这么课程,这存储体系的内容可简略介绍,具体内容由计算机体系结构讲解。cpu部分与存储器一样,在详细介绍完其核心部件alu后,重点即是中央处理器章节,即指令的运行,而指令的运行需要访问存储器,这就将cpu与存储体系联系起来了。故这两部分又是有联系的。由此有关硬件的内容就脉络清晰、分工明确了。 (四)对实验内容进行合理的学时分配 实验课对于一门课程来说,主要目的是加深对知识点认识,使抽象的理论变得形象、具体。因此,对本身理论性强,内容抽象的计算机组成原理课程,实验课就显得尤为重要。我们采用的是西安唐都科教仪器公司生产的实验箱作为实验设备。与其相配套的实验有9个,其中主要包括与cpu中的与alu相关的3个实验、静态存储器存取实验、微程序控制实验及4个模型机的设计类实验。根据实验学时的设置,只有8个学时的实验课。8个学时全部完成这些实验有一定难度,因此,可将这些试验进行合理的学时分配,如第1、2个学时完成第一、二个实验,因为刚开始做硬件实验不熟悉,但第二个运算器进位实验教简单,可顺便完成;有了前面的基础,完成第三个运算器移位控制实验就简单多了,因此和第四个稍麻烦的静态存储器存取试验合并在第3、4学时完成;第5个实验内容较复杂,可单独安排2个学时完成;这样就留出了2学时来研究后面的模型及设计与实现的实验了。 (五)以实践为手段带动学生的学习积极性 为了提高学生的学习积极性,加深对知识的掌握,实践就显得尤为重要。对软件专业的学生来说,利用软件对所学知识进行模拟不失为一种好的办法。对于计算机组成原理这门课程,实验内容较为抽象,不易被理解,因此,采用“硬件软化”的方法,对课程的实验内容等进行模拟,既可加深对知识的掌握,又可提高大家的软件设计、编程能力。本系为了提高大家参与的积极性,采用了学生科技立项的办法,系里拿出一部分资金,将“计算机组成原理虚拟实验系统的设计与实现”作为一学生科技项目,鼓励学生组队参加,和其他项目一起参加评比,并进行奖励的办法,在学生中得到了良好的响应。学生做出的项目教师可拿来作为课堂教学用,并可鼓励学生在此基础上进行改进,进一步完善。以后甚至可以将系统分块,让学生分组做,并作为课后作业的一部分,计入学生平时成绩。以此提高学生的学习兴趣和动力。 三、结语 计算机组成原理这门课程由于其本身知识点多、内容相对抽象、知识“偏硬”等特点,对软件专业的学生来说,普遍学习的积极性不高,对知识的掌握不能达到预期的目的。本文从对学生的引导、课时的设置、教学内容的调整等方面进行了讨论,特别提出通过“硬化软件”的方法,提高大家学习的积极性。相信经过多方面的努力,学生会喜欢并学好这门课程,该课程也将很好地发挥其在学科体系中的作用。
软件开发论文:给排水专业CAD软件开发方法探讨 提要 本文结合笔者实际工作经验,分析了国内给排水专业CAD软件开发及应用现状,探讨了给排水CAD软件开发的原则、思路、方法及步骤等,并给出了开发实例。 一、给排水专业CAD开发应用现状 在工程设计行业,CAD技术的应用大大提高了设计及绘图效率。CAD应用软件的开发也越来越重要。 在给排水设计领域,CAD开发应用起步较晚。有些设计院从八十年代末开始尝试进行CAD开发,但进展比较慢,多数是图块和小型实用程序,在深度和广度上都存在着差距。从1993年以后给排水CAD开发步伐开始加快。1994年底全国给排水学会和给排水技术情报网组织召开了“计算机技术在给排水专业应用研讨会”,对给排水软件开发起了积极的促进作用。 目前在给排水CAD开发方面已经取得了可喜的成绩,尤其是建筑室内给排水方面涌现出一些比较优秀的给排水CAD软件,如洛阳的一家软件和北京的几家软件。这些软件都具有计算机辅助设计建筑给排水平面图、自动生成系统图、自动统计材料表;进行室外给排水管网计算、自动生成图形等功能,其中个别软件已在室外设计和泵房设计等方面有了新的进展。 现有软件都偏重于民用建筑给排水方面,而且也有待于继续完善、发展。在给排水的其它领域,由于难度大,投资回报较低,软件公司还不愿涉足,所以进展缓慢。应用CAD进行给排水及水处理系统的优化设计更是少有人涉足。此外,目前还没有专业设计CAD软件的标准和规范。商业化软件多数都不经过权威部门严谨的技术测试和鉴定,所以其数据库、计算方法、设计方法和生成图形的准确性还没有严格保障,这一点还可能成为工程设计质量的隐患。 现在设计部门的给排水CAD应用水平也参差不齐。有的购买或自行开发了给排水专业软件,提高了设计绘图效率。有的只是在用AutoCAD的简单命令绘图,虽提高了CAD出图率,却根本谈不上利用CAD提高效率。给排水专业CAD应用水平还有待于进一步提高。 目前许多有精力的设计院及研究部门都在研究开发本单位适用的专业软件及应用程序,但由于开发经验不足,成绩不明显。本文将结合笔者的工作经验,着重论述有关给排水软件开发的原则、思路、方法及步骤,旨在抛砖引玉,促进给排水CAD软件开发工作。 二、给排水软件包开发思路及原则 由于现有建筑给排水软件已经比较成熟,且仍在继续开发、升级。一般开发者在水平和起点上均与这些软件开发有一定差距,所以应该购买此类软件,而着重开发适合本单位使用的实用程序、应用软件或优化设计软件。高起点开发者则应在深度及广度上向更高层次冲击。 1.给排水CAD软件开发依据及原则 (1)设计依据为有关设计规范、制图标准以及设计手册等;保证数据库、计算方法和设计方法的准确性。 (2)软件包开发设计首先要突出专业水平,把专业设计思想转化为计算机语言是专业软件包的关键所在。 (3)符合设计人员思维习惯及设计习惯,人机界面友好,操作简单,易掌握。 (4)适用性强,容易修改,容易扩充,容易发展。 (5)尽量使用效率高、功能强的计算机语言及开发工具。 (6)严格执行标准化及规范化。 (7)通过自动绘图以及建立标准图库,提高图纸复用率等途径,提高设计绘图速度,真正发挥计算机的优势,把设计人员从图板上解脱出来。 2.设计开发步骤 (1)开发适合于给排水专业应用的CAD软件环境,包括AutoCAD的优化配置及常用专业图块及绘图工具。 (2)开发一些独立的专业绘图软件,发展标准图形库,由浅到深,从易到难,逐步提高自动成图及图纸复用比例,使软件包成为覆盖面广,功能齐全的专业绘图软件包。 (3)开发给排水专业高阶段设计方案优化软件,以及设计、绘图一体化软件,逐步成为智能化、自动化程度较高的专家系统软件包。 3.开发人员配备软件开发是一项较复杂的脑力劳动,对开发人员要求也较高,专业软件开发人员大致可分为以下几个档次: (1)初级水平:专业人员掌握一些基本计算机知识及开发工具可以进行一些专业图块制作,简单的实用程序开发。 (2)中等水平:较高专业水平加上较高计算机水平。熟悉专业设计习惯,有较丰富的设计经验的专业人员,如果掌握先进的CAD开发技术,可以开发出较高水平的CAD应用软件,可以提高设计效率,特别是可以大大提高绘图效率。 (3)高级水平:高深的专业水平加上先进的计算机开发技术。在专业方面应该熟练掌握专业基础知识,有丰富的工程设计经验,善于总结专业设计思路,发现规律,具有较强的系统工程及方案优化水平。在计算机方面要掌握LSP、ADS、DCL等开发工具(或其它高级开发工具)。这类人员开发专业CAD软件是最理想的。 由于给排水专业涉及面广,而且不同行业给排水设计习惯也不尽相同,不可能有软件可以覆盖所有给排水领域,适用于所有设计院,所以目前仍然需要分行业、分类进行开发。前述的个别建筑给排水软件包及开发人员属于较高水平,其开发设计思路非常值得向给排水其它领域延伸。 4.开发工具(软件方面) 目前较常用的CAD开发工具主要有AutoLISP语言、ADS、DCL语言以及数据库处理,也有的开发者使用BASIC、FORTRAN等高级语言与AutoCAD的图形数据交换接口进行开发;还有用C++开发或用VB等在Windows界面下开发的;此外,网络技术也越来越重要。 开发CAD软件,需要非常熟悉Auto CAD命令,以及其中的各参数、系统变量、图层、图块、线形等,这样才能方便灵活地在程序中执行各种命令,掌握CAD开发技巧,例如图块的属性可以带许多信息,一条LINE线的厚度可以存入管道的管径等。此外现在有些软件使用数据的后处理方式,使软件和AutoCAD结合得更好,这些技术还需要对AutoCAD图元数据库和数据图形交换等有更深的了解。 AutoLISP是在AutoCAD内部使用的语言,用AutoLISP编辑的程序可以定义变量,对数据进行处理和作出图形,并可能自定义函数,比较适合搞人工智能工作,特别是它的表处理功能以及递归等功能比较独特,在CAD工作中它可以独立工作,也可能与DXF图形交换文件互相配合。其不足之处是速度慢,且程序代码几乎无法保护。 ADS是AutoCAD11.0版以后新增加的用来开发应用的一个C语言编程环境。它运行速度快,代码保护性好,能更有效地利用内存空间以及访问设备与系统,具有更强大的开发功能。但掌握ADS要比LISP困难,要求开发人员具备C语言编程经验并熟悉ADS库中各函数用法。一般商业软件应该用ADS。 AutoCAD还提 供了可编程对话框(PDB)工具,使用户可以结合自身专业特点,用DCL语言构造自己的对话框,从而改善界面,提高CAD软件效率。 目前最流行、最实用的专业CAD开发工具是ADS、DCL,加上少量AutoLISP。 三、开发过程1.专业绘图环境的开发 (1)AutoCAD的配置及改善 a.选择AutoCAD版本。目前最常用的是汉化AutoCAD12.0版。但其汉字输入不太方便,应配上较先进的汉字系统,或用12.0版forWindows(中文)。 b.对AutoCAD系统变量进行重新优化配置及设定,主要包括系统变量及尺寸变量设置,层、线形设置等,使acad.dwg成为理想的样板图。 c.对acad.mnu进行优化,将许多常用命令放在最容易拾取的位置或固定位置。专业菜单部分可加入acad.mnu,也可以独立编写。 d.利用acad.pgp做简化命令(10.0版以前的版本可在acad.lsp中用defun函数设定),编写acad.lsp。 (2)专业绘图功能 a.专业图框绘制:可由菜单点取或用屏幕幻灯菜单点取,自动生成各种图框。 b.专业常用图块:由菜单点取生成,自动插入断线。 c.开发实用的专业绘图工具程序:如标注标高、管径、坐标、管道立管、代号、各种管件等的程序,绘制单、双线管道的程序,生成专业设计说明、图例、专业词组的程序,以及文字、线形、线宽编辑和表格操作等实用程序。 d.开发或引进建筑图绘图程序。 专业CAD软件包都应具有高效的绘图环境,否则一旦自动生成等功能出现故障或不能适用时,用户就只能用AutoCAD简单命令来画图了。 2.专业绘图软件的开发 在专业绘图环境的基础上逐步开发一些相对独立的专业绘图软件,逐步形成功能强,覆盖面广的给排水综合软件包。 目前已开发的较成熟的软件有:民用建筑给排水CAD软件包、室外给排水管网计算软件、给排水管道纵断面图绘图软件、给排水外部管网设计软件等。 正在开发,初见成效的软件有泵房设计软件、平流沉淀池软件、机械加速澄清池软件、和市政管网CAD软件等。 尚未深入开发,开发难度大,但预期效果好的软件包括:辐射沉淀池、旋流沉淀池、水塔、综合管沟、架空管网、过滤间、软水站、污泥脱水间设计等项目。 给排水软件开发的另一条思路是发展给排水设备和构筑物的标准CAD图形库,从而提高图纸复用率,这比编制自动成图的软件要容易得多。标准CAD图形库还可以由权威部门编制后,作为标准图出版。此外,标准图还可作为软件包的一部分,即软件包可以交互式自动生成图形,也可以通过自动计算直接调用相应的标准图。 3.高阶段设计及方案优化设计软件的开发在 利用CAD进行高阶段设计及方案优化设计方面,除在民用建筑给排水领域有个别公司研究外,在其它给排水领域中的研究国内还未见到报道。方案优化软件的难点在于系统化的设计思路和设计经验向计算机程序的转化,其中给排水及循环水流程的方案优化模型的建立本身就是给排水设计的一个难题。目前这方面进展缓慢的原因首先是它对开发人员要求高,这一领域的理想人选稀少;其次是给排水专业行业多,领域广,需开发的软件工作量巨大,具备这方面精力的研究部门或公司还很少。 总之,给排水专业绘图软件包开发是一项艰苦的工作,需要创造一个规模生产,流水线开发的环境,投入一大批高层次的人才。各部门的研究人员既要知难而进,又要避免重复劳动,在各行业、各领域开发出各有特色的实用专业软件。 四、给排水CAD软件包开发实例———BYWAT 1.软件包结构 专业绘图环境-CA AutoCAD12.0汉化版 AutoCAD配置及改- 系统配置 参数设置 菜单优化 命令简化 专业绘图功能- 专业图框绘制 专业图块绘制 专业工具程序 绘建筑图程序 BYWAT-(2.0)b. 专业绘图软件- IS泵及S泵基础绘图软件 水泵底座绘图软件 材料表等填充软件 给水管纵断面图绘图软件 排水管纵断面图绘图软件等多常 2.软件包主要技术特点 (1)符合设计人员设计习惯,简便易学。 (2)速度快,可提高设计绘图速度3到5倍。 (3)可由用户幻灯菜单自动点取专业图框。 (4)有丰富的专业图形符号,插入时管道自动断线。 (5)可方便地绘制建筑图。 (6)具有各种类型的标高、管径、坐标等标注功能以及一些方便实用的程序。 (7)绘材料表只需在屏幕菜单中点取材料名称即可将名称、材料、单位、标准图号等填入材料表中的合适位置,序号、数量也特别方便,速度快,辅助功能及提示功能强。如果需要,还可以自动填入单重,自动计算并填入总重。 (8)各型号水泵基础自动绘制,半自动生成水泵底座图形,自动计算和生成材料表。 (9)给排水管道纵断面图软件交互式、参数化绘图,可自动计算,并有辅助功能。 3.专业软件实例———排水纵断面图绘图软件 给排水纵断面图在冶金给排水设计中约占施工图总量的近10%,规律性也较强,较适合开发专业绘图软件。本软件原采用LISP语言编写,由主程序及辅助功能组成,包括程序600多句和几个图块、幻灯等。其中主程序结构较复杂,多处使用循环语句及LISP语言擅长的表处理语句。软件完全按照冶金设计院设计绘图习惯及顺序设计,操作特别简单,用户只需交互式输入简单的参数,即可完成完整理想的纵断面图。 输入比例尺后,程序自动绘制排水纵断面图表头。此后按顺序输入节点,节点平面距离、管径、地面标高、管内底标高、坡度、管材代号、平面示意图种类后,程序即可画出这段管及有关的全部文字、图形,并计算出下一点的管内底标高。以后每输入一段管的参数,即可画一段管,与前段管相同不必重新输入。每个井均可有跌水,软件还可自动画出各种平面示意图。同一表头内可结束一条管,再给起点画下一条管。软件的辅助功能可进行交叉等处理。此外软件还有较强的容错功能。 改进以后,加入可编程对话框,每确认一个对话框即可画一段管,使输入更加简洁。软件还可以从已编写的数据文件中提取数据自动生成图形,这也为从外网平面图直接提取信息生成纵断面图打下基础。 用给排水纵断面图软件绘图,比手工快5倍以上。 软件开发论文:计算机软件开发与用户实践的提升策略 1在设计方面要考虑用户对软件的印象 根据调查显示,网络用户在快速阅读过程中通常会呈现出“F”型的习惯,也就是在特定时间内,用户迅速浏览网站的时候会先看到网站的顶端与左侧内容,而中间的内容只能够被阅读到一部分。所以我们在设计网站界面的时候可以遵循“F视线追踪原则”,将各个部门按照主次次序放置到框架之中。如果一个网络用户在浏览到一个新的网站的时候,如果在三分钟之内还没有发现能够吸引自己兴趣的内容,那么这个网站就会100%地失去这个客户。在近几年,许多软件开发公司喜欢用过去的项目模版来设计主界面,这无形中是有利于提高软件开发速度,并且减少耗费创新技术、思路的时间与风险,然而如果一个软件产品长期保持一成不变的风格,那么就不会为用户留下深刻的印象,进而失去市场竞争力。软件开发商必须要根据商业营销学的理论,寻找到自己的目标客户群体,之后根据这个客户群体的偏好、特征来设计软件界面的整个风格,让使用者可以看到产品第一眼后产生一种与众不同的感受。 2在程序选择方面要注重优化与处理效率 我们在软件产品设计的算法方面要注重优化设计,当软件运行过程中耗时较多就需要我们注意处理、降低广大用户在等待过程中的不满情绪。随着科学技术的不断发展,计算机性能与运算速度的不算提升,诸多程序开发工作中将程序运行缓慢的原因归咎于计算机的问题,不会从自身编程过程找原因,因此软件开发工作效率较低,许多软件产品恶评较多,所以我们需要在能够控制的范围中优化程序代码,给予用户们科学、高效的产品体验过程。针对一些确实耗费时间的操作软件,我们可以通过进度条显示、后台运行等方式来调整,让用户心理上顺畅。笔者曾经有幸亲自参观了某通讯公司新任务的运行体验,工作人员每次点击用户的查询请求,在系统返回的时候需要几秒钟甚至几十秒钟,使得该公司用户抱怨数量众多,而这正是缺乏优化功能的原因。 3产品功能设计要结合人性化与灵活性的特征 传统设计受到信息化社会发展的影响,使其正处在改造进程的关注对象。当前计算机发展所带动的现代技术发展并没有到达高潮,但是计算机作为理想化的设计工具,正在逐步改革自身的设计途径、方法、过程,并逐渐迈向到数字化设计的时期。如果我们说数字化是现代社会的发展特征,那么人性化的设计就是对这种存在具象的诠释。我们在产品设计过程中,尽管存在着模块化设计的理论,但是作为产品设计者的我们不能忘记软件产品最终是为大众服务的,必须要将用户体验过程放在首要位置。另外,在软件产品设计过程中,要注重业务模块之间相互搭配的灵活性属性,不能盲目追求大众的操作形式。在广大用户使用计算机产品过程中,随着人们的个人喜欢与聚焦点不同,使用产品的方式也是具有差异性的。笔者曾经设计过一套工程方面的预算系统,部分用户关注最后的造价,而另一部分用户关注的是建筑材料的使用状况,侧重点不同导致自身操作步骤也是不同的,因此我们在设计产品过程中需要注意到这一点。 4结束语 随着科学技术的不断发展,用户对于计算机软件设计水平的需求不断提高,软件开发工作者务必要对目标群体进行深入性研究分析,要真正地了解到用户群体喜欢什么样的软件,需要什么样的软件,关注什么样的团结,从每种软件的运行界面、使用功能、运用条件等诸多方面来实现软件的优化设计,站在用户的角度来面对软件的多个问题,只有遵循这样的原则,才能够满足诸多用户群体的需求,开发出优质的软件。 软件开发论文:软件工程在“软件开发设计实训”课程中的应用 笔者所在学院的软件工程系是成立于2005年的新专业,为校级特色专业。近年来,随着对软件工程特色专业建设进程的推进,课程体系日趋完善。针对软件工程学科具有理论多且实践性极强的特点,本系较大幅度地加大了实践类课程和环节所占的比例,“软件开发设计实训”便是其中很重要的一门实践课程。由于软件工程学科发展速度很快,在软件产业不断发展,全国对高素质的软件人才的需求量激增的形式下,迫切需要研究和探索实践类课程的教学模式,激发学生学习兴趣,以更有效的手段和方式提高教学和指导质量,为培养更加符合社会实际需要的软件开发人才打下坚实基础。在我校教改基金的资助下,依托软件工程教学团队,本文对将软件工程应用于“软件开发设计实训”课程的教学模式及主要措施进行探讨。 1 选择适当的软件工程过程 “软件开发设计实训”课程的主要目的是使学生学会用面向对象的设计方法设计实际系统。结合软件工程学科的发展和应用现状,软件开发过程主要采用rup(rational unified process,统一软件开发过程)的方式组织软件开发。rup是风险驱动的、基于use case(用例)技术的、以架构为中心的、迭代的、可配置的软件开发流程。 rup分为初始、精化、构造和交付四个阶段,各阶段涉及多种工作流【1】。rup的核心工作流主要包括: 需求捕获工作流:需求捕获通过对问题的理解和分析,确立问题涉及的信息、功能和系统行为,将用户需求精确化、完全化。需求的焦点主要在初始和精化阶段,在精化阶段后期,需求捕获的工作量大幅下降。 分析工作流:分析的主要工作开始于初始阶段的结尾,和需求一样是精化阶段的主要焦点。精化阶段的大部分活动是捕获需求,分析工作与需求捕获在很大程度上重叠。 设计工作流:设计的主要工作是位于精化阶段的最后部分和构造阶段的开始部分的主要建模活动。系统建模最初的焦点是需求和分析,在分析活动逐步完善后,建模的焦点开始转向设计。 实现工作流:实现(实施)是关于把设计模型转换成可执行代码的过程。从系统分析师或系统设计师的角度看,实现工作流的重点就是完成软件系统的可执行代码。实现工作流是构建阶段的焦点。 测试工作流:测试是一项相当主要的工作。测试工作流贯穿于软件开发的整个过程。它开始于软件开发的初始阶段,而细化阶段和构造阶段是测试的焦点。测试是为了找出程序中的错误与缺限,而不能证明程序无错。 rup就像一个元过程,通过对rup进行裁剪可以得到很多不同的开发过程,非常灵活,所以可以将其按本课程需要进行精简,从而把深奥的理论指导融入具体软件项目的开发设计中,让学生更加深切地体会到什么叫学以致用,消除畏难情绪,培养和增强在软件开发设计中自觉遵从软件工程思想的习惯。本课程使用的case(computer aided software engineering,计算机辅助软件工程)工具集采用sybase公司的powerdesigner。 2 将有价值的软件工程知识引入课堂,教学采用项目贯通案例 为让学生在中小规模的实训项目中也能体会到较大型项目通常会用到的一些软件工程技术,让本课程更有实用价值,教师需要对学生补充一些软件工程相关知识,包括:设计模式、架构设计、类的持久化以及数据库设计、面向对象实现以及文档的书写这四个方面。 为配合上述四个方面的软件工程相关知识的介绍,教师采取“项目驱动的案例教学”方法【2】,在课堂讲授中引入一个完整的、规模适中、难易适度的软件项目案例。该案例需要通俗易懂而又具有实际意义,涉及的应用领域应该是学生较为熟悉的,这样理解起来更为容易。以此案例完整的开发设计过程为主线,借助这个贯穿整个课程教学进程、文档齐全的完整案例来将软件项目开发设计过程中的各个环节串连起来,着重展现上述四个方面的知识运用,让学生熟悉和掌握软件开发设计的具体实施步骤和技术。 3 学生实践环节分小组按项目方式进行 由于在本实训课程之前学生已经学习过一门先导课程:“软件需求分析实践”,所以可以把学生仍然按照在“软件需求分析实践”课程中的各小组成员组成来进行项目分组,这样各小组便可将该课程中的最终成果——《软件需求分析规格说明书》作为本课程的起点来进行,需求捕获工作流便只需粗略进行。由于本课程侧重于软件开发过程的分析工作流和设计工作流,对实现工作流和测试工作流也只作粗略涉及。 每个项目小组通常为3到5人,分组时采用了优势互补的方式,注意合理搭配,尽量让每组各个成员具有不同的优势能力,并让其民主推选一名组长负责组内的组织和协调【3】。 教师的项目贯通案例教学分阶段间插在学生实践过程中,每介绍一个阶段的rup理论,就紧跟几次课的学生实践环节,如此交替进行,当教师的教学案例施教完毕,学生的项目也同步进行到最后阶段。 项目进行中模仿软件公司的例会形式,定期由项目小组长召开小组讨论会(如每周一次),对最近这段时间的项目进展情况和技术问题进行讨论。每个开发设计阶段结束时教师均要求各小组给出相应的文档,且每个阶段完毕要进行一个模拟的里程碑式的评审(教师参与作为评审团的一员)【4】。 教师还应在课程即将结束的最后课时中对各小组的项目完成情况及普遍存在的共性问题作一个分析总结,并让各小组组长总结本组项目完成的经验教训,以利于同学之间取长补短,活跃思维,提高分析总结问题的能力。 4 依托教学团队,理论及案例部分采用轮流授课法 笔者所在的软件工程系于2009年底成立了软件工程教学团队。团队兼顾了职称、学历、教学、科研的合理搭配,由有大型项目开发和管理经验的老教师提供指导来提升年轻教师的教学能力,并让其参与到科研项目中积累项目经验。本课程的任课教师均由该团队中选出。本课程所用的《软件开发设计实训指导书》的编写由各任课教师分工完成,每人负责完成一章内容。本课程每个教学班安排30人左右,各教学班的教师全程负责该班整个课程的实践指导环节。而理论及案例讲授部分的教学则采用轮流授课法,实施方案是每个阶段的课堂讲授由编写实训指导书的相应章节的教师对全体教学班集体授课,其他教师同时到场辅导。具体各阶段的课堂讲授内容安排如下: 1)rup总论以及课程概述 2)设计模式 3)常用的软件架构风格及适用情况分析 4)对象持久化与数据库设计 5)面向对象实现及文档编写与整理 对应进行的学生的各阶段实践任务如下: 1)按既定方式确定各小组成员和组长,并且重新审核各组在先导课程“软件需求分析实践”中的最终成果《软件需求分析规格说明书》,进一步完成分析模型,得出用例图,分析类图,序列图及协作图。这一阶段学生需提交分析模型文档。 2)按照设计模式重新设计类。这一阶段学生需完成两个任务:一是实现设计模型中的具体设计类,具体要求学生:使用设计模式和机制;创建初始设计类;确定持久类;定义类可视性;定义操作;定义方法;定义状态;定义属性;定义依赖关系;定义关联;定义内部结构;定义泛化关系;解决用例冲突。二是完成用例实现的设计,主要设计模型内的协作关系,以设计类及其对象为基础,描述各个特定用例的实现和协作。这一阶段学生需提交设计模型、类图和用例实现。 3)完成架构设计。这一阶段学生需要设计包结构,完成系统设计模型图的实现子系统、接口设计类及架构模型(组件图),重新审查用例模型,得出用例模型的架构视图。这一阶段学生需提交子系统设计文档、接口设计文档及架构模型文档。 4)根据持久类以及数据库知识对数据库进行设计(包括字段编码设计)。这一阶段学生需提交数据库设计文档。 5)本课程的最后阶段。完成实施模型(部署图);完成界面以及输入输出(报表等)设计;完成具体子系统的编程工作,并进行二次迭代重新审核前面的设计部分;整理测试报告;整理文档并编写软件使用说明书。这一阶段学生需提交组件图、部署图、输入输出设计说明及具体子系统代码执行程序。 5 考核方式强调过程考核,开发设计能力与书写文档能力并重 本课程的实训目标是使学生能综合运用所学的知识进行中小型应用项目的软件开发设计。为此,我们提出了本课程考核的指导思想:重视实训过程,看重软件开发设计能力的提高,采用复合考核的方式,课程成绩由平时考核、过程考核和项目验收答辩成绩组成。重点突出“会不会做”,强调对学生的实际开发设计能力考核,同时注意防止轻视书写文档的观念。这种考核方式不但能更客观地反映学生的学习情况,还能引导学生有意识地加强软件开发设计技能的培养,开发设计能力与书写文档能力并重,更利于达到预期的教学效果。本课程具体的课程考核成绩组成如下: 1)平时成绩*10%(考勤成绩*50%+小组开发设计工作中的合作精神表现*50%); 2)阶段考核成绩*60%(五个阶段,各阶段的能力表现及提交的文档各占20 %); 3)项目验收成绩*30%(项目文档汇总整理占50%,项目答辩50%)。 6 结束语 “软件开发设计实训”课程是软件工程专业实践类课程中非常核心的一门,其实践性和综合性都很强,能集中训练和提高学生进行软件项目开发和设计的实际技能。其教学实施过程不应被视为只要学生针对项目要求能编写出相应的软件即可,而更应注重软件开发设计过程的方法和技能的培养,以培养具有软件工程思想的真正符合社会需求的软件人才。本课程应紧随软件工程学科的发展而不断更新。在今后的课程开展过程中,其教学模式和措施还需要不断创新、总结和改进,需要持续不断地研究和探索。 软件开发论文:计算机软件开发技术的应用 21世纪是计算机化、信息化的时代,在这个时代,计算机网络成为信息传输媒介,软件开发技术成为计算机未来发展的导向。为了满足计算机网络对软件不断增多的需求,软件开发技术必须不断发展,才能为构建完善的计算机网络系统提供可能。 1 计算机软件开发技术概述 计算机软件主要指系统软件、应用软件。系统软件是监控、管理和维护计算机的软件,比如操作系统和自检程序等。而应用软件则是解决用户具体问题的软件,比如人事管理软件和学习管理软件等等。不管是系统软件还是应用软件,都为用户提供了利用计算机代替或简化一种计算机的工作环境,对于用户来说,接触计算机其实是接触计算机软件。早在20世纪五六十年代,计算机软件的开发多是手工方式,这种软件开发技术不仅出错率较高、生产效率低下,而且不能满足软件生产需要。随着商品化、大型化软件的开发,人们意识到计算机软件的开发需要规范的文档来确保程序设计、调试和运行。到了20世纪八十年代,人们将软件工程定义为:实现计算机程序功能采取的规则、方法及与之相关联的文档和在计算机上运行程序所需的数据都是计算机软件。 软件工程的发展大体经历了程序设计时代、软件时代和软件工程三个时代。以建筑工程开发为例,可以看出计算机软件开发过程与建筑工程开发有较大的差异。建筑工程开发过程中,设计蓝图设计之后,之后的每一步都不存在回溯的问题,但计算机软件工程在开发的过程中,每一步都有可能经历多次的修改、适应等回溯问题,另外,软件开发成功投入使用后,要考虑到软件运行和维护的问题等等。 2 计算机软件开发技术的重要性 软件开发技术是软件工程较为关键的技术之一,对计算机网络发展有着极大的助推作用,计算机软件开发技术能够促使计算机网络技术的创新,使一些网络支持、远程控制成为可能。软件开发技术的应用使得计算机网络形成开发性、共存性的一种网络模式,对于计算机网络的发展有促进作用。计算机软件开发技术的应用解决了软件开发落后计算机网络需求的问题,随着软件开发技术的不断提高,软件的安全性、可靠性和便捷性也有了较大的提高。上述的计算机软件开发重要性推动了计算机软件开发技术的应用。 3 计算机软件开发方法 目前,计算机软件开发方法主要有原型化方法、软件生命周期法和自动形式的系统开发方法三种。原型化方法:软件开发之前要进行严格定义和预说明,要求用户及软件开发人员对系统整体功能及信息需求有全面、深刻、准确的认定。如果用户给出的软件目标不能详尽描述输入处理及输出需求,或者软件开发者不能确定算法效果、系统适用性或未来使用的人机界面形态,此时,适合采用原型化方法进行软件开发设计。软件生命周期法:软件生命周期法从时间角度出发对软件开发、定义、维护等问题分解成若干阶段,每一个节段的开始和结束均有标准。软件生命周期通常由6个时期,也就是6个阶段。自动形式的系统开发方法:这个方法是利用第4代技术[3]中的软件作为开发工具,其要求软件开发者说明软件实现的内容和目标,而不需要说明如何实现,这种开发方法根据系统的要求自动设计和编码。 4 计算机软件开发技术的应用 计算机作为一个工具,计算机软件开发者的存在使为了让计算机能更好地服务于人类,因此计算机软件开发技术要真正实现其应用价值才能被称得上成功。这里我通过一个计算机软件开发实例说明计算机软件开发技术的应用价值。采用两种方式开发两个产品,其中第一个产品是运用vb6.0+acess、单机版运行模式进行开发设计,第二个产品是运用web+xml+activex和高级数据库服务器进行开发设计。现利用两种产品分别安装客户机端,其中,采用第一个产品的话,在客户机可直接安装,因为vb虚拟机和acess驱动均是微软历史版本,所以系统可自动兼容;采用第二个产品的话,在客户机要安装activex组件,这时,要更改浏览器安全设置,这就要求客户端安装第二个产品的时候需要多个安装步骤。客户端安装成功后,经过一段时间运行,第一种安装方法运行稳定、无问题,若需备份还原数据或修复安装,用户可单独完成,缺点是随着客户端使用时间的增长用户数据越来越多,在客户端运行后期运行速度会下降,这时需要人为转档。而第二种安装方法在安装、运行上受浏览器安全设置或系统操作版本的限制,给用户的使用带来了一定的不便。这两个例子引起软件开发者对问题的认知。计算机作为一种工具,其存在是为了更好地服务于人类,目前,计算机已经成为大众化工具,计算机软件开发者不能要求使用计算机的工作人员都是专业化人才,因此,在计算机软件开发的过程中要根据需求、实际情况进行投入和开发。在计算机软件开发中要本着“以人为本”的理念,体现软件的易用及功能强大。 5 结束语 计算机软件以硬件为载体,是计算机思想的体现,其处理大量的逻辑、信息,为人们提供一种方便、快捷的信息处理手段。在当前这个信息化时代,软件开发技术有极大的应用价值,因此,科学运用计算机和软件开发知识,以期通过较少的投入获 取高质量、高效率、满足人们需求的软件产品,对于推动现代化、信息化发展大有裨益。 软件开发论文:浅谈软件开发技术在计算机网络教育中的重要性 论文关键词:软件开发技术 网络教育 重要性 论文摘要:随着计算机技术在教育领域的广泛应用,网络教育应运而生。软件开发技术的日趋完善为网络教育飞速发展提供了技术支持。本文从软件开发技术与网络教育的关系角度阐述了软件开发技术在计算机网络教育中的重要性。 计算机自20世纪40年代诞生以来,经过近二十多年来教育技术的发展,已经向社会的各个领域渗透。随着计算机应用的普及、深化,计算机软件技术的规模越来越大。1968年,北约组织的一次研讨会上提出了“软件工程”一词。今天,随着网络教育的不断发展,软件工程的重要性也随之突显出来。 1 计算机软件开发技术的发展过程 软件开发是一个非常复杂的过程,软件开发技术的发展经历了漫长的历史阶段。在软件开发的初期,人们对软件开发的认识主要集中在“软件危机”的解决办法上。20世纪60年代末k.w.dijkstra提出的结构化程序设计技术曾被看作是克服“软件危机”的灵丹妙药,但面对大型软件系统,系统的重要性、稳定性、扩充性却难以实现,20世纪70年代产生的面向对象方法,给软件工程产生了活力。对象管理组织omg在1997年11月将几经修改的uml正式作为基于面向对象技术的标准建模语言,从此又经不断发展、推新,uml目前已成为可视化建模语言事实上的工业标准。 随着soa体系结构的产生以及case技术的不断发展,软件工程技术日趋成熟,发生了质的飞跃,对现代网络教育产生了深远的影响。 2 现代网络教育的特点 随着计算机技术在教育领域的广泛应用,网络教育应运而生,相对传统教育模式而言,网络教育的出现不仅是对传统教育形式的有益补充,同时随着时代的发展,网络教育也越来越呈现出自身的优势,其特点明显体现为:促进了教育形式的变革,实现了传统面授教育向网络远程教育的过渡;促进了教育资源的有效利用,实现了由传统的书本、纸介文字学习材料向多媒体课件、学习软件、网络资料等教学资源转变,最大限度地有效利用学习资源;促进了学习者自主学习,实现了学习者根据自身学习时间和知识基础设计学习计划,获取知识的自主方式;促进了教学管理的自动化,实现了教学管理的软件化、平台化,提升了管理水平和工作效率。 3 软件开发技术对网络教育的意义 网络教育的飞速发展依赖于大量计算机软件的开发和技术发展,软件开发技术为实现并发展网络教育提供了操作平台和技术保障。 3.1 教育资源库的开发为网络教育提供了资源储备 目前,我国的教育资源库开发模型有很多种,资源的内容和采集的模式得到了极大的丰富,为网络教育提供了充足的资源储备。各类学科资源库、开放式教育资源库、资源中心等教育资源与资源数据库紧密结合,大大提高了资源管理的效率。改变了传统的教育资源库脱离数据库而造成数据不可重复使用,数据关联性弱和人工浪费的现状,使教育资源储备形成了快捷、高效、安全的良好发展态势。 3.2 教育管理软件的开发丰富了网络教育的管理手段 技术进步不仅推动人类文明的发展,同时也给教育提供了学习的新知识,对教育观念的转变起到积极地促进作用。教育管理软件的开发丰富了教育的管理手段,使教育的管理方式由传统的认为管理向软件化、信息化管理转化,有效地提高了管理效率,提升了信息准确率,同时也极大地方便了管理信息的存储和备份。随着教育管理软件的普及、应用,也间接地促进了教师和学校管理人员的现代教育技术水平的提高。 3.3 学科分类软件的开发使网络教育更具针对性 学科分类是教育教学资源内容划分的基本方式,它能够将每一学科根据类别划分并进一步细化知识点,促进知识的拓展。因而,在网络教育中学科分类软件的开发与应用对学科分类细化和突出网络教育针对性具有积极的促进作用。学科分类软件的广泛应用促进了课程资源的整合,使整个学科类别和知识的层级划分更加合理清晰、条理分明,结合不同学科的知识特点,更好地突出学科个性。学科分类软件的应用,在细化知识分类的同时也为学生构建了良好的知识资源环境,为教师与学生间的教与学的过程提供了依托平台,促进了互动交流。在这一过程的循环中,也能够较好地体现教师的教学风格,突显教学个性。这也是网络教育的重要特点。 3.4 辅助教学软件的开发使网络教育更具灵活性 软件辅助教学是现代教育理论倡导的新型教育模式。辅助教学软件的大量开发和实践应用使网络教育具有更加灵活的教育方式,突显网络教育的时代特色。同时教学软件的广泛应用有利于促进学生学习自主性的培养,丰富的教学软件资源使学生根据自身特点制定学习计划、选择学习内容、把握学习时长、掌控学习进度,极大地调动了学生自主学习的积极性;有利于学生自学能力的培养,培养了学生自我教育、自我管理、自我服务的良好意识,提高了有效获取知识的能力。 4 结论 网络教育开创了现代教育开放、交互、自主、和谐的教育新模式,适应了现代教育的发展变革,软件开发技术为网络教育的发展提供了有效技术依据。实践证明,随着计算机应用的普及和网络技术的广泛应用,依托于计算机网络的软件开发技术将以多形式、多层次、多角度发展态势,在教育领域乃至人类学习、工作、生活等全方位面临更加广阔的发展未来。 软件开发论文:软件开发套件到位 DaVinci平台应用开发效率再提升 达芬奇,是文艺复兴时期一位意大利籍、极富创新精神的科学家和艺术家;如今在半导体领域,它是强大视频软硬件技术的代名词,是ti德州仪器又一soc开发的心血结晶。 德州仪器dsp业务发展经理郑小龙说,“达芬奇”(davinci)平台的推出,旨在让客户成为“数字视频的创意大师”;希望客户能通过达芬奇平台,更好地实现数字视频的创意,这也是此平台命名的初衷。郑小龙介绍说,面向不同的应用,达芬奇平台目前共有三大家族;首先问世的是dm6446,它包括arm9和c64+内核,以及视频协处理器和视频前端,并具有丰富的外围和网络接口,适合做讲求视频效能的编解码工作。 ip可视电话的开发便是其一。需要同时对影像和声音进行编解码,且对“双向通信”的要求高。它的另一个典型应用是高端摄像机,需内置支持d1视频压缩码流的编解码功能(25帧/秒),以及支持h.264的视频前端,才能获得清晰图像。第二个系列是dm6443,它是履行“裁减艺术”的低成本达芬奇平台。虽然同样包括arm9和c64+内核,但主要侧重在d1解码的输出功能。最后一种是专门针对数码相机所推出的dsc系列,锁定其低功耗和静态影像的特性,特别强化电源管理增强型芯片和jpg2000算法部分,并对高端功能进一步进行裁减。同时由于其属于最终消费品,故而也特别注重对高速总线的支持。 强化组态配置功能 加快设计速度 上市时间永远是数字多媒体产品研发团队工作压力的最大来源,特别是soc化之后,系统的硬件成本虽然显著降低,但固件开发的复杂度也因而提升。如果没有适当的工具协助,研发团队可能得耗费数周以上的时间在整合并最佳化各种固件模块的工作上。以手机系统设计为例,由于硬件的整合度已经很高,因此研发团队在手机硬件设计上花不了太多时间,反倒是手机的软件与固件的编写与整合,占据了整个手机开发流程中大多数的时间。 在davinci这种高度整合的硬件平台上,开发团队也会面临相同的问题。因此德州仪器在最近所推出的软件开发套件中,提供了一套expressdsp组态配置套件(configuration kit),让开发人员可以把多个独立软件模块整合成一个系统可执行的输出文件,这能为他们省下数个月繁杂耗时的手动整合工作。这套组态配置工具还能针对特定规格产生一组量身订制的编码解码器,这不仅简化程序代码的重复使用,开发人员也有更多时间利用他们的工程资源为产品增加更多功能与价值。 此外,鉴于嵌入式系统采用linux操作系统已经成为风潮,在新版开发套件中,ti也从善如流地为davinci平台的核心──dm644x处理器提供一套数字视频最佳化linux操作系统。除了操作系统之外,此平台也包含一套由montavista提供并通过系统测试和实际考验的视频应用最佳化linux电路板支持套件。使用此平台的厂商将直接从ti取得montavista操作系统和devrocket整合开发环境的使用授权和支持,他们可借此取得业界最丰富的linux应用资源。 视频codec一应俱全 系统开发更容易 除了硬件效能与成本具有竞争力之外,完善的软件开发工具环境与庞大的第三方支持社群,一直是德州仪器能够稳居手机应用处理器市场与dsp器件市场的关键。在针对视频应用设计的达芬奇平台推出后,ti也正试图将以往带来成功的策略复制到新平台上,同时以更积极的做法来深化其市场优势。去年9月达芬奇产品正式发表,初试啼声之后,日前另一波达芬奇效应高潮宣告来临! 随着ti这套兼备音频/视频、语音/影像编码格式的全集成开发套件问世,将有效减小数字视频系统的设计复杂性。此次的开发套件由3个部分组成: expressdsp配置工具:利用首款优化的数字视频配置工具,尽可能减小设计工作的复杂性。 数据可视化工具:利用首款全面的图形系统可视化工具实现设计效率与性能的最大化;这套首创图形系统可视化技术可帮助实现系统互动分析、负载分布分析、瓶颈隔离、意外状态识别、基准应用性能,并可在同一图象上同时显示arm与dsp的任务运行情况。 montavistalinux主板支持套件:充分利用首款针对达芬奇数字视频而精心优化的linux内核加速应用开发,既可获取montavista经过验证且通过系统测试的内核与devrocketide以进行linux编程,并可直接从ti获得认证与支持。 细心的读者想必会纳闷:为什么要刻意区别“音频/语音”,以及“视频/影像”呢?我们同样也向ti提出了这么一个疑问。郑小龙的回答是:因为目的不同。动态视频的质量指针是编解码,而静态影像是的关键词在“像素”;同理,音频看重的是“压缩率不能太低”,但单纯的语音应用却想尽可能地把码流降到最低,因此有必要加以区别。 除了在组态配置与操作系统方面提供更完善的支持之外,ti与其开发社群在davinci平台上所提供的codec种类与数量也正在快速提升。从图3就可以看出,目前能在davinci平台上执行的codec几乎已经完整涵盖所有视频应用。此外,为加速先期推广,ti在推出此款开发套件时,同时也祭出60天免费评估计划。所有ti自行研发的编解码软件将免费提供给采用davinci平台的客户免费评估60天,让客户的研发团队可以对各种视频编解码算法的效进行深入评估之后,再决定是否要掏钱购买。在这60天内,如果客户需要相关技术支持,ti的授权软件供应者也将提供4小时免费的支持服务。 软件开发论文:软件开发人员认知风格评测系统开发 1 项目可行性和建设目标 1.1 编写目的 互联网行业对人才的需求量巨大。由于软件行业是当前平均薪酬最高、需求增长最快的行业,不少年轻人并没有考虑自身的特点,盲目地跨进了这一行业而深感无所适从。同时不少公司也为如何选择有潜力的软件精英而伤透脑筋。 优秀的软件从业人员在认知风格上表现出显著的群体特征。他们大多具有很强的推理能力、重组信息的能力和用计算机语言描述思维的能力。如何科学地量化这些特征,事关整个社会人力资源的合理分配和效益发挥。 本软件的设计与编写正是为了测评软件开发人员的认知风格,通过对软件设计人员的认知风格的研究来挖掘其显著特性,以便为人们在专业选择、职业选择、职业教育、公司人才甄别和培训(根据认知风格进行有目的的培训)等方面提供指导和帮助,从而促进软件行业更健康、持久地发展。 1.2 理论基础 赖丁和雷纳给出一个结构模式[1],开发了一套认知风格的综合测评系统——认知风格评测系统(csa)。此系统直接测量“整体/分析”和“言语/表象维度”的两端,由3个子测验构成[1]。第一个子测验通过每次呈现一个要求判断“对”和“错”的陈述,来测试“言语/表象维度”。测验中关于认知范畴的信息的陈述和描述外观的题目的陈述各占一半。赖丁假定表象型的个体由于物体相对容易被表征成心理表象,能够迅速获得用于比较的信息,从而对外观性的陈述做出的反应更快。同时假定言语型个体对认知范畴的项目的反应时间会更短,计算机记录对每个项目的反应时,并且计算“言语/表象”比率。低比率反应的是言语型,高比率反应的是表象型,居于中间位置的被认为是双重型。笔者采用这种方法,要求个体必须既阅读言语型项目,又阅读表象型项目,以便于阅读能力和速度同时得到测试。 另外的两个子测验用于评估“整体/分析”维度。其中的第一个子测验的项目要求个体判断成对的复杂几何图形是否相同。假定“整体型”的个体对这种任务的反应可能相对较快,其中的第二个子测验的项目要求被试通过按两个有标记的键中的一个,来指出作为参考的简单几何图形是否包含在复杂的几何图形中。假定“分析型”的个体把简单图形从镶嵌它在内的复杂几何图形中找出来的速度相对要快些。在进行这一子测验时,计算机同样要记录反应时,计算整体加工与分析加工的比率。低比率反应了整体性加工倾向。显然,高比率反应了分析性加工倾向,介于两者之间的比率被称为“中间型”。 由于在做这些测验时,被试并不知道该测验记录反应时,他们就能以一种轻松的方式接受测试任务,反映出他们通常加工信息的方式。由于使用比率,总体的反应速度并不影响风格的测试结果。在赖丁的研究[2]中给出了开发相应的csa的背景资料。 1.3 改进与实现 假定软件从业人员的认知风格在某维度更偏好些,采取ali reza rezaeia(2003)[3]等人对csa系统的建议,根据csa的测试模型进行修正后制定了具体的4个子测验。小组的成员对csa测试系统进行改进,设计了一个“软件行业从业人员的认知风格测试系统”。 赖丁的csa系统的“表象维度”的测试是用文字描述的,这可能使表象型的被试先要进行“言语/表象”的转换,增加对每个项目的反应时。考虑到这一点,在测试系统的设计中,将表象测试题设计为用图形来呈现。显然,这将提高“表象维度”的测试效度。 考虑到测试时系统主要是根据“反应时”作为衡量不同风格的依据,笔者首选c#系统进行编程。用c#语言工具设计出用于测试软件人员认知风格的系统,将4个子测验进行综合测试。由于在做这些测验时,被试并不知道该测验记录反应时,这样他们就能以一种轻松的方式接受测试任务,从而反映出他们通常加工信息的方式。由于使用了比率,所以总体的反应速度并不影响风格的测试结果。软件开发人员认知风格偏好评测系统如图1所示。 2 业务和功能需求分析 2.1 总体功能模块 本系统主要完成4个主模块,即被试信息管理、试题项目管理、四个分测评和统计分析。其中四个分测评包含两个维度的四个分测试,即整体/分析维度和言语/表象维度的四个分测试。 2.2 被试信息管理 被试信息管理是用于记录被试信息,便于随后的统计与分析的,所以应该具备被试的职业背景选择、性别、成长环境和学习偏好等相关数据。 2.3 四个子测验 1)“表象维度”测试。第一个子测评是以图形方式呈现的对外观认知的项目,用来测试“表象维度”。假设表象型的个体由于物体相对容易被表征成心理表象,从而对图形题干将会做出更快的反应,并且从这些表象中能够直接而迅速地获得用于比较的信息。样题如图2所示,要求被试尽快反应出右边的字母是否是左边字母平面旋转的结果。 2)“言语维度”测试。第二个子测验包含认知范畴的信息来测试言语维度。言语测试题如:“服法:每日服四片,日服三次。儿童减半,或遵医嘱。温开水送下”,表明儿童每天要服6片。言语型的个体对认知范畴的项目反应时间更短,因为表象型的个体需要先将抽象的言语转换为形象来表征。计算机记录被试对每个项目的反应时。 3)“整体维度”测试。第三个子测验包含有成对的简单几何图形组(如图3所示)。此子系统要求个体判断同一组的图形是否相同,从而用来评估整体维度。 4)“分析维度”测试。第四个子测验项目包含一个简单图形和一个复杂图形(如图4所示),它要求被试在复杂图形中找到简单图形用来评估分析维度,这一子测验所考察的是个体对包含在复杂图形里的简单图形的识别能力。它假定分析型的人在这一作业中做得更快。 2.4 被试认知风格所属区间 测试时,系统会随机从每个子测验的测试题目中选择10个题目共组成40题。由于测试中考虑到被试对题目可能没有兴趣,或者大多数题目没有经过大脑的认真思考就回答会影响测试分析的最终结果,因此必须对测试卷的有效性进行合理判断。如果一个测试的每一个项目的错误率达到30%,系统可判定该测试卷为无效试卷,不计于有效样本。 3 结语 系统在被试测试开始过程中,记录下被试对每一个子测验的各个项目的反应时,然后通过计算言语和表象平均反应时的比率,作为整体加工与分析加工比率值。低比率反应了整体加工倾向,高比率反应了分析加工倾向,界于这两者之间的比率为中间型。同理,计算出言语和表象反应时的比率。低比率反应了言语维度倾向,高比率反应了表象维度倾向,比率界于这两者之间的属于中间型。 软件开发论文:计算机应用软件开发中编程语言的选择研究 计算机应用软件开发中编程语言的选择研究 随着社会的发展,应用软件在我们的生活中所发挥的作用越来越大。对于软件开发企业而言,这既是机遇也是挑战,如何提升软件开发的效率和质量,进而提升企业的竞争力成为了当前的一个重要课题。这种背景下,做好计算机应用软件开发中编程语言选择的研究有着重要的意义。 1 常用编程语言分析 了解常用编程语言的特征和优缺点既是我们进行语言选择的前提,也是保证我们编程工作顺利开展的有效手段。 1.1 c语言:c语言是介于高级语言和汇编语言之间的语言,也被我们称之为中级语言,它集中了汇编语言和高级语言的很多优势。在最初的时候,c语言主要应用于unix系统,后来随着人们对其强大性的认识越来越多,到了上个世纪的90年代,这一语言已经成功的应用到了其他操作系统之中。它一直属于最为优秀的编程语言之一。 具体来说,c语言的特点主要可以分为以下几个方面:首先,c语言属于结构化语言,因此,它具有非常清晰的层次,对于我们使用模块化的方式进行程序的组织非常有利,也便于维护和调试。其次,c语言中不仅数据类型以及运算符非常丰富,还能够对内存中的物理地址进行直接的访问,方便我们进行位操作。第三,它的效率非常高,而且移植性比较强,因此,能够移植到各种计算机上,这就方便形成很多版本的c语言。第四,由于可以利用c语言实现位操作以及字节操作,因此,相当于利用这一语言能够实现部分汇编语言的作用。最后,c语言编写的代码具有较高的质量,而且程序在执行起来效率比较高。 1.2 c++语言。1986年,at t贝尔实验室开发出来了c++语言,主要是利用数据封装来减少程序变量的不利影响,进而提升程序的可靠性。它的多继承机制可以更好的对对象的行为及属性进行描述,虽然c++属于c语言的扩展,但是,我们可以将其作为一种全新的语言对待。 c++语言的特点主要有:面向对象、封装、继承以及多态性。具体来说,由于c++语言属于c语言的扩展,所以,它具有很多c语言的特点。另外,在c远的基础上,c++加入了面向对象的编程思想,这就是其能够更好地适应当前大规模项目的需求,举例来说,当前很多系统级编程使用的都是c++语言。 1.3 java语言。java语言相对于c++语言来说,在简洁性以及安全性有着更大的优势,具体来说,其主要的特点有: 首先,简单性:这一点和c++语言比较类似,但是它减少了c++语言中比较容易导致程序错误的地方,比如指针以及内存管理。其次,java语言属于完全面向对象语言,这一点和smalltalk比较类似,当然相对于smalltalk,它的很多方面又存在着巨大的优势。第三,分布式,在java语言中,包涵了支持基于tcp/ip协议的子库。第四,健壮性,java语言中的类型检查可以帮助我们查出很多软件开发初期出现的错误,降低内存出错的几率。第五,结构中立,在使用java语言编程的时候,会把程序编译为中间文件格式,也就是说只要存在java运行系统的机器都能够对这种中间代码进行执行。第六,安全,它删除了手动释放内存等,很好的防止了非法的内存操作。 此外,除了以上的优势之外,java语言还具备可移植性好、解释性强、高性能以及多线程等特点,这里限于篇幅不再对其进行详细的分析。当前,java语言主要应用在web浏览器以及网络应用系统之中。 1.4 c#语言。这种语言有着类型安全、精确、简单以及面向对象的特点。它属于.net的代表语言。具体来说,其特点是: 首先,完全面向对象。其次,对于分布式有很强的支持,也就是说其处理的过程是分布在服务器以及客户机上的,从这张语言的诞生过 程我们可以发现其注定就可以很好的解决分布式的问题。第三,健壮,在检查程序错误以及运行错误方面,c#语言一点不比java语言要差,它使用的也是自动管理内存机制。第四,灵活性比较高,比如在默认情况下,c#语言是不可以使用指针的,但是如果有必要我们可以将指针打开来使用。第五,安全性比较高,它的安全性是由.net平台来提供的。 此外,c#语言还具备可移植性、解释性、高性能、多线程、组件模式等特点,总体来说,它属于java流行之后的有一种语言,但是由于微软系统的支持,使其在windows方面相对于java有着更大的优势。当前,这一语言的主要应用有网络编程、数据库、窗体编程等方面。 1.5 pascal语言。这是计算机通用的高级程序设计语言,它的主要特点是结构化形式比较严格、数据类型非常丰富、查错能力较高以及运行的效率高等。正是由于这些优势,使得这一语言可以对各种算法以及数据结构进行描述。另外,利用这种语言,可以帮助我们编程者保持一个很好的习惯和设计风格。 总体来说,每一种语言都有其独特的优势和应用范围,在计算机应用软件开发过程中如果能够使用最合适的语言将极大地降低我们的工作量,提升我们的工作效率。 2 计算机应用软件开发中编程语言选择的原则 了解了各种编程语言的特点并不能帮助选择出最合适的语言,我们还要掌握编程语言选择过程中的原则: 首先,我们在确定编程语言以前充分考虑开发项目的整体架构,一般情况下,并不是说整个系统都必须要使用同一种编程语言进行编写,语言的选择将会给组件分解及连接带了较大的影响。其次,对开销比较大的操作要我们要进行认真的考虑,比如图形渲染、密码学、视频处理以及信号处理等操作,我们最好选择静态类型的语言。第三,如果条件允许,我们要尽量使用最为熟悉的语言,通过这种做法可以更好的对软件工程项目时间表进行预测,进而降低了变数出现的几率。第四,假如软件主要应用于重复处理手工劳动,那么我们要选择灵活、简单的编程语言,如果某种语言可以与生俱来来实现这些功能则最佳。第五,对开发硬件环境进行充分的考虑,并不是全部的编程语言都可以很好地适应于受限的硬件环境。一般来说,虽然当前的硬件基本已经足够了,但是对于以下较为特殊的应用来说,这一问题依旧严重。所以,要选择使编出来的程序可以较好的运行在这种环境中的语言。第六,不论应用软件开发过程中使用了哪种编程语言,确保编出来的程序可以实现快速调整是一项重要的前提,所以,快速原型是很重要的,基于此,动态语言是一个不错的选择,它可以和和很多相关库进行结合。第七,支持平台也是我们在编程语言选择过程中需要考虑的因素,比如,假如我们代码要在浏览器中运行,那么就可以排除很多不合适的编程语言。第八,在编程过程中,有些文件格式将会涉及到位操作,所以,我们还要对项目是否需要大量位操作进行考虑,一般来说,如果有这方面的要求,我们最好选择容易位操作而且可以提供合适数据类型的编程语言。最后,针对一些特殊领域,我们可以考虑使用专业的编程语言,它既能够节省很多的工作时间,还可以防止编程出现较大的失误。 3 结语 软件开发过程中,编程语言的选择和编程的效率、质量有着非常大的关系,做好这一工作可以使我们的工作事半功倍。因此,在具体的工作中,我们应加强学习,对这些编程语言特点进行深入的了解,以寻找出最合适的编程语言。 软件开发论文:软件开发中的嵌入式软件开发 在一般应用软件系统开发时,程序员只需要考虑软件系统的功能设计,硬件部分直接根据软件需求购买即可。嵌入式软件的开发则需要软硬件综合开发,这有两方面的原因:一方面,任何一个嵌入式产品都是软硬件的结合体;另一方面,一旦嵌入式产品研制完成后,软件就已经固化在硬件环境中,用户不能对其修改。嵌入式软件的这一特点决定了嵌入式应用开发方式不同于传统的软件工程方法。 1 嵌入式软件开发的特点 嵌入式软件的开发具有如下几方面的特点: 1)需要交叉开发工具和环境。由于嵌入式软件本身不具备自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,因此必须有一套开发工具和环境才能进行开发。这些工具和环境一般基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机交叉开发的概念,主机用于程序的开发、调试,目标机作为最后的执行机构。开发时主机和目标机需要交替结合进行。 2)软硬件协同设计。软硬件协同设计涉及以下方面:嵌入式软件设计、实时系统设计、硬件设计和软件设计。软硬件协同设计强调硬件与软件的协同性与整合性、软件与硬件的可裁减,以满足系统对功能、成本、体积和功耗等要求。 3)嵌入式软件开发人员以应用专家为主。通用计算机的开发人员一般是计算机科学或计算机工程方面的专业人士,而嵌入式软件则是要和各个不同行业的应用相结合的,要求更多的计算机以外的专业知识,其开发人员往往是各个应用领域的专家。 4)软件要求固态化存储。为了提高执行速度和系统可靠性,嵌入系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。 5)软件代码高质量、高可靠性。尽管半导体技术的发展使处理器速度不断提高,片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。为此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度,提高执行速度。嵌入式软件的核心是系统软件和应用软件,由于存储空间有限,因而要求软件代码紧凑、可靠,大多对实时性有严格要求。 6)系统软件的高实时性。在多任务嵌入式软件中,对重要性各不相同的任务进行统筹兼顾和合理调度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的高实时性是基本要求。嵌入式软件应用程序虽然可以没有操作系统直接在芯片上运行,但是为了合理地调度多任务,利用系统资源,系统一般以成熟的实时操作系统作为开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。 2 软硬件协同设计概念 嵌入式软件设计是使用一组物理硬件和软件来完成所需功能的过程。系统是指任何由硬件、软件或者两者的结合来构成的功能设备。由于嵌入式软件是一个专用系统,所以在嵌入式产品的设计过程中,软件设计和硬件设计是紧密结合、相互协调的。这就产生了一种全新的发展中的设计理论——软硬件协同设计。这种方法的特点是,在设计时从系统功能的实现角度考虑,把实现时的软硬件同时考虑进去,硬件设计包括芯片级“功能定制”设计。既可最大限度地利用有效资源,缩短开发周期,又能取得更好的设计效果。 系统协同设计的整个流程从确定系统要求开始,包含系统要求的功能、性能、功耗、成本、可靠性和开发时间等。这些要求形成了由项目开发小组和市场专家共同制定的初步说明文档。系统设计首先确定所需的功能。复杂系统设计最常用的方法是将整个系统划分为较简单的子系统及这些子系统的模块组合,然后以一种选定的语言对各个对象子系统加以描述,产生设计说明文档。其次,是把系统功能转换成组织结构,将抽象的功能描述模型转换成组织结构模型。由于针对一个系统可建立多种模型,因此应根据系统的仿真和先前的经验米选择模型。 3 嵌入式软件开发的方法论 在建立一个完整的嵌入式软件或是产品时,大部分系统都很复杂,不但功能规格很多,还必须考虑例如价格、性能等其他因素,否则很容易做出一个失败的系统或是产品。因此,在进行系统开发之前,必须先了解一些系统设计技术,使得在开发过程中更为顺利。一般来说,产品设计的过程会经历几个步骤,为了确保这些步骤的合理性,我们需要一个设计方法论来面对整个设计过程。采用方法论有以下三个重要理由。 确认所做的每一件事情都是必须要做的,不做无谓的工作,也不漏掉关键性的重要工作,其中包含性能最佳化或是功能测试。 根据设计方法论可以发展出计算机辅助工具或是设计经验累积,汲取每一次产品开发的经验。再经过量化之后,可以发展出一套工具或是方法,让往后的产品设计步入自动化。 开发团队遵循同一套方法论,可以让团队成员更容易彼此沟通。每个人都能在短时间内了解整体过程中将经历哪些过程,需要何种支持与接收到何种结果。此外,也容易通过一套已经定义好的方法论,彼此相互合作协调。设计过程的目标是做出有一定用途且具有创新点的产品。产品的典型规格包含功能性、制造成本、性能表现、省电考虑和其他特性。 4 结束语 嵌入式系统开发是在开发过程中综合考虑软硬件环境和需求,这样开发的软件产品不仅能使系统与硬件的驱动默契更高,还能有效缩短开发周期。由于能够有效解决软件危机带来的危害,嵌入式系统开发成为系统开发的主要趋势也是不可避免的。 软件开发论文:谈嵌入式系统软件开发技术 引言 嵌人式系统开发经过30多年的发展,到现在算是一个成熟的技术了。由此可以从总体上确认在嵌入式系统开发展过程中出现的几种明显趋势,这些趋势指出了一系列新兴的关键技术。 1 微处理器技术 最早的微处理器是4位和8位器件。由于制造技术越来越复杂,集成的单片8位微处理器开始出现,16位微处理器也开始使用。随着微电子技术的发展,16位的微处理器已得到广泛的应用。32位架构的器件逐渐占领了高端的应用市场,第一代的32位器件都是cisc架构,但目前,越来越多的risc芯片正在提供更高的性能。嵌人式系统设计者选择微处理器的范围比以前大了,必须根据性能、需求、支持、可用性和价格来进行选择。 2 系统架构 随着微处理器的发展系统架构也在进步。最早的系统,是由cpu和一些逻辑器件组成的。多年以来,系统变得日益复杂,但都还可以使用同样的调试技术—电路仿真、芯片级调试、rom监控器以及指令集模拟。嵌入式系统日益强劲,而功能需求的增长则更快很多设计者开始重新审视微处理器和它们的用法。 3 设计组成 嵌入式系统发展的最初阶段。所有的开发包括软件和硬件设计,通常都是一个工程师来承担。软件在整个工作址中的比例很小,大约5%-10%。随着时间的推移软件开发占工程时间的比例持续增长。至20世纪80年代中期,软件开发已经是由专业欢件人员来做,所占比例一般已超过整个开发工作量的50%。 在最近几年,虽然硬件设计变得更加复杂,但软件的份量也急剧增长,目前通常占到开发总量70%-80%。因此,需要有软件团队参与,同时也产生了一些新的挑战。这些挑战中的一个,就是要有可用的硬件平台来进行软件测试。由于要在更短的时间内开发更多的软件,就需要尽快建立测试环境。发出更多的软件,就需要尽快建立测试环境。有多种可行的方法,如本地代码执行原型环境、指令集软仿真(模拟),以及使用标准的、低成本的、现成的评估板。此外,低成本的主机一目标机连接技术,也变得越来越普及,有代表性的就是jtag接口。 4 软件内容 软件开发所占总时间的比例一直在增加。同时,来自全球贸易和竞争的压力使得产品投放市场的时间也一直在缩短。这极大地影响了设计的策略。最早的设计相当简单,仅仅由自己设计的应用代码组成。随着系统的复杂度增加,多任务的模型被软件开发者广泛采纳,很多开发者选择标准的、商用的实时操作系统产品。随着各个标准的进一步被采纳,买来的软件,或者说有“知识产权”的软件所占的比例正稳步增长。这个趋势给了软件开发者很多启示。集成标准的软件组件—和应用代码及其他—是我们所关心的。在多任务背景下调试是另一个值得关注的问题。与选择知识产权有关的商业决定尤为复杂;除了当前的要求之外,还有将来的(例如移植到别的处理器)也必须加以考虑。 5 编程语言 对于早期的4位和8位微处理器,汇编语言是唯一的选择。随着16位微处理器技术成为现实,出现了几种可供选择的语言。有pascal和c语言和pl/m语言。对某些类型的系统来说,forth语言也曾很流行,随着时间推移,32位技术的使用日益增多,出现了c和ada。后者在国防部的系统中被普遍使用。 在嵌入式软件开发中,c++开始逐步取代c语言。现在,1/4~1/3的嵌入式系统代码是用c++编写的。java语言当初是专门为嵌人式应用开发的,在要求运行时重新配置的应用场合,它找到了一席之地。统一建模语言(uml)也成为高级设计方法学的最流行选择。 6 软件队伍的规模和分布 正如先前讨论的一样,最初的嵌人式系统设计只要一个人就够了。在适当的时候,因专业化,产生了致力于软件开发的工程师。下一步就是建立嵌人式软件开发团队。管理软件开发在任何情况下都是一个挑战,嵌入式系统开发也不例外,只是有细微差别。使用传统的编程技术———过程语言,如c语言和汇编语言,团队里的大部分成员都需要对整个系统了解比较全面。随着团队变大,这就变得越来越不可行。价况住往是,团队里有一些特殊的人才,他们对某些专门领域很在行。为了有效地管理团队必须使用合适的策略,将他们的专长封装起来。尽可能使一个专家的工作成果能够被非专家以安全、可靠和直观的方式加以使用.在这种情况下,面向对象编程技术找到应用点。 虽然有很多非常大的公司,但软件队伍不是简单的人员扩充他们正在变成分布式的。团队的一些成员在一个地方,而其他的可能在别处。这些地点甚至有可能位于不同的国家。这种安排在欧洲很常见,在那里,真正关心的可能是交流的语言。其他地方,时区可能是个问题(可能也是一个优势,因为分布式的团队可以全天候工作)。随着新兴的技术中心(如印度)广泛崛起,上述情况越来越普遍。在这一背景不,软件组件的可重用性需求就变得很常见了。 7 uml和建模 最近几年,uml己经成为一项关键的设计方法,它和逐渐增七的嵌人式软件团队规模关系密切。广义上说,使用设计工具的方式有2种:或者是作为编写代码的指导,或者就作为直接生成代码的一种手段。对于嵌人式软件来说,代码生成是有争议的,它可能会被争论(而且还很有道理)—每一个系统都是不同的,都有各自的特殊需求。这正是xtuml(可执行和可翻译的uml)吸引人的地方,因为它使得应用与架构清晰地分离了。这里所遵循的,是与面向对象编程同样的原则—使用工具和技术来平衡专家意见。 追踪所有被当前各种嵌人式系统开发趋势所驱动的新技术并非易事。孤立地看待其中任何一项技术也是毫无意义的,因为它们之间有着许多联系。例如,多任务与多处理器调试相关;基于标准的rtos技术对处理器移植来说真是件幸事;使用设计方法学可以令实现更容易。 软件开发论文:关于在嵌入式软件开发中应用模型驱动开发技术的探讨 随着现代电子技术的不断发展,嵌入式系统已经广泛渗透到我们的工作、生活中,从家用电器、手持通信设备、汽车、到信息终端、仪器仪表、航天航空、军事装备、制造工业、过程控制等,都充斥着嵌入式系统的应用。 随着嵌入式软件快速发展,传统嵌入式系统的开发手段已越来越难以满足日益增长的复杂性和质量要求。当前,嵌入式软件开发大多采用文档形式。但文档形式嵌入式软件开发存在着许多弊端:文档本身在传递过程中是不可测试的,因此在软件开发的各个阶段之间形成了沟通障碍。由于不可测试,需求的错误被逐层积累,只有系统测试时才能发现。这就产生了矛盾:大部分错误已积累形成,但只能在后面发现。因此在纠正错误时,文档架构代价高昂。 为了解决上述传统嵌入式软件开发存在的问题,提高嵌入式软件开发的开发效率、保证嵌入式软件的质量,本文探讨将模型驱动开发技术应用到嵌入式软件开发过程。 一、模型驱动开发技术 模型驱动开发(model-driven development,mdd )是mda中的一部分。mda是模型驱动体系架构(model-driven architecture)的简称,由对象管理组织(object management group,omg)所驱动。mda表示了一种模型驱动开发方法的概念框架。然而,尽管完整的mda还没有成为现实,但模型驱动开发现在已成为可能[1]。 软件开发一般要经历软件需求分析、软件概要设计、软件详细设计、编码实现、软件测试几个阶段。每个阶段都可以产生每个阶段的相应模型。这些产生的模型,可以在工具环境中进行调试验证,尽可能在系统开发的早期发现其中的错误,同时也可以克服采用自然语言作为文档工具出现的不准确、不科学的描述。在开发的最后阶段,考虑软硬件平台的实现,保证开发过程与软硬件平台的无关性,有利于系统的开放性和可移植性的提高。整个过程也是一个不断迭代开发的过程,这种通过可调试模型驱动的迭代方式,由于不是首先从浩瀚复杂的代码中入手,而是首先从清晰易懂的模型出发,使得系统的更新变得比较容易[2]。 二、模型驱动开发的优势 模型驱动开发的一个优点是可以消除开发过程中各参与方之间的隔阂,需求工程师,系统分析员,软件开发人员和测试者都可以使用同一种预言。他们可能专注于语言的不同部分,以满足他们的需要,但他们都会共用一些基本的结构,并对他们工作的系统有一个统一的认识。而且使用统一的语言有助于消除角色间的界限,使得在项目的不同阶段人员转换到被需要的角色更加容易。还有另外一些人需要知道项目的进展情况,包括项目领导、经理和评估委员会。更重要的是,用户也需要知道什么将会被交付,需要加入到整个开发过程中,与创建系统的不同人员进行交流。一种图形建模语言,比如统一建模语言(unified modeling language,uml),使得各参与方之间的交流成为可能,帮助架起参与方与某些系统复杂功能之间的桥梁。模型驱动开发正逐渐获得公司高级管理者注意,其中的一个主要原因就是这种能够逐渐增加用户、管理层和大的组织机构参与的能力。 模型驱动开发的另一个优点是把系统和软件开发更多地纳入到系统和软件工程规则中。模型驱动开发是关于开发和维护系统的,系统并不只是由应用程序组成,还包括其他的部分,使得人们可以理解这个应用程序。一个模型可以包含明显可执行的部分,但它几乎总是还有其他部分,并不能被运行,比如需求、系统的粗略框架、分析模型。在项目开发时,所有这些都应该被创建出来并保持最新,它们对于将来的维护非常重要。 模型驱动开发可以使嵌入式软件开发过程花费更少的时间用于实现和测试阶段,更多的时间用于分析和设计阶段,当迭代重复这些过程时,会发现,这种方式的好处是实实在在的。 三、模型驱动开发在嵌入式软件开发中的应用前景 目前,模型驱动开发技术还处于新兴阶段,在嵌入式软件开发领域的发展仍然处于起步阶段。在一段时间内,传统的文档形式软件开发仍将是主流的嵌入式软件开发手段。但传统的嵌入式软件开发存在的诸多弊端决定了其必将被新的开发技术所取代,而模型驱动开发技术正是解决这些问题的有效手段。 嵌入式软件开发领域专业技术人员正在不断年轻化,他们能够更快的接受新的技术理念,积累新的技术知识。因此,他们会持续关注模型驱动开发技术的发展,并研究将模型驱动开发技术应用到嵌入式软件开发过程中的契合点。在年轻的专业技术人员逐渐占据主导地位后,必将会逐渐把积累的先进技术理念和知识应用到工程实践中去,采用模型驱动开发技术这种更合理、更有效的技术手段去保证项目开发的效率和质量。 四、结论 随着模型驱动开发技术的不断发展、完善和推广,相关模型驱动开发工具环境的不断出现,以及嵌入式软件领域的系统设计人员和开发人员对于模型驱动技术的不断深入了解,模型驱动开发技术在嵌入式软件开发中必将得到广泛应用。 软件开发论文:试析软件开发生命周期各阶段的应用软件安全性测试 论文关键词:网络应用软件 软件开发生命周期osd动 安全性测试 项目设计 单元测试 集成测试 验收侧试 论文摘要:文章论述了软件开发生命周期中每个阶段添加的一系列关泣安全性的活动,提出将安奋浏试整合到软件开发生命周期中,分析了软件安全性浏试片祠试人员的要求,并以一个sql注入实例来具体说明安全性浏试在软。 信息网络安全事件发生比例的不断攀升、病毒利用软件漏洞猖狂地传播使得人们越发认识到信息安全的重要性。一般认为,传统的信息安全技术可以借助防火墙(包括软件和硬件防火墙)审核通过网络的报文、限定用户的访问权限等来防止非授权用户对重要数据的访问,但是这一观点是建立在软件安全基础上的。网络应用软件需要暴露在网络环境下,并且授权外部用户可以透过网络来访问此软件。通过网络,攻击者有机会接触到软件,如果软件本身存在漏洞,那么所有的防火墙就形同虚设。暴露于网络的应用软件往往成为被攻击的目标,是网络应用软件安全的重灾区。美国国家标准与技术研究院(nist)2002年的一项研究表明,美国花费在软件缺陷方面的费用达到595亿美元。公安部2008年全国信息网络安全状况与计算机病毒疫情调查分析报b说明,在发生的安全事件中,未修补或防范软件漏洞仍然是导致安全事件发生的最主要原因。 1安全测试的定义 安全测试是鉴别信息系统数据保护和功能维护的过程。安全测试需要涵盖的6个基本安全概念是:保密性、完整性、权限(身份验证)、授权(权限分配)、可提供性、不可抵赖性阴。软件开发商都存在解决安全威胁方古的问题。对软件开发商来说,安全性是其核心要求,这是由市场力量所驱动,也是由保护关键基础结构及建立和保持计算的广泛信任的需要所决定的。所有软件开发商面对的一个主要挑战就是创建更加安全的软件,使其不需要频繁地通过修补程序进行更新。软件安全已经成为评判软件质量的一个重要标准,软件安全测试则成为保证软件产品能够符合这一标准的重要手段。软件的安全性测试主要是测试在正常和非正常情况下,软件能否对数据进行安全有效的操作。 2软件开发生命周期流程(参见图1) 对于软件行业来说,要满足当今提升安全性的需要,软件供应商必须转为采用一种更严格的、更加关注安全性的软件开发流程。这种流程旨在尽量减少设计、编码和文档编写过程中存在的漏洞,并在软件开发生命周期中尽可能早地检测到并消除这些漏洞。用于处理来自internet的输人、控制可能被攻击的关键系统或处理个人身份信息的企业和消费者软件最需要实施这种流程。在很多实际的软件开发项目中,安全测试已经成为sdl一个不可或缺的组成部分,并成为整个项目过程中的长期任务。黑盒一白盒测试方法往往执行在产品递交客户之前,但有的甚至在投人使用之后都未进行安全检测和风险评估;在一些安全性要求较高的项目中,虽然将安全风险评估纳人预算,但在实际操作中却对其并未作过多考虑。这样,所导致的直接后果是在开发工作几近完成的情况下进行问题分析处理所造成的成本将远远大于在软件开发阶段进行缺陷修改的成本。即便是从充分利用现有的有限资金和资源的角度来考虑,也有必要将安全测试囊括到sdl中。这样做虽然不能取代软件开发后期的渗透测试和脆弱性测试,却可以有效减少后者在施过程中的投人。 开发人员应该根据客户的功能需求来制定相应的安全规约,利用内建的明确的控制机制来降低安全风险。开发人员可以根据风险评估的结果来确定测试项目:软件能否可靠运行(safety)以及软件运行结果是否可靠(security)。 软件开发生命周期((sdl)中常用的测试方法有:单元测试、集成测试和验收测试。 2.1需求、设计阶段—安全性分析 在软件项目的设计过程中,人们往往只是关注系统的特性和功能,而没有充分考虑其他重要的非功能问题(例如性能、可用性、平台支持、安全,及要在稍后的软件开发生命周期中需要解决的安全性),导致了项目中许多不必要的波动和延迟。由于安全性分析影响了整个的设计和架构,因此应该在项目设计阶段充分地审查和了解它们。 安全性考虑包括一系列问题,例如访问控制和授权、敏感数据的适当处理、数据和存储器访问的适当使用,以及加密方法。一些安全性需求不是非功能的需求,如所实施的加密类型。另外,许多安全性需求是更直接地面向用例的,并且需要定义主要场景,以及定义备选路径和异常路径。在没有将功能的和非功能的需求适当地定义及并人软件中的情况下,编码错误和设计缺陷会表现出关键的信息和操作处于危险。我们应该像对待其他的需求那样处理安全性需求,并将安全性需求划分出优先级,设定范围,同时作为整体用例和功能需求的一部分进行管理。 2.2实施阶段—单元测试 受测试方式的影响,开发者对软件安全风险的评估不可能面面俱到。最典型的就是在代码设计阶段,开发者可以通过单元测试来检验代码行为,这些结果都是可以预知的,但是受到范围的局限,不能测试这些类或者模块集成后的行为。 实施单元测试可以从软件基本单位(单个类)的检测上保证输人的有效性;在可能出现恶意攻击的地方,也可以利用这一思想来组织针对单个类或者方法的单元测试,从而组织起软件内部的纵深防御策略,防止恶意行为对软件安全造成的损害。但是,这一方法将软件各组件进行强制孤立,因此对于因大量组件交互而引起的软件缺陷,利用此种方法无法检测。 单元层的安全测试比较适合于防止缓冲区溢出,格式化字符串以及数据缺失的审核。 2.3验证阶段—集成测试 在集成层,软件的整体安全属性变得可见和可测试,使得这一层的可测试属性数量相对单元层而言要多得多,但是对于跨站脚本和网络服务器提供的一些服务(例如安全套接层ssl和url过滤)的测试,存在一定的困难。我们可以将实际案例和风险分析的结果作为组织集成测试的指南。 集成测试要求测试人员通过安全测试培训,并且是有熟练技术的软件开发人员。 在这一层,我们可以开展诸如注人缺陷验证、旁路验证以及访问控制等方面的安全测试,来源于外部代码的安全审查结果也应该以集成测试的方式加以确认。 2.4阶段—验收测试 验收测试是软件产品交付客户之前的最后一个测试阶段,是在真实的测试环境中,利用基于恶意事件的安全检测模板,测试在典型的渗透活动中可被识别的安全缺陷。验收测试的这一特性(基于安全检测模板),使得我们可以借助于强大的自动化测试软件进行检测,并且可以用验收测试的结果来完善渗透测试报告内容,从而有助于开发人员理解软件的脆弱性以及针对软件脆弱性所采取的补救措施是否有效。 验收测试针对软件的外部api,因此不如单元测试和集成测试松散,并且只能测试当前已知且暴露的漏洞或者缺陷。非定制的商业软件重新设计的关键功能或者其他改变都会影响到软件的整体安全性,因此,如果改变会使得软件产生不可预知的缺陷,针对这些缺陷的测试就应该在单元层或者集成层开展,而不是在验收层。 在验收层,我们可以测试针对解释性程序(sql, xpath,ldap等)的注人式攻击、跨站脚本攻击、跨站请求伪造等。缓冲区溢出及格式化字符串等软件缺陷也可以在验收测试层得到检测。 3安全测试队伍 软件测试一度被认为是编程能力偏低的员工的工作,直到今天,仍然有许多公司把优秀的人才安排在编码工作上,也有更多公司让优秀的人才进行设计,仅有很少公司让优秀的人才进行测试工作。实际的软件工程实践证明,让对软件思想有深刻理解的工程师进行软件测试,可以大幅度地提高软件质量软件供应商还必须认识到组织测试人员进行“安全进修”对安全测试的成功实施至关重要。在这些情况下,软件供应商必须负责对其工程人员进行适当教育。根据组织的规模和可用的资源,拥有大批工程人员的组织可建立一个内部计划对其工程师进行在职安全培训,而小型组织则可能需要依赖外部培训。 测试人员要像攻击者那样带有“恶意的”想法去思考,而且在测试软件时还要扮演攻击者,攻击自己的系统,以此来帮助发现软件的安全漏洞。安全测试并不会总是直接导致安全溢出或者暴露可利用的漏洞,从而引出安全缺陷。要安全测试尽可能地发挥作用,测试人员需具备较强的分析能力,而这更多的是依靠熟练的开发技术和开发经验。 4漏洞举例:一个sql的注入式漏洞 有几种情形使得sql注人攻击成为可能。最常见的原因是,使用拼接形成的sql语句去操作数据库。譬如,传入用户输人的管理员用户名和密码,把这2个参数拼接形成sql语句,通过执行该sql语句,以便验证用户输人的管理员用户名和密码的正确性。具体过程如下: 一般情况下,用户传人正常的用户名和密码进行验证,如传人“myname”和“mypassword”进行验证,得到的sql语句将是: 这个sql语句很正常。但是,这只是开发人员预期的做法:通过管理员用户名和密码来验证账户信息。但因为参数值没有被正确地加码,黑客可以很容易地修改查询字符串的值,以改变sql语句的逻辑。譬如,分别传人“myname’ ori=1--” , "mypassword",得到的sql语句将是: 在用户名“myname’ or i=i--”中,第一个“”’结束了原有字符串中第一个单撇号的配对,"or”后面的“i=i”会导致不管前面的验证结果如何,都会返回真true值,而随后的“一”将把其后的sql语句注释掉。现在问题出现了,不管使用什么用户名和密码,都能验证通过。在存在漏洞的数据显示页面,如果注人join语句,就能获取数据库里的所有数据,显示在页面上,如获取用户名、密码等;而注入up-date/insert/delete语句将改变数据,如添加新的管理员账号等。这样,数据库将不再安全。 sql注人安全漏洞的形成,根本在于sql语句的拼接,只要放弃sql语句拼接,适用规范的加码访问方式,问题自然迎刃而解。以下便是修改后的安全验证方法: 5结论 为符合软件的安全性要求,开发人员在开发过程中应尽可能多地进行安全分析、安全性测试。安全检测效能的充分发挥依赖于开发人员与安全测试人员的密切配合以及对相关人员在安全教育方面的再投资。对于安全问题,在软件完成后进行处理比在代码编写阶段处理付出的代价要大得多。包含了安全因素在内的经过完全测试的最终产品,自然具有保密性、完整性、权限(身份验证)、授权(权限分配)、可提供性、不可抵赖性。 软件开发论文:软件开发中小型项目的开发流程与特点分析 随着计算机技术的飞速发展,软件开发也已经有了五六十年的发展历史了,从上个世纪90年代以来,世界软件产业获得了飞速的发展。 一、软件开发中小型项目发展的现状 首先项目管理意识差,在项目开发过程中,一定程度的存在有人无事情做以及有事情无人做的现象。项目开发中的技术经理一心专研技术,无暇顾及各种管理事务,同时,专门聘请的项目管理经理又由于不了解项目具体问题,不涉及系统的分析设计,出现了无事情可做的现象。其次是项目成本意识差,很多项目经理都是从技术骨干当中而来,对规格、进度和成本之间的平衡知之甚少,所以在对资源进行申请的时候很好考虑成本的因素。第三是项目计划制定不合理,在制定项目计划的时候不严谨、可操作性差、随意性大,并且也没有能够贯穿于整个项目之中。第四是文档编写不规范,没有能够进行及时的更新,往往是文档写在功能模块实现完之后,并且是凭工程师的记忆来写。第五是不重视软件测试,在开发中没有规范的测试文档、没有详尽的测试用例。第六是团队意识差,各成员之间不够团结,甚至是存在矛盾,导致技术交流缺乏,出现很多模块之间的问题。 二、软件开发的特点 软件是由程序、文档和数据组成,是为实现软件产品而进行的活动,首先它具有临时性,对于软件开发的开始和结束都很明确,和一般的日常工作不相同。其次是独特性,每一个软件开发都有自己明确的目标,和其他项目不相同。第三是渐进明细性,软件开发是一个不断改进、不断完善的过程,软件开发不可能一次性完成并永久使用,在信息技术的不断发展中,以及软件技术人员的水平不断提高的基础上,软件开发肯定是一个不断进取的过程。第四是知识与技术特性,在软件开发中,存在着大量的智力型活动,需要用到管理学、现代信息技术等知识。第五是要以客户为中心,软件开发最终是需要客户接受的,通过客户接受才能实现它的价值,因此软件开发不仅要满足系统功能和性能,还要适应不同的用户以及不同观点的人的使用。 三、软件开发中小型项目的开发流程 结合软件开发的特点,为了更好的解决软件开发中小型项目开发现状中存在的问题,提高项目管理意识、控制项目成本,软件开发中小型项目开发的流程主要分为以下几个阶段。首先是软件开发中小型项目开发的启动阶段,在这个阶段中,要建立项目管理过程规范,对各种软件项目计划和需求管理进行建立,保证工作计划在软件项目活动管理中的可行性。比如制定软件质量保证计划、软件开发计划、软件测试计划、软件配置管理计划、过程改进计划、风险管理计划等。在软件开发计划中要明确项目组的费用预算和资源安排、项目组与客户之间的介入关系、项目组各成员分工安排等。特别是在软件项目启动的时候就需要开展软件质量保证活动,对项目明显和潜在的风险进行分析识别,明确各风险管理项的跟踪管理方式。其次是软件项目的实施阶段,在这个阶段中重点关注风险和需求的跟踪,开发成果、开发计划与进度和活动的一致性。成立sqa部门,指定软件质量保证负责人,通过建立bug,实现对问题的跟踪。在同一的标准结构下建立项目配置库,有效的和客户进行沟通,对客户新的需求进行及时的更改,对工作的成果进行及时的标识和管理。控制好项目成果的入库、出库和更新,更新和都由专门的管理人员统一进行,将工作成果在的时候打上标签,保证项目成员手头是统一版本的工作成果,避免在阶段工作中,由于工作成果不一致导致版本混乱,甚至是出现返工的现象,从而影响到整个项目的进度。同时,要定期或不定期的对配置库内容和软件产品基线的状态进行检查,保证库内成果的可用性和配置库的完整性。项目阶段成果和项目重要计划都必须经过严格评审,并且要取得相关方的承诺和一致认同。在项目编码阶段,互查单个工作产品的普及代码,保证单位模块的质量。在工作成果的每一次评审之前,给各位评审人员通报评审内容和范围,使评审人员更加充分的了解评审内容,从而提高评审效率,起到保证评审质量的作用。在评审中发现的缺陷,应该立即纠正,并且同时指定责任人跟踪缺陷解决过程,使缺陷能够全部被解决掉。第三是可行性研究和分析阶段,在这个阶段中要进行充分的调研、了解、分析,有项目经理和开发部经理参与完成可行性研究报告、软件需求说明书、产品需求说明书和项目开发计划。第四是软件开发设计阶段,在这个阶段中,主要是进行设计、软件平台选型、数据库和数据文件的设计、io设计、编码设计、操作流程设计、模块接口设计等。第五是软件实现阶段,在这个阶段中,主要是代码的实现、软件的跟踪调试、软件的单元和整体测试、修订软件设计说明书、编写测试文档等。第六是软件发放和维护阶段,这个阶段主要是对产品进行评价,编写产品发放报告、综合评价产品、交付给用户使用、跟进用户的问题等。 软件开发论文:浅谈在软件开发管理中的误区及对策 【摘要】在软件项目开发的过程中,软件项目管理的成功与否是决定一个项目是否能够顺利高效率完成的重要保证。但是我国大部分的软件企业在进行项目管理时都存在着各种问题,从而使项目不能顺利有效地完成。文章探讨了在项目管理过程里出现的常见问题,并给出了相应的解决策略。 【关键词】软件项目管理;项目经理;项目计划 软件行业在现在的众多行业里是一个极具挑战性和创造性的行业,体现了软件开发者的智慧和汗水,同时软件开发是一项复杂的系统工程,牵涉到许多方面的因素,在实际工作中,经常会出现各种各样的问题,甚至会面临失败。如何总结、分析失败的原因,得出有益的教训,对于项目开发人员来说,是在今后的项目中取得成功的关键。 一、软件开发中实行项目管理的意义 项目管理就是在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求,实际上就是通过项目各方干系人的合作,把各种资源应用于项目,以实现项目的目标,满足项目干系人的需求,其本质就是对时间、质量和成本的管理。 随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,项目开发的管理日益受到重视。 二、目前在软件项目管理中存在的误区 现在大多数企业都认识到了在项目中进行管理的重要性,但是仍然有许多企业在实施项目管理的过程中存在着这样那样的误区,主要表现在: 1.项目经理不够专业。在软件企业中,缺乏专业的项目管理人员来实施项目管理及担任项目经理,通常被任命的项目经理主要是因为他们能够在技术上独当一面,但是他们在管理方面特别是项目管理方面的知识比较缺乏。 2.项目计划缺乏纲领性。项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。 3.缺乏有效的管理意识。部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成人员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。 4.缺乏有效的沟通制度和机制。在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。 5.风险管理意识淡泊。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。 6.项目干系人的不确定性。在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。 7.缺乏项目团队的合理分工 。项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。 三、解决软件项目管理中存在的误区的有效策略 要想解决上面描述的误区,归根到底还是要从管理学的角度入手,即在软件项目的开发过程中加入过程管理的内容,这样我们可以在软件开发中对各个过程的质量加以控制,从而达到保证软件产品质量的目的。为了有效提高管理水平,我们应该努力做到: 1.项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。 2.计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。 3.加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。 4.制定有效的沟通制度和沟通机制,提高沟通意识;采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的(下转第198页)(上接第196页)内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。 5.通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。 6.项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。 7. 项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。 实施有效的项目管理绝非易事,对于软件企业而言,这不是一个小的改变,而是一种变革,企业需要为此付出艰苦的努力,同时,成熟有效的项目管理无疑将对企业起着至关重要的作用,项目管理的水平将是企业核心竞争力之一。 软件开发论文:基于J2EE平台软件开发特点综述 摘要:在特定框架的基础上建立目标应用系统是当前web应用开发的主流,如面向j2ee平台的struts、spring、jsf、cocoon、axis和xalan等框架都得到了广泛的应用。这些框架是软件开发人员从以往的经验和教训中总结出的设计模式。这些模式的应用,不仅降低了软件开发的成本,同时也保证了web应用系统的质量。 关键词:j2ee平台;web应用;jsp 一.j2ee平台概述 sun的java 2 enterprise edition(j2ee)平台已经成为使用最广泛的web程序设计技术。该技术主要支持两类软件的开发和应用。一类是做高级信息系统框架的web应用服务器(web application server),另一类是在web应用服务器上运行的web应用程序(web application)。全球主要的商业网站和管理信息系统大多采用j2ee平台作为首选的web开发技术,每一个web应用服务器都将需要企业开发和运行多种web服务软件。 二.j2ee平台web应用结构分析 j2ee平台的核心技术是java server page[1]和servlet。整个j2ee平台的应用结构模型如图1所示。从应用结构图明显看出j2ee完全遵从mvc设计模式[2]。下面分别对每个组件做一个介绍。 servlet组件:servlet在web应用中担任重要角色。servlet运行于servlet容器中,可以被servlet容器动态加载,来扩展服务器的功能,并提供特定的服务。servlet按照请求/相应得方式工作。在j2ee平台下,控制器组件就是由servlet来构成的。 jsp组件:在传统的html文件中加入java程序代码和jsp标签,就构成了jsp页面。java程序段可以操控数据库、重新定向网页以及发送e-mail等,实现建立动态网站所需要的功能。jsp技术大大降低了对用户浏览器的要求,即使用户浏览器端不支持java,也可以访问jsp页面。 javabean组件:javabean是一种符合特定规范的java对象,在javabean中定义了一系列的属性,并提供了访问和设置这些属性的公共方法。javabean可以作为共享数据,存放在page、request、session或application范围内。在jsp文件中,可以通过专门的标签来定义或者访问javabean。 自定义jsp标签:jsp标签技术是在jsp1.1版本后出现的。这些可重用的标签能够处理复杂的逻辑运算和事务,或者定义jsp页面的输出内容和格式。自定义标签可以使jsp代码更加简洁,有助于将jsp文件中的java程序代码分离出去,使jsp文件侧重于提供html表示层数据。对于j2ee下不同的框架,会有自己不同的标签库。 ejb组件:enterprise java bean(ejb)组件是基于标准分布式系统对象技术、corba和rmi的服务器端java组件。ejb组件和javabean组件一样,都用于实现企业应用的业务逻辑,它们的根本区别在于:ejb组件总是分布式的,sun公司制定的ejb组件模型要求ejb组件运行于ejb服务器中,而javabean组件可以和servlet或jsp运行在由servlet/jsp容器提供的同一个java虚拟机中。 xml语言:即可扩展标记语言(extensible markup language),是一种用来创建自定义标记的标记语言。xml在web应用以及web服务开发中得到广泛的应用,可用来描述结构化的数据。如在struts框架中,有两个重要的配置文件:web.xml和struts-config.xml。web.xml文件用于配置web应用;struts-config.xml用于配置struts框架。 三.j2ee平台下web开发框架 框架 (framework)[3]不同于类库(library)。框架提供的不是一组功能性的组件,而是一个软件结构,一种业务流程,以及hollywood法则(“don’t call us,we’ll call you”)。选择框架,意味着web应用开发人员只需且只能在框架限制的范围内编写业务组件和显示组件,由框架管理这些组件之间的协作。这虽然丧失了一定的自由,但是却能得到结构更加良好,质量更加可靠的web应用软件。现在,常用的j2ee平台下web应用框架包括struts、spring、jsf、webwork等。 四.展望web应用开发 纵观web应用的发展过程,有两个现象值得注意。首先,底层功能的完善会优化上层功能,上层功能的推广对底层功能提出更高的要求。当web硬件能提供高速度的带宽时,软件公司才能开发出满足用户需要的程序。web系统被大量使用往往使现有系统不能满足要求。这就要求开发出新的硬件和软件系统。例如,在http协议上,最先只有html作为文档编辑语言。当web浏览器(ie,netscape)成为计算机必不可少的上网工具时,动态的web设计语言(java,servlet/jsp,asp,cgi,等)应运而生。其后由于这些语言需要占用系统得计算资源,高速的web应用软件和主机成为大型网站必不可少的配置。在此背景下,web应用技术在整个人类的生活中开始占据重要的位置,随着web应用平台和框架的增多,如何快速有效的进行web应用开发,而且如何尽可能的使前期开发可以为多个web框架应用,成为it业界的研究方向。
软件项目论文:浅析软件项目管理中人员流动风险的管理 论文关键词:软件项目 风险管理 策略 监控 论文摘要:在软件项目管理中,频繁的人员流动是软件项目的一个风险,为了缓解这种风险,项目管理者必须建立一套策略来降低人员流动,同时,还需要监控某些因素,这些因素可以提供风险是否正在变高或变低的指示,通过这种监控管理,妥善地处理风险事故造成的不利后果,最终实现项目的总体目标。 一、引言 在软件公司中,技术人员的流动性一直处于比较高的水平,因此给公司带来了很大的损失,要想改变这种现状在短期内恐怕难以做到。但这个问题又一直困扰着公司的项目管理者,特别是与软件项目组人员组织相关的频繁的人员流动给软件项目带来了极大的风险。那么,认识到这种风险后,怎样来对这种风险进行有效的控制,采取主动行动,创造条件,尽量扩大风险事件的有利后果,妥善地处理风险事故造成的不利后果,最终实现项目的总体目标,这是本文笔者要讨论的问题。 软件风险是指软件开发过程中及软件产品本身可能造成的伤害或损失。风险关注项目未来的发展,这意味着风险涉及选择及选择本身包含的不确定性,在软件开发过程及软件产品都要面临各种决策的选择。风险是介于确定性和不确定性之间的状态,是处于无知和完整知识之间的状态。同时,风险将涉及思想、观念、行为、地点等因素的改变。 一般来说,在软件项目中,存在以下一般性风险:(1)产品规模风险—与要建造或要修改的软件的总体规模相关的风险;(2)商业影响风险—与管理或市场所加诸的约束相关的风险;(3)客户相关风险—与客户的素质以及开发者和客户定期通信的能力相关的风险;(4)过程风险—与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险;(5)技术风险—突破技术的极限极具挑战性和令人兴奋,但这也是有风险的;(6)开发环境风险—与用以建造产品的工具的可用性及质量相关的风险;(7)与人员及经验相关的风险—与参与工作的软件工程师的人数、稳定性、总体技术水平及项目经验相关的风险。 二、降低风险可采取的策略 如果软件项目组对于风险采取主动的策略,则“避免”永远是最好的目标。这可以通过建立一个风险缓解计划来达到。在软件项目中,频繁的人员流动被标注为一个项目风险,基于以往的历史和管理经验,人员流动的概率为70 %,被预测为对于项目成本及进度有严重的影响。而软件项目中,人员的频繁流动又是一个无法改变的现实,为了缓解这个风险,项目管理者必须建立一个策略来降低人员流动。可采取的策略如下: 1.找出人员流动的原因。可以与项目现有人员一起探讨人员流动的原因,比如是否公司提供的工作条件不如人意、报酬偏低、竞争激烈等。找出原因后,提出解决问题的策略,在可能的范围内改善工作条件,至于报酬,不可能无限地增加,可以把工作业绩和报酬挂钩,提高员工的工作积极性,适当控制竞争的程度,最重要的一点是要培养员工对公司的归属感。 2.在项目开始之前,分清哪些是可控的,哪些是不可控的原因,采取行动以缓解那些在管理控制之下的原因,“预防”总比“救治”更主动。 3.一旦项目启动,假设会发生人员流动并采取一些技术措施以保证当人员离开时的工作连续性。 4.对项目进行良好组织,使得每一个开发活动的信息能被广泛传播和交流,定期召开项目组工作协调会议,随时掌握项目的进展情况。 5.定义文档的标准,并建立相应的机制,以确保文档能被及时建立。 6.对所有工作进行详细复审,使得不止一个人熟悉该项工作。 7.对于每一个关键的技术人员都指定一个后备人员。 三、降低风险的监控因素 1.随着项目的进展,风险监控活动开始进行。项目管理者监控某些因素,这些因素可以提供风险是否正在变高或变低的指示。在项目组的人员管理中,应该监控下列因素:(1)项目组成员对项目压力的一般态度;(2)项目组的凝聚力;(3)项目组成员彼此之间的关系;(4)与报酬和利益相关的潜在问题;(5)在公司内及公司外工作的可能性。 2.除了监控上述因素之外,项目管理者还应该监控风险缓解步骤的效力。例如:上述风险缓解步骤要求定义“文档的标准,并建立相应的机制,以确保文档能被及时建立”。如果有关键的人物离开了项目组,项目管理者应该仔细地监控这些文档,以保证文档内容正确,当新员工加人该项目时,能为他们提供必要的信息,这是保证工作连续性的条件。 3.风险管理及意外事件计划假设缓解工作已经失败,风险变成了现实。继续前面的例子,假定项目正在进行中,有一些人宣布将要离开。如果按照缓解策略行事,则有后备人员可用,因为信息已经文档化,有关知识已经在项目组中广泛进行了交流。此外,项目管理者还可以暂时重新将资源调整到那些需要人的地方去,并调整项目进度,从而使新加人的成员能够赶上进度。同时,要求那些要离开的人员停止工作,进人“知识交接模式”。 总之.当对软件项目期望值很高时,一般都会进行风险分析。不过,即使进行这项工作,大多数软件管理者都是非正式地和表面地完成它。用在标识、分析、管理风险上的时间可以从多个方面得到回报:更加平稳的项目进展过程;较高的跟踪和控制项目的能力;因为周密计划而产生的信心。 四、总结 风险管理意味着危机还没有发生之前就对它进行处理,这就提高了项目成功的机会和减少了不可避免风险所产生的后果。实践经验证明,最成功的项目就是采取积极的步骤对要发生或即将发生的风险进行管理。对任何一个软件项目,可以有最佳的期望值,但更应该要有最坏的准备,“最坏的准备”在项目管理中就是进行项目的风险管理。 软件项目论文:浅谈软件项目管理的决策支持系统 论文关键词:软件项目管理 软件可靠性 决策支持系统 论文摘要:本文在解释软件项目管理和决策支持系统的基础上,分析出软件项目管理的局限性,进而说明应用软件项目管理的决策支持系统的必要性。最后从软件项目管理的角度来分析决策支持系统的目标,以及软件项目管理的决策具有多级性。 随着现代科技的发展,计算机应用于各个领域的管理,各个领域需要用软件系统扩展和提高自己的业务。针对不同的行业和产业,研制出了不同的项目管理软件。项目管理软件主要完成的项目管理活动分为管理活动和工程活动两类。例如:项目立项评审:评估项目立项条件是否具备,如相关部门移交资料是否齐全,客户信息是否完整,团队成员是否恰当等等;项目计划评审:评估项目计划合理性,是否与公司其他项目资源和运营目标冲突(回款):SCM(项目配置管理、Software Configuration Management):系统管理和项目有关的各类文档和软件版本,确保项目的惟一性资料信息被留存,可随时追溯项目各阶段关键文档记录(例如备忘录)。工程活动包括项目要获得实质性进展必须要做的工作,例如写计划,做需求调研,写解决方案,变更项目范围,项目启动大会,项目例会,项目里程碑会议,项目紧急事件处理会议,项目备忘录,项目验证,项目培训,项目小范围试运行,项目验收报告等等都是工程活动。 软件项目管理能完成若干事情,但是,由于软件开发过程以及应用过程中,诸多因素会造成软件的不可靠性,例如:1.需求分析定义错误。如用户提出的需求不完整,用户需求的变更未及时消化,软件开发者和用户对需求的理解不同等等。2.设计错误。如处理的结构和算法错误,缺乏对特殊情况和错误处理的考虑等。3.编码错误。如语法错误,变量初始化错误等。4.测试错误。如数据准备错误,测试用例错误等。5、文档错误。如文档不齐全,文档相关内容不一致,文档版本不一致,缺乏完整性等。另外程序代码错误,也可以造成软件的不可靠性。程序代码一个最直观的特性是长度,另外还有算法和语句结构等,程序代码越长,结构越复杂,其可靠性越难保证。所以提高可靠性从原理上看就是要减少错误。而决策支持系统(Decision Support System,简称 DSS)正好可以解决这些问题,它能很好的将那些微结构或无结构、不确定和零散的关联因素有机的综合起来,进行分析、比较和定量化,给决策者以支持,减少了决策的主观性。可见,研究并开发一个软件工程项目质量决策支持系统(Decision SupportSystem For Software Engineering Project Quality,简称SEPQDSS)对于软件企业的管理者,对于企业开发出高质量的软件产品,对于企业的长期发展来说都是至关重要和必要的。 这里所说的决策支持系统(decision support system,简称dss)是指辅助决策者通过数据、模型和知识,以人机交互方式进行半结构化或非结构化决策的计算机应用系统。决策支持系统作为一种新兴的信息技术,能够为企业提供各种决策信息以及许多商业问题的解决方案,从而减轻了管理者从事低层次信息处理和分析的负担,使得他们专注于最需要决策智慧和经验的工作,因此提高了决策的质量和效率。 决策的进程一般分为4个步骤:发现问题并形成决策目标、用概率定量地描述每个方案所产生的各种结局的可能性、决策人员对各种结局进行定量评价,一般用效用值来定量表示、综合分析各方面信息。决策支持系统的基本特征:对准上层管理人员经常面临的结构化程度不高、说明不够充分的问题:把模型或分析技术与传统的数据存取技术及检索技术结合起来;易于为非计算机专业人员以交互会话的方式使用;强调对环境及用户决策方法改变的灵活性及适应性;支持但不是代替高层决策者制定决策。 决策支持系统的灵魂是先进的管理思想。一个成功的DSS应用,应该融合了优秀的管理思想,能给应用者提供分析和解决问题的有效的方法论。DSS中所包含的计算机软硬件技术,则是将这种管理思想和方法论具体表现出来,从而让DSS用户在使用过程中能够贯彻这种管理思想、实践这种方法论。组织整体的管理绩效因此而得到提高。这从另一角度说明,应用者必须首先整合自己的管理思路,提升管理意识,明确通过DSS将实现的管理目标,才能开始DSS的实施。 从软件项目管理的角度来讲,决策支持系统的目标是使软件的功能更好地满足客户的要求,并且能在规定的时间内,在预计的资金下,开发出一个高效率,质量和可靠性能够满足要求的软件。具体包括以下五方面:软件功能完备(软件的需求完备),资金控制在计划之内,时间控制在计划之内,软件的效率和可靠性符合要求,人员之间能够合理协调达到最好的效率。 软件项目管理的决策具有多级性。因此,决策制定程序是比较复杂的。一般来说可分为三个层次:第一层,决策路线层,反映了由决策任务的提出、多级决策、批准实施的全过程;第二层,决策工作层,由决策对象进入某一个部门开始,到送出这个部门截止的部门内部处理;第三层,决策分析层,指一个部门内单个决策者或决策小组分析问题所处的环境、确定目标,并提出方案(设计)、评价分析及解决方案抉择和实施反馈的具体步骤。 由此可见,决策支持系统在软件项目管理中的应用是非常必要而且有其重要价值的。 软件项目论文:浅谈软件项目管理中的阶段收尾管理 论文关健词:软件项目管理 收尾管理阶段管理 论文摘要:在实际软件项目管理中,阶段性的收尾管理工作往往不被大家重视,其实阶段管理收尾工作也是非常重要的。本文从阶段评审,文档记录等方面来阐述软件项目管理中阶段收尾管理的重要性 随着计算机和信息产业的发展软件产品的规模也是越来越庞大,随着软件规模的扩大软件人员的增加软件项目管理的复杂性增大,各个软件企业都意识到将项目管理的理念引入到软件开发活动中开始对开发过程进行有效的管理又所谓“IT项目管理”或“软件项目管理’软件项目管理就是为了使软件项目能够按照预定的成本、进度、质量的顺利完成而对成本、人员、进度、质量、风险等进行分析和管理的活动。随着软件开发规模及开发队伍的逐渐增大软件开发活动不再是像过去的几个开发人员就可解决的事情,它需要使用开发规范或开发流程控制来约束每个开发人员、测试人员和维护人员的工作.以保证每个项目组成员按开发计划及进度准时、保质完成自己的任务。软件项目管理的各个过程主要包括二需求管理范围管理任务分解规模估算成本管理进度计划质量计划配置管理计划,风险计划文档管理团队建设,跟踪控制收尾管理项目结束。项目收尾管理作为项目结束前的最后管理工作也显得及其重要一般包括合同收尾和管理收尾两部分。合同收尾就是项目管理人员与客户对照合同一项项的核对审核是否完成了合同所要求的内容是否达到合同所提出的指标或条件也就是我们通常所讲的客户验收管理收尾就是对于项目组内部把做好的项目文档、代码、与客户交流的文件等归档保存对项目中遇到的问题及解决方法、有效的创新技术进行及时地总结,对外宣称项目结束转入维护期把相关的产品说明及技术文档转到维护组。 一、阶段收尾管理 软件项目结束的状态: 1.正常结束。2提前结束3延期结束4暂停。5取消(因变更或不可完成)。软件开发是一项复杂的系统工程牵涉到各方面的因素在实际工作中经常会出现各种各样的问题甚至面临失败。而如何总结、分析失败的原因得出有益的教训.这对一个公司来说则是今后项目中取得成功的关键。 以前会听说过这样的项目:客户验收后项目活动就随之收场,项目资料没有认真归纳总结不是束之高阁就是缺失不全但是当新项目启动时.面对新的项目问题项目组成员才发现:其实这类问题以前也遇到过,但是却无法找到相应的解决方案资料只好再投入人力、时间甚至金钱来重新经历一遍为什么相同的问题会重复出现,究其根源是因为缺少项目总结也就是说没有做好项目收尾工作。那么是不是我们只能等到项目结束或收尾时才能开始进行项目总结文档保存的工作呢:当然不是在软件项目管理的各个阶段我们都可以做收尾管理工作,也就是阶段收尾管理工作。 二、阶段收尾管理的重要性 在实际软件项目管理中.阶段性的收尾管理过程和工作往往不被大家重视其实阶段性的收尾管理工作也是非常重要的。阶段收尾管理工作的重要性主要体现在如下几个方面: 1进度管理中的里程碑每个项目都是由若干个相对独立的任务链组成的软件项目也是如此。只有在任何一条任务链都已经优化的基础上才可能进行系统的全面的优化因此保证每条任务链的效率是整个项目进度完成的前提和基础.只要能保证里程碑事件的按时完成,整个项目的进度也就有了保障。那么我们在里程碑点都来做些什么呢: 在计划好的阶段管理工作中.收集项目的最新信息和数据.并将这些数据与项目计划进行比较,来判定项目的阶段效率,进度是提前了还是落后了,成本是在控制中还是超支了?质量是否符合要求。客户对阶段工作结果满意么,及时总结经验与教训.同时及时发现项目存在的或潜在的问题以便近早采取纠正措施这就是阶段管理工作中的收尾管理,所以说阶段收尾管理是进度中的里程碑是整个项目进度优化的前提和基础。 2沟通管理中的契机沟通是保持项目顺利进行的润滑剂。与传统项目相比软件项目具有较高的技术含量和较大的风险。参与软件项目建设的用户并不都是软件开发专家.他们具有丰富的业务经验但是很少能了解软件开发的技术.随着项目工作进程的深入就会有许多新的问题出现与客户的及时有效沟通更显得尤为重要。软件项目是客户和用户共同面对的项目只有双方的积极参与才能促进项目的成功,而只有进行有效的项目沟通管理才能确保用户的积极参与。一个阶段的项目工作完成后与客户一起就前一段时间的工作进行总结和检查是十分必要的。一方面可以及时了解客户对项目工作的满意程度及时统计、分析客户对项目的意见.为下一阶段工作的顺利进行提供了保障另一方面有些因工作繁忙未能及时签署的文件,也尽快找客户给予签字确认。当双方出现纠纷时,只有双方签字的文字记录才是最有用、最有说服力的证据。 3收尾管理的基础。一个项目阶段的工作刚完成时项目组成员都保留着最新的阶段记录如阶段文档或最新的代码版本这个时候收集起米是非常容易的时间随着人员的变动或者项目的需求变更有些项目成员可能离开了项目组那时再去收集他们保存的文档资料就非常困难了,甚至有些记录永远也找不到了。好多大的软件开发项目跨几年的时间项目经理可能已经换了几任客户的项目主管也换了几位最后项目收尾管理时的文档收集、总结的工作,就是在阶段收尾管理的基础上来确保每个阶段的文档、资料都能按时完整地保存、归档。只有阶段管理收尾提供的数据信息越真实、越准确.才能保证在项目最终收尾时客观评定项目的绩效总结的经验教训和文档资料才有真正借鉴的价值总而言之.作为一个好的项目经理,一定要重视进度中的里程碑事件抓住与客户沟通的契机做好项目阶段工作的总结收尾工作如何做好这些工作呢。也就是要做好项目阶段管理收尾工作。阶段收尾管理工作是保证项目成功的重要管理手段它和项目的其他工作一样应该纳入项目计划并按计划落实。 软件项目论文:浅论系统动力学的软件项目进度管理 论文摘要:软件项目管理中存在复杂的不确定性和非线性性,特别在进度管理当中。文章采用系统动力学的方法模拟了两阶段软件项目的实施过程,该模型可以对项目的完成时间进行有效的预测,同时还讨论了人员的分配对项目进度的影响。 论文关键词:软件项目管理;进度管理;系统动力学;预测;人员分配 为解决“软件危机”,学术界和业界将项目管理理论借鉴到软件开发中,诞生了软件项目管理。众所周知进度管理、质量管理和成本管理为软件项目管理主要内容。在进度管理中,一般都采用传统项目管理方法,如甘特图、关键路径法和计划评审技术,它们都建立在项目可以分解为独立的工序上,而在实际软件项目管理中,各个阶段(工序)之间是相互联系的,如前一阶段未发现的错误会影响到后一阶段的实施,同时当后一阶段发现前一阶段有错误时需要前一阶段返工,等等如此现象很多,这种相互影响往往是非线性的,这在传统的网络图中难以表达,也超出了管理者头脑能达到的理解范围。 20世纪50年代麻省理工学院的Forrester教授创立的系统动力学为解决动态复杂问题提供了一种可行的理论、观点、方法与工具。 1系统动力学概述 20世纪50年代Forrester教授将计算机科学和反馈控制理论应用于社会、经济等系统的研究。 20世纪纪70年代,系统动力学逐渐发展成为一种了解和认识人类动态复杂系统的研究方法。2O多年来王其藩教授等学者参与了系统动力学在中国的应用研究工作,并做出了重要贡献。 系统动力学在软件项目管理中应用比较少见,用系统动力学的方法讨论了时间和成本估算,用系统动力学方法研究了项目目标进度的设定对项目表现的影响。讨论了系统动力学方法在项目风险管理中的运用,特别是在管理项目风险动态复杂性方向的特色和优势。 系统动力学强调以闭环的观点方法来认识和解决问题,这也决定了它采用反馈环路式的建模方法,即通过分析行为模式背后的反馈环路结构,改变结构中相关变量的值,了解不同策略下的不同行为模式,来完成策略的优化。 系统动力学强调反馈环路的结构关系、时间延迟、信息放大对系统行为的影响,其中结构关系表示系统各组成结构之间的相互关系,时间延迟表示决策行动落后于信息的获得,信息放大表示随着流程与时间的推移,某些信息会被放大,它对决策行为的影响会随之被放大。 2模型的建立 软件项目管理往往包括多个阶段,这些阶段之间是相互联系的,彼此构成网络。但是两阶段间的关系是问题的基础,故以2阶段软件项目开发为例。模型基于如下假设:①每个阶段开发都存在一定的错误,这些错误一部分在本阶段被改正,一部分需要到下一阶段才能发现。②在每个阶段发现错误的机率与从事调试的人员多少有关。③上一阶段遗留的错误影响下一阶段的开发以及调试。④每个阶段的人员是固定的,开发人数多必然导致调试人数少。⑤项目的进度为第一阶段开发,调试,第二阶段开发,第一阶段返工、第二阶段调试。其中第一阶段返工与第二阶段调试是并行的。 2.1状态变量以及之间的衔接 模型中的状态变量共有5个,“毛开发量1”,“已更改项目1”,“返工项目”,“毛开发量2”,已“更改项目2”分别表示第一阶段的开发、调试、返工,第二阶段的开发,调试,其关系如图1。 只有上述5个工序都完成,该项目才算完成,图2用辅助变量“整个项目进度”表示了研究关心的项目进度情况。 2.2速率变量的设定 模型中共有5个速率变量,其设置分别为:实际开发速率1=剩余工作量影响1×开发速率1×开发人效率×开发人数1。 调试1一调试人数1×调试效率×剩余错误影响1×时间衔接1。 实际开发速率2一开发人效率×开发2×剩余工作量影响2×时间衔接2。 调试2一调试人数2×调试效率×剩余错误影响2×上阶段错误×时间衔接3返工=调试人数1×调试效率×剩余遗留错误影响。 需要说明的是:“剩余工作量影响”、“剩余错误影响”、“剩余遗留错误影响”。这三个影响主要采用了如图3的参考模式。 其中“剩余工作量(错误)影响”说明当工作开始时工作速率比较低,当工作解决尾声时速率也比较低,中间速率最快;“剩余遗留错误影响”表示当第一阶段遗留的错误越多,第二阶段的速率越慢;这符合实际情况。 其它辅助变量的设置不再赘述,该模型的整体流图如图4所示。 3项目进度的估算 建立好模型后,通过设置常量和决策变量可以对系统进行模拟。这里令第一阶段和第二阶段的人员都为20人,第一阶段和第二阶段的预计工作量都为1000,错误率为0.2,第一阶段开发人员为10,调试人员为10,第二阶段开发人员为7,调试人员为13,模拟得到的项目进度如图5所示。 从图5可以看出在整个工程160(天)完成,并且在第35(天)第一阶段初次完成开发,在70天完成调试,在125天完成第二阶段初次开发,在160天完成第一阶段的返工和第二阶段的调试。 4人员分配对项目进度的影响 从模型流图(图4)可看出,问题的决策变量是每个阶段人员的分配以及人员的工作效率。提高工作效率自然会加快进度,这不需要讨论,这里主要研究人员分配,特别是第一阶段的人员分配对整个项目进度的影响。 模型假设第一阶段遗留给第二阶段的错误的多少取决于第一阶段从事调试人数,即:阶段1遗留错误一错误一(错误×调试人数1作用)。 其中“调试人数1作用”采用了“S型曲线”参考模式,表示调试人数很少时发现错误的概率小,随着人数增加发现错误概率迅速提升,到人数趋于饱和时概率趋于稳定。 在第一阶段遗留错误对第二阶段的影响上,以对第二阶段的调试工序的影响为例来说明,模型假设第二阶段的调试中能逐步发现第一阶段的遗留错误,故而交给第一阶段返工,同时第二阶段的调试继续进行,并且调试的速度受到第一阶段剩余遗留错误的影响,即:调试2一调试人数2×调试效率×剩余错误影响2×上阶段错误×时间衔接3。 图6分别模拟了总人员为20人的前提下第一阶段开发人员为5、10、15、18共四种情况对应的整个项目的进度。从图中可以看出开发人员为15时进度最快,开发人员过多(18人)和过少(5人)都会导致项目进度的增加,这符合现实情况。导致这样的原理在于:当开发人员过少,则延长了开发过程;当开发人员过多,必然导致调试人员过少,虽然第一阶段的开发过程时间缩短了,但是势必增加调试过程的时间,以及增加遗留错误进而影响下一阶段的进度。故而有一个适中的人员分配方案。 5结束语 软件项目管理系统是一个动态的复杂系统。采用系统动力学的方法有助于分析系统的变化行为,文中的模型主要分析了在总人员不变的情况下人员分配在两阶段项目管理当中的影响。由于实际当中人员可能是变动的,如除了正常的人员流动外,管理者可能通过观察项目的进度人为的调整人数。还有在实际中影响进度的因素很多,如人员更替、工作效率、经济资源等,同时这些因素是互相藕合的,如何更细致考虑这些影响因素从而准确的模拟进度管理需要深入研究。 软件项目论文:浅谈软件项目实训中的人员选择与管理 论文关键词 软件高职 项目实训 人员选择 人员管理 论文摘要 项目实训是软件高职教育课程体系中的重要环节。结合软件高职项目实训中人员管理的实际情况进行分析和论证,同时给出实训人员选择与管理工作的基本原则和方法,并总结其中的一些基本经验。 随着国家大力发展职业教育的政策的出台,职业教育在全国范围逐渐兴起,软件高职教育作为职业教育的一个重要组成部分,为国家和地方培养了大量的具有较强动手能力的一线人才,创造出巨大的生产力,带动整个IT行业的发展,推动经济和社会的进步。项目实训作为软件高职教育课程体系中的一个重要环节,无论是对学生理论知识的拓展还是动手能力的培养都起到至关重要的作用。目前,福建省的软件高职项目实训还处于初级发展阶段,无论在项目设置上还是在管理方式上都存在不足。笔者结合实际教学和管理经验,对软件高职实训中的人员管理方式和方法做初步的分析和探讨。 1 人员的选择 教育的宗旨是以学生为本,平等地对待每一位学生,让他们在最大程度上发挥潜力。但是实训工作毕竟带有一种企业模拟性质,学校注重教育公平,而企业更关注开发效率和项目成本,这两者在一定程度上是此消彼长的对立面。因此,如何通过合理的人员选择和配置,找到既能平等地对待每个学生,又能够最大限度地提高项目团队开发效率的平衡点,是实训项目管理人员所急需解决的现实而又棘手的问题。以下是笔者在实践中探索并采用的2种较为合理的人员选择与配置方案。 1.1 T R式自由组合法这里的T指的是Test,即测试,包括技术笔试和专业面试。在两项测试之后应形成一个比较合理的量化指标,该指标应着重突出候选人员的技术能力和团队意识,公布所有候选人员的各项量化指标。为保护学生的隐私,在公布时可以用编号取代学生的真实姓名。这里的R指的是rate,即比例。项目管理人员可以预先设定好小组成员结构的技术等级比例,参照学生的综合得分情况,按照1:2:1的高中低3个层次分布比例较合理。这种做法既可以避免单纯比例式自由组合给学生带来的盲目性,也能够比较真实地反映学生的能力水平,可以科学地、客观地组建起较为高效的团队,从而能够在后续阶段提高团队整体工作效率,也为管理工作带来方便。 1.2 T R交互式人员确定法首先寻找若干名班委组成评审组,项目管理人员或教师负责领导该评审组;接着参照T R方法得出候选人员的各项评估指标和综合指标,以及小组结构比例;然后由评审小组成员进行数据分析并结合每个成员实际情况确定各小组的组成人员。将初步形成的分组名单公布告知各候选人员,征求每位成员意见,由评审小组跟持反对意见的候选成员进行当面的会议式的沟通,进行合理的调整,经此步骤之后形成最终分组名单并公布。这样做实现候选成员与管理人员之间的交互,能够把纯粹的硬性考核成绩指标转化为“考核成绩指标+交互式分析”。这样较为客观且人性化的评判方式,既能够得到较为真实的数据,又能够吸纳学生合理的意见或看法,从而利于更科学的人员选择。 2 人员的管理 美国心理学家亚伯拉罕·马斯洛把人的需求分成生理需求、安全需求、社交需求、尊重需求和自我实现需求5类,依次由较低层次到较高层次排列,在管理中他建议通过满足人的需求来激发他们。 在学校实训的项目组中,成员的生理需求和安全需求都基本能够得以满足,因此,保证成员的社会需求、受尊重需求和自我实现需求的满足,对管理者来说有十分重要的意义。1)满足组员的社会需求就是为组员提供相互交往的时间和场所。实训项目的交流不应仅局限在小组的范畴,应鼓励小组与小组间的相互交流,条件具备的话可以组织学校跟学校间类似项目组间的交流。形式可以多样化,如电子邮件、组建QQ群、网络会议、座谈会和技术讲座等互动方式。2)为了满足组员受尊重的需求,应该让他们感到在项目小组中受到人格上的尊重,技术长处被认可。对于参加实训的学生来说,对他们做出的成绩给予充分的肯定就是一种简便高效的方式,如针对某个技术环节开展一次技能比赛,或者开展评审会定期对项目阶段成果进行评估,对优秀团队及其成员进行表彰等。3)为满足组员自我实现的需求,应该在项目取得一定成果的基础上,分配给组员具有一定挑战性和难度的任务,这些任务不能超过学生能力的范围,同时给他们提供课外的辅导以提高他们解决这些问题的技能。任务的完成情况可以作为附加评审内容纳入学生最终的实训综合成绩中去,给学生超越自我的动力。 3 团队的管理 3.1 增强小组凝聚力一个有强大凝聚力的小组是最高效的小组,小组中的成员在思想上能够形成共同的准则,在工作中能够紧密配合和协调,组员跟组员之间能够互相学习、相互关照,从而消除隔阂,用集体的力量解决许多工作中的问题。增强小组凝聚力的方式有许多,如给小组起个性化的名字、开展游戏或者室内或户外运动等方式增进组员间的沟通。另外,提高小组组员的责任感、诚信度以及保障他们的知情权、提供发展的空间等,都是增强小组凝聚力的有效方法。 3.2 增强小组沟通沟通作为软件开发过程中的重要环节,对于开发效率的提高和团队的整体发展具有决定性的意义。1)适当的小组规模。在编制小组成员时应考虑到人数对沟通的影响,成员太少,沟通容易但不利于开发效率;反之,成员过多会使得沟通变得十分困难,从而使效率严重下降,因此,合理的人员安排才是关键。根据经验,一个实训小组以4~8个为宜,其中6人组最为合适。2)合理的性别比例。如果小组中的组员性别均相同,可能会导致冲突,使得沟通无法正常进行,所以在确定小组结构时应注意男女比例的控制。对于软件开发类实训项目而言,小组中的男女比例应控制在3:1左右,其中女性组员可以作为小组的协调员。3)适当的小组负责人。小组负责人除了领导小组工作外,还负责协调小组成员之间的沟通。受尊重的小组负责人可以提高小组凝聚力和工作效率,无论对自身的进步还是对整个团队的发展来说都是大有裨益的。 软件项目论文:关于工作流的软件项目管理系统的设计与实现 论文摘要:本文介绍了一个基于工作流技术而研制的软件项目管理系统。文章首先描述了传统软件项目管理系统的不足之处,提出用工作流的方法来设计软件项目管理系统,然后介绍了一些理论基础。文中重点阐述了系统的设计结构和所采用的一些技术,并给出了部分的具体实现方法。 论文关键词:工作流,JMS,项目管理,SPP,建模,工作流网 1前言 2O世纪7O年代以来,为了解决软机危机,改进软件过程能力,计算机科学家提出了软件工程的概念,将系统化的、规范化的、可度量的方法用于软件开发、运行和维护的过程。近些年来,随着计算机技术的进一步发展,相应的使用软件工程方法的软件项目管理系统也有了显著的发展。但是,由于开发流程中存在的不确定性以及项目变化等因素,这些系统也暴露出一些不足之处。 传统的软件项目管理系统,一般是由图形用户接口(GUI),应用程序和数据库组成,用户通过GUI向应用程序发出请求,应用程序处理这些用户请求,并且访问数据库,返回用户所要求的结果。这种模型在流程稳定的时候是可以满足需要的,它的缺点在于: 1)建模过程是之前设定好的,无法改变; 2)缺乏柔性,系统开始运行之后,预先定义好的条件就无法改变了; 3)可扩展性较差,如果想要增加或者修改相应的功能,整个系统必须重新开发。 目前,对工作流技术的研究以及相关产品的开发是国内外学者研究的热点问题之一,很多管理系统都采用工作流技术来克服上述问题。工作流起源于生产组织和办公自动化领域,它是针对日常工作中具有固定程序的活动而提出的概念。目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。 WFMC给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行,以实现整体的业务目标。而这正适合于软件开发过程管理,基于上述的理由,我们结合江苏省十.五攻关“工作流技术的研究和应用”项目,研究并开发了基于工作流的软件项目管理系统CMMFlow,目前已应用于软件能力成熟度模型(CMM)的管理,其效果相当良好。 2理论基础 2.1 CMMI3级精简并行过程(SPP)模型 利用工作流技术可以设计和建立一个工作流环境,在此系统中,我们使用CMMI3级精简并行过程(SPP)模型来支持软件过程实施。 SPP把产品生命周期划分为产品概念、产品定义、产品开发、产品测试、用户验收和产品维护等6个阶段,包含项目管理、项目研发和机构支撑等3类过程、19个过程域。其中项目管理过程包含立项管理、结项管理、项目规划、项目监控、风险管理和需求管理等六个过程域;项目研发过程包含需求开发、技术预研、系统设计、实现和测试、系统测试、Beta测试、客户验收和项目技术评审等8个过程域;机构支撑过程包含配置管理、质量保证、培训管理、外包与采购管理以及服务与维护等5个过程域。 我们把每一个过程域都看成是一个流程,其中过程域之间的关系是线性为主,并行、迭代为辅。每个过程域包含若干原子活动。通过建立活动与角色以及角色与具体用户的关联,即可建立一个可执行的业务过程模型。 2.2基于petri网的可视化建模工具 在这个系统中,我们的建模工具是使用工作流网和XP—DL共用的策略,采用的是扩展的Petri网,对最终用户来说,足可视化的图形建模工具。为符合WfMC规范,工作流机装入的模型用XPDL存储,可使用XPDL和Petri网两种表示形式,验证是使用Petri网形式。 在Petri网的基础上,Aalst提出了工作流网(WF-net)的概念,其定义如下: 一个Petri网PN=(P,T,F)被称为工作流网,当且仅当它满足下面两个条件: 1)PN有两个特殊的库所:i和0。库所i是一个起始库所,即·i= ;库所O是一个终止库所,即O·= 。 2)如果在PN中加入一个新的变迁t,使t连接库所。与i,即·t·={0),t·={i),这时所得到的PN是强连接的。 下面我们给出一个用工作流网定义工作流的简单例子,例子描述的是软件立项管理的工作流过程。 根据工作流网的基本定义,通过使用不同类型的基本组件和触发机制,对立项管理进行建模,得到如图1所示的工作流网模型。 基本流程如下:立项建议小组进行立项调查,然后进行项目构思和可行性分析,在完成之后进行立项申请,然后立项审查小组对此立项进行审查,决定是否同意立项。如果否决,则必须重新进行立项建议,如果同意立项,进入项目筹备阶段,流程结束。 3系统设计 3.1设计思路 整个系统构架采用B/S模式,参照J2EE框架,主要分为四层: 1)展现层:主要包含客户浏览器端和Web服务器端的applet,jsp和servlet,负责和用户交互,接收数据,显示结果等。 2)商业逻辑:用于处理展现层从用户端接受到的数据,包含了控制应用处理的所有规则,同工作流执行服务通讯,并且将展现层和数据服务层连接起来。 3)工作流执行服务:是流程运行和管理的核心组件,包括工作流机和任务表管理器。 4)数据服务:负责提供对数据的存储和读取服务。 此外,在系统设计的过程中还采用了以下的技术: 1)J2EE框架 J2EE体系包括javaserverpages(JSP),javaSERVLET,enterprisebean,WEBsevrice等技术,提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用。它通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。J2EE中多数标准定义了接口,例如JNDI,JDBC等,这使得遵循这些标准的不同开发者之间的模块可以无缝地互连。 2)JMS JAVA消息服务(JMS)定义了Java中访问消息中间件的接口。JMS只是接口,并没有给予实现,实现JMS接口的消息中间件称为JMSProvider。 在JMS中,每个客户机连接到一个为发送和接收消息提供框架的消息传递程序。客户机需知晓消息格式和消息目的地。根据JMSAPI,消息传递分为两种模式,点对点和/订阅模式。 点到点消息传递方法使用下列工具,如消息队列、发送方(或消息制作者)和接收方(或消息消费者)。客户机将发向特定接收方的消息发送到唯一的队列。当接收客户机从特定队列抽取消息时,它发出确认消息,表明消息已处理。队列将保留所有消息,直至接收方收到消息或消息到期。/预订消息传递方法使用者、订户和主题的概念。客户机将消息发送到主题或内容层次结构。为了接收到消息,消息消费者必须预订此主题。因此,对于这种方法,可以将消息制作者作为者,而消息消费者则是订户。JMS供应商将多个者发来的消息分发到主题和此主题的多个订户。 点对点模式适用于使用集中式工作流机的系统,对于大规模的分布式应用,/订阅模式则相当有效,但是,在保证各个分布式工作流机的一致性问题上则稍有难度。 3.2系统结构与功能特点 CMM软件项目管理系统的系统结构如图2所示,它主要由过程建模工具,工作流机,任务表管理器,web服务,客户端和数据库接口等组成,该系统的各功能特点是:在这个系统中,我们使用浏览器作为客户端,通过Http请求与Webserver交互,Websevrer再将收到的请求加以处理,判断哪些是应当丢弃的,哪些应该交由工作流执行服务处理,并将处理后的结果发送给工作流执行服务器。工作流机收到Webserver传送过来的数据后,会根据消息的具体内容继续执行流程或者将流程挂起或是结束流程的运行,并且更新任务表管理器的内容,在需要的时候调用相应的应用程序来完成任务的需要。在过程建模工具中建立,修改,删除的模型将通过存储过程来修改数据库中已存储的模型。 websevrer和工作流执行服务也都要通过存储过程来访问数据库。各部分的功能特点描述如图2。 1)建模工具:使用基于Petri网的建模方法来对企业经营过程进行过程定义,将经营过程转化为工作流引擎可以执行的形式。同时还提供对过程模型进行分析,测试的工具。 2)工作流机:工作流引擎是工作流平台的核心,它是业务流程的任务调度器,从某种程度上看,工作流机也是业务资源管理器。它的主要作用是实例化及执行过程模型、为过程和活动的执行进行导航、与外部过程交互完成各项活动、维护工作流控制数据和工作流相关数据等。 3)任务表管理器:过程模型中的每个活动都被看作是一个由计算机自动执行的任务或由用户手动执行的任务,任务表管理器负责对这些任务的监视和维护。 4)Web服务:包含了用于处理用户请求和显示结果的jsp和sevrlet,其主要工作是将客户端与工作流执行服务连接起来。 5)客户端客户端是基于浏览器方式的瘦客户端,方便管理员管理整个工作流管理系统的运行过程,和一般用户管理和执行分配给自己的任务。 6)数据库接口:实现了底层的数据存储,包括过程定义,工作流控制数据,工作流相关数据,企业组织模型等工作流管理系统运行过程中必须的信息。 4系统的一些实现技术 4.1任务的自动分配和触发机制 可以根据模型定义自动地分配任务,当一个过程实例运行的时候,活动可以根据模型定义自动分配到指定接收者,并且,有关完成此活动所需要的数据也会传递给相应的接收者,从而提高业务过程执行效率。模型中使用角色机制,不指定具体人员,这样,人员变更不至于引起模型的变动。系统支持迟后绑定,即可以在活动运行的时刻才确定此活动由谁来完成。 流程从使能到运行的控制,采用触发机制,分为人工触发、自动触发、消息触发和时间触发。人工触发一般是用户从任务表中选取其中一项任务来完成,自动触发是一些通过程序自动执行的过程,一旦使能就被触发,消息触发是指系统外部的消息到达触发,如Email,时间触发是由定时器来触发。 4.2活动信息的统计 系统可以通过对活动信息统计,并将活动的运行状况和统计信息存储在数据库内。通过提供有关工作量的信息,可以在建模的时候预测所需要的时间,并且在活动结束时计算任务完成情况,与初始模型进行对比,生成相应的图表以判断工作效率,辅助决策经营。除系统提供的几个基本统计模型之外,用户也可以利用系统提供的工具,自行扩展新的模型来完成工作量信息统计和生成对比图表。 结论根据软件过程管理的需求,以工作流技术为核心,J2EE技术为支撑,结合SPP模型,文章给出了一个软件管理系统的体系结构和其中的一些技术实现。但是,为了更好地实施软件过程控制和度量,我们发现,还有一些问题需要进行深入的研究。 首先,软件过程模型的建立就要结合具体的实际情况,需要深人了解整个软件过程,并根据不同的需要修改模型来完成资源的动态配置和管理。另外,关于分布式工作流机之间的通讯和一致性问题也是相当重要的问题,需要拟定合适的策略来实现资源优化调度。 软件项目论文:项目管理理论中关于软件项目外包采购管理的探讨 摘要:本文分析了目前软件外包采购管理的重要意义和目前的形势,提出基于“双赢”策略的软件外包采购思想。在项目管理理论、CMM和ISO9000的基础上,提出和细化了软件项目外包采购管理的总体框架和具体操作内容。旨在通过对软件外包项目采购的选择购买、跟踪与控制、评估验收和项目后处理等过程的研究,来提高软件外包采购的项目管理水平,满足承包方对分承制方产品在质量、进度和成本等方面的要求和对外包过程的有效控制,为软件项目外包采购管理人员提供具体的操作过程。 一、基本概念和背景 项目管理理论是一门综合多门学科的新兴研究领域,共有九大知识领域,包括项目集成管理、项目范围管理、项目时间管理、项目费用管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理。项目采购管理是指需要从执行组织以外获得货物和服务的过程。通常把货物和服务称为产品,把买方称为业主或对应分承制方的总承包商,而卖方称为承包商、厂商或供应商。项目采购管理一般包括以下主要过程:采购计划编制,询价计划编制,询价,承包商选择,合同管理,合同收尾[ 1 ].对于软件产品,一般采购可以分为两大类,一类是对已经在市场流通的软件产品进行采购。例如,某企业想做信息化建设项目,涉及到数据库,那么它就可以在目前市面流行通用的几种厂家和种类的数据库中选择。例如Oracle公司的Oracle数据库,Microsoft公司的SQL Sever,IBM公司的DB2数据库等等。然后根据自己的需求,通过询价、签合同、安装培训等过程来购买此类产品。这种采购过程基本已经形成几套通用的解决方案,比较简单,中国企业在处理这类产品的采购时,大部分都处理的较好。个别的企业由于需求分析不清晰,培训工作不到位等原因,也会产生购买的产品不适用,或不会用的情况。另外一类软件产品采购的形式是外包采购。它是指在市场上没有出现现成的产品或者没有适合自己企业需求的产品的情况下,需要以定制的方式把项目(功能模块)承包给其他企业。例如某企业需要实施企业资源计划项目(ERP),虽然可以购买BAAN软件,但是基于本企业业务流程的管理软件必须定制,对于各个原有孤立岛的集成软件,无法购买现成的产品,必须自己开发或外包给别的公司。 二、软件项目外包采购管理的意义 许多大型复杂工程项目的实施需要业主、总承包商、分承制商、供应商和开发制造商等共同合作来完成。因此在任何甲方和乙方之间必不可少的涉及到部分子项目(功能模块)的采购活动。目前社会中,企业的信息化、网络化建设正在世界范围内展开。谁先进行信息化改造,谁就早日适应社会发展的要求,获得巨额利润。大规模的企业信息化建设形成了庞大的软件产品市场,促进了软件业的发展。许多项目庞大复杂、高风险并且涉及高科技信息领域,在客观上使企业需要采购和外包许多产品,包括软件产品。主观上,在经济全球一体化形式下,这种外包采购作为采购活动的一种特殊的、更为复杂的形式,在企业中更为普遍存在。企业为了在日益竞争的社会环境中增强自身的核心竞争力,需要根据企业的特点,专门从事某一个领域或几个领域的业务,在某个业务领域内形成自己的核心业务,把企业内部的智能和资源集中在那些有核心竞争优势的活动上;把一些非自己擅长的业务领域的子项目和功能模块外包给有实力和优势的公司,才有利于加快项目的完工进度,降低风险,优化资源配制,保证项目质量,降低成本,创造更高的价值。 以电信行业为例,爱立信公司2000年底宣布把手机生产的绝大部分业务外包给新加坡的Flextronics公司,专注于移动通信网络设备业务。原因是爱立信的移动通信网络设备的销售占爱立信公司销售额的54%,利润达90%以上,占有全球的移动通信市场分额高达30%,而手机生产的投资回报率很底,甚至出现亏损情况。对于爱立信而言,手机生产“外包”是在信息化时代的战略调整,希望通过外包生产,调整投资结构,使手机降低成本并且尽快盈利,集中精力稳定和拓展电信业的新市场。出于同样目的,美国的摩托罗拉公司也表示将外包部分地区的手机生产业务。作为手机市场份额最大的诺基亚,在专注于手机生产业务的同时,大力开发周边产业。希望以手机业务带动相关产业的发展。从三大公司的投资趋势,可以看出,“外包”作为一种先进的国际专业化的生产方式正被一些大公司越来越多的采用。我国正处在信息化建设的高速发展阶段,必然会有越来越多的企业由于自身的能力限制或业务发展的战略选择,将采取业务“外包”的生产方式。 就软件项目外包采购的市场来说,2000年是企业信息化实施的第一年,国内企业,特别是大型企业的信息化项目开始运作。行业信息化改造重点将由原来的电信、金融、海关等行业转向交通、制造、医疗等传统行业。这些行业由于自身计算机技术水平和业务发展重点的原因,将会把大量的软件项目外包给软件公司。根据CCID的统计(软件可以分成平台软件、中间软件和应用软件),2000年中国软件市场中应用软件的销售额为147亿元,占软件总市场份额的63.9%.预计到2005年,计算机信息服务和软件市场销售额增长到1750亿元。届时我国软件项目“外包”市场潜力可想而知。 三、软件外包采购管理存在的问题 虽然在传统行业,许多工程项目的采购活动,例如机械工程项目或建筑工程项目等等已经形成比较成熟的管理体制和标准。但是软件项目的外包管理工作并不象其他行业那样顺利。 软件工程项目管理引起广泛注意源于20世纪70年代中期,当时发现70%的项目是因为管理不善而引起。20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。商用软件通常只有9%(中小型软件公司有16%)的软件项目能够及时交付且费用并不超支。 这里有多方面的原因:软件产品作为一种特殊商品形式,具有高度不可测量性和高度柔性;软件企业开发能力还不太成熟,软件开发大多数还处于手工作坊方式,软件研发企业有其自身的运做方式,人为因素比重大,不好量化管理。由于不确定因素太多,许多软件开发企业对于自己的项目都难以精确控制进度、质量、资源和成本,那么对于业主来说,想对外部企业(例如分承制商)保持良好控制力的难度就更大了。再加上具有技术优势的软件开发商一般集中在几个科技发达的大城市,与业主的距离远,相互的交流不方便,因此许多软件采购项目的实际应用效果都差强人意:不适用,进度超期,性能达不到标准,成本太高等等情况时有发生。 软件项目外包采购的成功与失败不仅仅影响到当前软件项目的质量、成本和工作进度,而且关系到企业信息化建设整个项目的整体结构、性能以及进度,意义重大。特别是当软件项目作为整体项目计划关键路径的一个环节,软件项目采购的进度直接影响整体项目的进度,并且总成本将成指数级增加。由于软件采购的情况特别复杂,涉及的学科领域不仅是科学技术上的,还有商业上的和观念上的,软件项目外包采购管理水平的高低,将直接关系到企业整个信息化建设进程。因此软件项目采购管理作为项目管理理论中一个新的研究课题,有必要给予足够的重视。 四、目前软件外包采购管理情况 美国项目管理协会的“项目管理知识体系指南”(PMBOK)[1]、美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(CMM)[2,3]和国际标准ISO9000-3[4]中虽然对外包采购管理的流程有过论述,但是他们指出的只是外包采购管理的一般原则;虽然人们可以结合自身企业特点实施标准,具有一定灵活性,但是事物的另一对立面就是操作过程不具体。这给软件产品的外包采购管理者带来具体操作上的困惑。另外PMBOK体系原则上是应用在各个行业的,缺乏针对软件领域的特点做专门的论述。ISO 9000-3系列和CMM虽然是针对软件领域的标准,但是ISO 9000-3的最大的特点是只告诉你要按规定做,不强调效果和后续改善,不强调经验积累和后评估。从这个意义上讲ISO9000注重水平的评估,不太强调提高企业成长的过程,因此对于提高企业的管理水平意义不大;CMM虽然旨在强调企业的过程能力的持续改进,但是它重点强调软件的开发过程管理和产品管理,缺乏软件的分发、转交和服务等方面的管理标准,所以也有一定的局限性。 五、基于“双赢”策略的软件外包采购思想 本文作者在集成美国项目管理协会的“项目管理知识体系指南”(PMBOK)和美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(SW- CMM,SA-CMM)和ISO9000-3中关于外包采购的宗旨的基础上提出“双赢”策略的软件外包采购思想。 “双赢”策略的软件外包采购思想旨在利用双方业务能力互补,通过共同合作完成软件外包项目,达到“双赢”的目的,促进双方业务总体能力的提高。这种“双赢”策略要求双方在以下方面达成共识:双方共同关注过程控制,才能保证有效结果;只能成功,不能指望依靠惩罚手段来收回采购成本,软件外包采购项目的失败对整个项目带来的损失是巨大的;在合作过程中,建立对分承制商关系的管理体系,作为以后合作的基础;重视开发过程的风险评估和采购项目后评估,使得双方业务能力得到持续提高。 传统的外包采购中,采购方只关心分承制商产品的进度和质量,以为只要分承制商按期、按质交货,就可以圆满结束此次采购活动。有些项目尽管前期进度和质量满足合同要求,但是许多是以高投入、高负荷、高消耗等手段来保证的,这给后期带来极高的风险。在阶段评审中,如果采购方对分承制商开发过程中的费用投入、人员负荷、资源消耗、组织结构变化等漠不关心,因此就不能及早预见风险、控制风险。很难想象,后期在费用透支、人员疲惫或流失严重的情况下,分承制商仍能保证产品质量和进度。这种情况下,采购方只能要么加大投入,要么终止合同,并要求赔偿,要么延期验收等等。其副作用可想而知。而分承制商为了减少损失,根据博弈论中子博弈精练纳什均衡原理,必然采取降低质量要求,减少投入的策略,来加快进度。结果最终还是采购方遭受损失。 六、软件项目外包采购管理过程 为了保证软件外包采购项目的顺利进行,本文作者在上诉理论体系和“双赢”采购策略的基础上,提出和细化了软件项目外包采购的总体框架和具体操作内容,旨在为软件项目外包采购管理人员提供具体的可操作过程。 对于本采购过程,如果业主方由于行业、人员等原因,没有健全的监控部门,可以聘请具有软件监理职责的公司,或者总承包给具有一定软件工程监控能力的公司。这时的总承包公司角色相当于本文提到的采购部。 软件项目的整个外包采购过程可以分为十个工作阶段,包括总体项目需求分析和设计、子项目的需求分析、厂商选择、分承制商开发、业主阶段评估、交验测试、安装、培训、维护,后评价。 在开始外包采购之前,首先业主要完成项目的总体需求规格说明书和承包项目的需求说明书。一般承包项目的需求分用户需求和分配需求。对于分承包商来说,业主对软件项目所提出的需求通称“用户需求”。对于业主来说,系统总体分配给软件的系统需求通称“分配需求”。如何作好子项目的需求分析和管理,请参阅《软件需求》,详见参考文献5.然后业主把需求说明书交给采购组组织采购。采购部门收到需求说明书后,再补充质询调查表、报价指南、综合条款及条件等文件,组成采购质询技术文件发往厂商进行质询。采购部门在厂商质询的基础上,准备了厂商选择和投标估价等技术文件后,向业主送审,提请业主批准和确认所选厂商。在厂商选择和投标估价这两个文件中,采购部根据拟采购的软件对被质询的至少三家以上的供应厂商,就技术开发成熟能力、资源(包括以有的产品、硬件、软件、信息和已经过的培训)、资格和信誉、过去的合作关系、价格、提供的售后服务(包括培训和维护)、分承制方组织配置结构、与质询要求的差异等方面,经过经济技术和商业战略角度出发进行全面评估,经过其他各部门(例如系统工程组、软件工程组、质保组、财务组)审核后,列出供应厂商的优劣次序,择其优者为该项目的供应厂商。采购部一般以月为单位向业主通报软件采购情况。一般以招投标方式或内部评审的方式来确定分承制商。 分承制商在接到采购部的定货以后,就可以进行工作说明书、用户需求说明书、软件需求规格说明书、软件开发详细计划和成本概预算、测试计划、质量控制方法、风险控制、拟采用的软件工程标准和软件生命周期等文档的制作。然后分承制商把有关的技术资料文件通过业主的采购部送给业主进行校核和批准,然后才能开始开发。 业主在接到分承制商的上述材料后,组织系统工程部、软件工程部、质保部、财务部、采购部、法律部就上述材料中的开发项目视图和需求范围、使用或需要购买的软硬件、进度计划和成本、测试计划与案例、使用的技术和工程标准、人员配置等进行评审,并出具评审文件和风险评估、控制建议书。并由采购部制定采购项目监督评估计划书。合格后,由采购部、质保部及法律人员与分承制商签署详细的软件采购子合同。如需要对软件项目投保,以此来降低风险,需要和分承制商协商后,纳入合同文件。 分承制商在签署合同后可以进行设计和开发。业主应该委派采购部监督分承制商的工作。采购部应该有计划的组织质保部、软件工程部的项目计划管理人员和配置管理人员,定期对分承制商的开发活动进度、质量、成本等进行评估,并形成评估建议书。送审业主方的系统工程部、项目管理人员、分承制商的此项目的负责人。分承制方的项目负责人要对评估建议书的建议进行书面回复,并确保实施。 分承制方对所有需要采购的资源(软件、硬件、人力资源等)负责进行检验;采购部有权在任何时候对分承制商所采购的资源进行验证,使之符合所采用的规格说明书、规范、标准和其他技术文件所规定的要求,确保分承制商专款专用,建立开发环境。在这个阶段之前,采购部门和分承制商首先要确定由分承制商提供的验证建议书,并作好准备工作,提交检验用的技术文件,包括厂商说明书、设备性能数据表、配制清单、试验程序、检验技术要求。在检验的物质条件和技术条件均已准备妥善后,分承包商就可以向采购部并通过采购部向业主提出书面检验申请。一般分承包商可以提前三周通知采购部,由采购部提前两周以书面形式向业主提出检验申请,由业主召集系统工程部、软件工程部、质保部组成验证组,在规定的时间、地点检验。通过检验后,分承包商进入项目开发阶段;业主进入监控和评估阶段。对于重大关键项目,业主可以派遣项目监督员短期或长期进驻分承包商单位。 由于作为外部单位,业主不便时刻监督项目的开发过程。虽然理论上需要把分承制商看作是自己的一个项目部门来对待,纳入自己的进度控制和质量控制体系,但是客观上由于分承制商与业主距离较远,人员不熟悉,各自有自己的企业文化和管理体制,双方之间的信息沟通不畅,业主难以实时监督分承制商的开发进程和质量。最好的办法就是在分承制商的软件项目的各个里程碑处和分承制商一起进行检查和评估。软件项目一般可以划分成若干个里程碑(3-5个为益),分承制商需要提前一周通知采购部组织相关人员来评估。软件项目的里程碑一般指产品设计趋于稳定,中间产品定义趋于明晰,项目开发组真正了解项目实际的关键技术难度和可行的进度计划,开发活动停止,产品进入除错和稳定、随时可以的阶段,或当产品设计被删减、资源增加、进度延误的时候。在评估软件质量、进度和功能的同时,还要评估分承制商的人员工作负荷程度、风险、费用和资源消耗情况,并形成文档。由采购部送审系统工程部、软件工程部、项目管理部和分承制商的此项目负责人。 当产品进入交验测试的时候,分承制商需要提前三周通知采购部,采购部于前两周通知业主作好交验的组织评估准备工作。这时业主组织系统工程部、软件工程部、测试部、质保部和采购部,根据分承制商和业主在分承制商开发阶段预先共同定义、评审并批准的测试计划和验收方案进行验收测试,对需求规格说明书中的各项逐个详细的测试。最后以书面的形式给出对整个软件项目的测试评估报告。并对未通过验收测试的软件产品指定相应的补救措施和计划。分承制商交付给业主方的软件产品应当包括:源代码、软件开发计划、仿真环境、软件需求规格说明书、设计文档、软件测试计划、软件测试说明、验收测试计划、软件使用手册、软件安装手册、软件维护手册。必要的话,还包括相关培训计划。 软件采购的一个重要阶段是交货,也是目前经常忽略的阶段。当所采购的软件产品以及硬件运行环境在规定的时间到达采购部时候,采购部要以书面的形式通知业主交货。业主对所交的整个软件产品清单进行验收,并事先通知采购部拆箱日期,要采购部和分承包商的代表按时到场。业主要在接到采购部交货通知后一个月内,对所检查验收的整个软件产品(包括相关的软件、硬件及其附属产品、文档、技术资料等子合同中规定的产品)出具一份交货证明,如果这些提交的软件产品没有受到损坏并与装箱清单相一致,并在业主方环境运行良好;否则出具一份书面通知,说明在某个方面此产品损坏或与装箱单不符,或在业主方提供的环境运行不良。此通知或证明应由采购部和分承制商代表签署。如果在签合同的时候,就规定分承制商负责安装和调试,则相应的过程省略。 最后业主方由采购部把所有的文档归类封存,以备后续类似项目采购的参考查询。同时采购部在两个月之内以书面形式,对分承制商的技术开发成熟能力、资源(包括以有的产品、硬件、软件、人力资源和已经过的培训)、信誉、分承制方组织配置结构,管理能力和企业文化提交后评价报告,作为建立客户关系管理(CRM)的依据。对于此次采购的经验和教训,包括进度控制、质量控制、成本控制、客户关系控制、流程控制、风险控制等方面,采购部以文档的形式在组内讨论并保存。 七、结束语: 作为大型工程项目中的软件子项目或者部分功能模块的采购(外包),由于软件开发的固有特性(风险大,柔性强,人为因素突出,结果不宜测量等),使软件项目的外包采购管理变得十分复杂。如何控制分承制商的开发进度和质量等关键因素,需要在实践中不断探索,并针对具体公司和项目对采购过程有所裁剪。 软件项目论文:Project 软件与水利工程项目管理 摘 要:本文介绍了Project软件的主要功能及基本使用方法,分析了当前水利工程建 设中 Project 软件的应用情况,阐明了 Project 软件在水利工程项目管理中的重要性。 关键词:水利工程建设;进度计划;资源分配 1 Project 软件在工程建设中的作用 Project 是一个项目管理网络计划软件,它是基于关键路径法(CPM)和项目评审技术(PERT)两种技术,主要用于大中型项目的计划制定、评审、优化、资源合理调配和现场动态跟踪的通用的肯定型网络计划软件包。Project 提供了一套完整的项目描述和计算的方法及模型,通过这个软件生成图、表或文件。 1.1 快速地建立项目计划 建立项目计划,需要完成一份正确的网络计划图,这至少需要一个星期的时间进行设计、参数计算、核对、成图。如果需要在原方案上做些修改,就不得不重新算一遍。耗费更多的时间、人力、物力、财力,无法适应当前飞速发展的形势。Project则能把这些工作都承担起来,能轻松愉快地完成项目计划的制定工作。如果需要修改、增删、优化,只需要把修改的地方输入给 Project,它会按新的意图重新计算,在几秒内就给出结果。而且 Project 会自动计算出关键路径,计算每个任务的时差和整个项目的开工、完工日期,告诉能否如期竣工,资源分配是否合理。 1.2 按工期管好项目中的任务 Project 把一个任务划分为四个阶段进行管理,即:比较基准计划(原始计划)、当前计划、实际计划和待执行计划(剩余计划或未完成计划)。它为每个阶段的计划都设置了数据域,用户随时都可以查看。比较基准计划$原始计划’里的计划数据记录了最初制定项目计划时项目的状态情况。这个计划数据在项目调整过程中始终保持不变,无论何时需要原始计划数据时都可以从这个计划数据域中得到。 当前计划是根据实际已经发生的计划和任务间的制约关系面计算出来的,它作为整个计划的重点向用户提供了极为详细的数据。例如开始时间、完成时间、工期、总时差、自由时差、工作量、费用等。 实际计划是指已经开始实施,但未完成或已经全部完成的任务计划。Project 设置“实际计划”数据域,可使用户把已经完成的工作和未完成的工作区分开来。而且一旦一个任务的实际计划生效,Project 会按实际计划自动修正当前计划。并且据此计算和预测整个项目计划。 待执行计划是需要完成的剩余工作量,Project 会根据完 成情况自动计算剩余工作量。 总之,用户把采集到的项目任务完成和变动情况输入到Project 后,系统就按项目实际发生的数据进行整个项目计划的计算,确定新的关键路径,预测整个项目前景,使得项目动态跟踪就变得非常容易。 1.3 对人员设备和资金资源进行分配 Project 把在完成项目任务活动中投入的人员、机械台班设备和材料、资金等抽象化为“资源”,建立起资源库。Project根据每个任务的资源使用情况计算整个项目的资源需求曲线,自动指出“超负荷分配”发生在那些任务上,能够帮助用户自动进行资源平衡,并能自动排出每个资源承担的任务上的日程、工作量和成本表。 1.4 提供丰富图表 Project 提供了与国际上接轨的单代号网络图,中国科学院计算所在 Project 配套的软件 “中文伴侣”中开发了双号网络图处理系统。 Project 把横道图和表结合在一起,这样既能以图形方式形象地查看任务信息,又能看到具体的数据,便于理解项目。横道图上不仅可以显示出工序的关系线,而且工序信息也可直接显示在横道条的四周。 资源图是以反映资源使用状况为重点的信息,Project 为资源分析和跟踪提供了8种图形,即:资源需求曲线图、资源工作量图、资源累计工作量图、超分配工作量图、资源已经分配的百分数图、资源当前可用工作量、成本图、累计费用图。 总之,Project 提供项目各个方面信息,使项目的管理更高效有序。无论用于项目投标、项目计划的组织施工,还是对工程项目实行监理都是一个不可多得的软件。 2 Project 与山西水利建设 近年来,我省的水利事业发展良好,按国家规定逐步实行了项目法人责任制、招标投标制、工程监理制,使工程项目管理日趋规范化。 随着计算机技术的迅猛发展,应用计算机进行管理已成为必然。然而,在我省大多项目管理仍延用传统的方式,依赖自己的老经验,总认为不使用计算机辅助管理,工程也照样能进行下去。尽管绝大多数项目部都购买了计算机,但大多数单位使用它打字、制表,由人工画道改成“计算机画道”,计算机没能发挥出其强大优势。项目施工单位用手工编制项目计划不仅要耗费大量的时间及人力,而且经常是工程已经开工,计划还没有做好,使计划管理总处于被动局面。然而,计算机在优化进度计划方面及时、快速、准确、便捷等特点是人工无法比拟的。针对传统管理的弊端,Project中文版为项目管理人员提供了众多有实用价值的功能,以及简单且方便的解决方法,使生产计划人员能高效地处理这些变化。 在我国许多建筑单位选择了Project,在应用过程中普遍反映这个软件操作简单,更改、调整非常方便,确实体会到该系统在建筑项目计划的制定管理与信息交流等方面的强大功 能,尝到了先进管理方式的甜头,认识到工程项目施工中开展全面的计算机应用,实在是非常必要的。 在我国市场经济发展日益完善的今天,建筑施工行业也面临着优胜劣汰的竞争选择。在激烈的市场竞争中,不允许任何企业偏安于一隅,任何一个拥有关键技术的小企业,都可以在很短时间里迅速成长为区域性的大企业,技术和管理的创新日益成为企业间竞争的根本,而一些大的水利工程已率先引用了先进管理软件,如我省的引黄工程,利用P3作管理软件。水利水电监理公司利用自己研制的软件进行监理控制等。这仅仅是一个开始,我们应在掌握原有技术、经验的基础上,利用先进的管理软件进行高效管理,这应该是山西水利发展方向。当然,把计算机用于工程项目施工管理不是一个简单问题,对于选择什么样的工程项目管理软件也是非常重要的。每项目工程都有各自的特点,Project作为微软的最新项目管理产品,国外项目管理的首选软件,在应用过程中,针对工程中的不同特点也会表现出一定的不足,但计算机用于工程项目施管理已成为发展的必然趋势。计算机的强大功能必须得到充分发挥。这是我省水利项目管理的需要,也是水利事业发展的必然趋势。 6 Project在工程建设中的前景展望 目前我国采用计算机进行工程项目管理的建筑施工单位还不太多,这主要是由于有些人还没有认识到这个问题的重要性,有些人还没有找到正确的方法,没有建立和制定一套完整的适应计算机管理特点的管理体制,同时也说明把计算机用于工程施工管理不是一个简单问题,它需要多方面的基础知识和技能,需要从多方面努力。 科学技术是第一生产力,项目管理科学化是大势所趋。Project软件凭借其在项目管理方面所起的显著作用,以及其操作简单,跟踪调整方便等特点,已在中国建筑市场占了一席之地,尤其是Project2000版的推出,使操作更为简单、快捷,人机界面更趋完善,功能更为强大,这必将推进我国的工程项目管理进行一场高科技的改革,使其逐步与国际惯例接轨。现在已经有越来越多的人在关注这个软件,国家也十分重视科技的推广,尤其是水利部,专门组织培训班,对全国水利单位人员进行Project项目管理软件培训,这将极大地推动软件在水利行业的推广应用。据说水利部将把是否利用Project软件进行项目管理,是否有专职人员进行过Project软件培训,作为监理资质评审的条件之一,这充分体现了国家对该软件的重视,这也将有利Project软件在全国范围内的推广,该软件在国内推广将展现光明光景 软件项目论文:关于软件项目管理流程分析与设计 论文摘要:针对软件项目和项目开发中的复杂性、易变性和不可预见性,研究了软件项目管理流程方法设计了软件项目运作过程的总体流程,分析了各阶段流程的进入条件、主要工作过程和工作结果 论文关键词:软件过程;软件项目管理;流程管理 1引言 长期以来,软件项目高失败率的状况一直困扰着人们,研究表明,软件项目失败的原因主要有两个:一是应用项目的复杂性;二是缺乏合格的软件项目管理人才。实践证明缺乏有效的项目管理是导致软件项目失控的直接原因。软件开发的风险之所以大,是由于软件过程能力低,其中最关键的问题在于软件开发组织不能很好地管理其软件过程,从而使一些好的开发方法和技术不能起到预期的作用。 流程管理作为现代企业管理的先进思想和有效工具,随着市场环境与组织模式的变化,在以计算机网络为基础的现代社会信息化背景下越发显示出其威力和效用。流程管理不仅是一种管理技术,更体现了现代管理的思想。流程管理的重点是:理清和管理好所有主、支流程间的关系,使他们相互协调发挥应有的作用。流程管理增加了部门的透明度,管理的对象不是“部门”和“部门员工”的概念,而是以工序流程为管理对象,注重流程中每一个过程和效率以及和上下游工序的关系,管理重点在于整体流程的完整性和顺畅性。目前,流程管理技术的研究已越来越受到人重视。 运用流程管理方法和技术进行软件项日管理,可以有效地改变软件过程管理混乱的局面首先埘软件项目开发过程进行有效的、规范化的定义;其次,在软件项目开发过程中,所有的活动过程均按照流程所规定的活动的逻辑关系、活动的实现方式来执行,这样可以使得所有的活动有序和可控;第三,通过明确运作流程,使项目组人员迅速融入项目和开发过程中;第四,关注每个过程的“结果”,使软件项目的所有工作产品均能得到有效的保存,保证了软件产品完整性。 2流程的概念及在软件项目管理中的作用 流程是由活动组成的。基本活动是由个人或团体来完成的,它不需要进行其他的基本活动的转化。流程的各个活动之间有着特定的流向,它包含着明确的起始活动与终止活动,因此是一个动态的概念。从结构上来看,流程有四个基本的构成因素:活动、活动的逻辑关系、活动的实现方式和活动的承担者。流程与“一系列的活动或事件”,“结果”等概念密切相关。流程管理不仅是一种管理技术,更体现了现代管理的思想,原有的以控制、塔式组织为基础的职能行政管理已经不能完全满足于现代企业发展和市场竞争的需要,管理的发展沿着分工理论运行了上百年后,现在又重新回归到整合与系统。 软件项目生命周期的一系列的开发过程是各种各样的流程活动:软件项目的计划编制、系统分析、慨要设计、详细设计、程序编码、测试与维护等活动过程都是一种流程活动:制定软件项目管理流程,重点考虑以下几点: 1)制定的流程能引导项目逐步走向成功; 2)制定的流程能适用软件开发过程; 3)制定的流程能指导项目开发活动.有利于对项日开发活动的管理; 4)制定的流程能以苴观的流程图表示.能使项目组成员清楚的知道软件开发与管理的过程和相互之间关系; 5)流程中的起始活动条件、终止活动条件明确、规范便于控制: 6)流程中的工作产品定义明确、可度趟,评价标准和方法具体、可操作 3软件项目管理总体流程设计 在软件项目开发管理过程中,不仪要努力实现项目的范围、时间、成本和质量等目际,还必须协调整个项目过程,以满足项目参与者及其他利益柑关者的需要和期望;随着软件规模和所涉及的领域不断地扩大,软件项目的管理越来越困难,纵观所有失败的软件项目.基本原因是不能管理其软件过程,在无纪律的、混乱的项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制管理不仅可以在每个阶段回顾和纠正项目的偏差.别软件项目的风险甚至果断中止项目。且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确软件项目管理流程。 软件项目管理总体流程设计为项目搜寻、立项、售前合同生成和合同执行等5个主要阶段,分别以Pl、P2、P3、P4、P5表示;同时设计了立项完成、合同签定、功能定义、软件开发、项目验收等5个里程碑,分别以TM1、TM2、TM3、TM4、TM5表示,如图l所示。在这些流程中,合同执行流程是软件项目管理的核心,其主要过程有:产品定义、软件开发、测试执行、内部验收、项目实施与验收、项目维护. 4软件项目管理总体流程分析 4.1项目搜寻 项目搜寻是项目立项的基础,项目搜寻阶段的主要任务包括市场信息收集,用户需求跟踪,对潜存的项目进行分析和筛选。 4.2项目立项 立项阶段的主要任务是确认立项的理由,提出立项建议,提供合适的资金和资源,使立项建议成为正式项目。 4.3项目售前 售前阶段从项目立项开始到项目合同的签定结束,主要工作有:制定与客户的交流计划,详细了解客户的背景资料,了解客户启动项目的缘由、目的和期望,编制项目方案建议书,准备合同蓝本。 4.4合同生成 合同生成阶段的主要工作有:项目方案的评估与确定技术合同、商务合同的商定、评估与签署。 4.5合同执行 合同执行是软件项目管理流程的重点,可分为软件开发、测试执行;内部验收、项目验收、系统维护等五个基本工作过程。 4.5.1软件开发 软件开发阶段分为:需求调研、系统分析、系统设计、编码、单元测试等过程。主要从三个方面进行管理: 1)制定项目计划。软件项目计划是一个用来协调所有其他计划,以指导项目执行和控制的可操作文件。它体现了对客户需求的理解,是开展项日活动的基础,也是软件项目跟踪与监控的依据。 2)确定开发过程。根据软件项目和项目组的实际情况,建立起一个稳定、可控的软件开发过程模型,并按照该过程来进行软件开发 3)加强过程控制一过程控制主要包括过程管理、变更控制和配置管理,、 4.5.2测试与执行 项目测试的目的是俭查系统是否符合项目合同与任务书规定的要求、项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试、性能一效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等测试过程在模拟运行环境中进行。 4.5.3内部验收 项目完成集成测试和系统测试后进行项目内部验收.主要有三个步骤:①文档准备。项目经删提交内部验收计划、项目开发总结报告、产品清单:财务主管提交项目财务预算报告。②内部验收测试。内部验收测试的测试内容与方法虽然与系统测试基本相同.但应站在用户验收的角度进行,因为它是试运行的基础。通过这一步。为用户验收作充分的准备。③内部评审。对提交的所有文档及测试结果进行内部评审,完成项目开发总结报告: 4,5,4项目试运行与验收 试运行与用户验收阶段的主要任务是,使所有的工作产品得到用户的确认。主要工作有:①验收前的准备。项目经理负责检查产品的完整性。包括文卡当、介质和中间产品等,以确保现场实施的成功;负责应用软件的现场安装调试,完成安装调试总结报告;负责制定用户验收计划,并得到客户的确认。②用户进行验收测试和系统试运行,进行文档和系统的移交。③用户确认。项目经理负责与客户协测,协助用户进行项目验收,形成用户验收报告。 4 5.5项目维护 软件系统的维护分为两大类:一类是纠错性维护,由于前期的测试不可能暴露软件系统中所有潜在的和隐含的错误,诊断和改正这些错误的过程为纠错性维护。另一类是完善性维护,在软件正常使用过程中,用户还会不断地提出新的需求,为了满足用户新的需求而增加软件功能的活动称为完善性维护。如果需求变更很大,那完善性维护将转变为软件新版本的开发。系统维护的宗旨就是提高客户对软件产品的满意度。确保系统的正常运行是系统维护的根本目的。 4.6软件项目管理的里程碑 项目的考核与评审是软件项目管理流程控制的基础,我们在整个流程中设定五个基线,即确定五个里程碑,它们分别是TM1:立项完成;TM2:合同签订;TM3:产品功能定义完成;TM4:软件开发完成;TM5:验收通过。 如图1所示。各阶段的主要的进入条件和相应的工作结果是里程碑是否达到的重要标志。 5结束语 本文设计的软件项目管理总体流程及相关技术已成功运用在软件项目的研发和管理中。通过将流程管理应用于软件项目管理中,以设定软件项目总体流程为主线,确定每个阶段的主要流程和里程碑,并采用评价指标体系和一系列的模板和表格进行软件项目开发过程的控制和管理,使软件项目的成功率显著提高。 实践证明,针对企业和项目的实际情况,确定软件项目运作流程,定义软件工作产品,明确各阶段的进入条件和退出条件,进行有效的流程控制与管理,大大的提高了软件开发的效率和项目的成功率。 软件项目论文:关于工作流的软件项目管理系统的设计与实现 论文摘要:本文介绍了一个基于工作流技术而研制的软件项目管理系统。文章首先描述了传统软件项目管理系统的不足之处,提出用工作流的方法来设计软件项目管理系统,然后介绍了一些理论基础。文中重点阐述了系统的设计结构和所采用的一些技术,并给出了部分的具体实现方法。 论文关键词:工作流,JMS,项目管理,SPP,建模,工作流网 1前言 2O世纪7O年代以来,为了解决软机危机,改进软件过程能力,计算机科学家提出了软件工程的概念,将系统化的、规范化的、可度量的方法用于软件开发、运行和维护的过程。近些年来,随着计算机技术的进一步发展,相应的使用软件工程方法的软件项目管理系统也有了显著的发展。但是,由于开发流程中存在的不确定性以及项目变化等因素,这些系统也暴露出一些不足之处。 传统的软件项目管理系统,一般是由图形用户接口(GUI),应用程序和数据库组成,用户通过GUI向应用程序发出请求,应用程序处理这些用户请求,并且访问数据库,返回用户所要求的结果。这种模型在流程稳定的时候是可以满足需要的,它的缺点在于: 1)建模过程是之前设定好的,无法改变; 2)缺乏柔性,系统开始运行之后,预先定义好的条件就无法改变了; 3)可扩展性较差,如果想要增加或者修改相应的功能,整个系统必须重新开发。 目前,对工作流技术的研究以及相关产品的开发是国内外学者研究的热点问题之一,很多管理系统都采用工作流技术来克服上述问题。工作流起源于生产组织和办公自动化领域,它是针对日常工作中具有固定程序的活动而提出的概念。目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。 WFMC给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行,以实现整体的业务目标。而这正适合于软件开发过程管理,基于上述的理由,我们结合江苏省十.五攻关“工作流技术的研究和应用”项目,研究并开发了基于工作流的软件项目管理系统CMMFlow,目前已应用于软件能力成熟度模型(CMM)的管理,其效果相当良好。 2理论基础 2.1 CMMI3级精简并行过程(SPP)模型 利用工作流技术可以设计和建立一个工作流环境,在此系统中,我们使用CMMI3级精简并行过程(SPP)模型来支持软件过程实施。 SPP把产品生命周期划分为产品概念、产品定义、产品开发、产品测试、用户验收和产品维护等6个阶段,包含项目管理、项目研发和机构支撑等3类过程、19个过程域。其中项目管理过程包含立项管理、结项管理、项目规划、项目监控、风险管理和需求管理等六个过程域;项目研发过程包含需求开发、技术预研、系统设计、实现和测试、系统测试、Beta测试、客户验收和项目技术评审等8个过程域;机构支撑过程包含配置管理、质量保证、培训管理、外包与采购管理以及服务与维护等5个过程域。 我们把每一个过程域都看成是一个流程,其中过程域之间的关系是线性为主,并行、迭代为辅。每个过程域包含若干原子活动。通过建立活动与角色以及角色与具体用户的关联,即可建立一个可执行的业务过程模型。 2.2基于petri网的可视化建模工具 在这个系统中,我们的建模工具是使用工作流网和XP—DL共用的策略,采用的是扩展的Petri网,对最终用户来说,足可视化的图形建模工具。为符合WfMC规范,工作流机装入的模型用XPDL存储,可使用XPDL和Petri网两种表示形式,验证是使用Petri网形式。 在Petri网的基础上,Aalst提出了工作流网(WF-net)的概念,其定义如下: 一个Petri网PN=(P,T,F)被称为工作流网,当且仅当它满足下面两个条件: 1)PN有两个特殊的库所:i和0。库所i是一个起始库所,即·i= ;库所O是一个终止库所,即O·= 。 2)如果在PN中加入一个新的变迁t,使t连接库所。与i,即·t·={0),t·={i),这时所得到的PN是强连接的。 下面我们给出一个用工作流网定义工作流的简单例子,例子描述的是软件立项管理的工作流过程。 根据工作流网的基本定义,通过使用不同类型的基本组件和触发机制,对立项管理进行建模,得到如图1所示的工作流网模型。 基本流程如下:立项建议小组进行立项调查,然后进行项目构思和可行性分析,在完成之后进行立项申请,然后立项审查小组对此立项进行审查,决定是否同意立项。如果否决,则必须重新进行立项建议,如果同意立项,进入项目筹备阶段,流程结束。 3系统设计 3.1设计思路 整个系统构架采用B/S模式,参照J2EE框架,主要分为四层: 1)展现层:主要包含客户浏览器端和Web服务器端的applet,jsp和servlet,负责和用户交互,接收数据,显示结果等。 2)商业逻辑:用于处理展现层从用户端接受到的数据,包含了控制应用处理的所有规则,同工作流执行服务通讯,并且将展现层和数据服务层连接起来。 3)工作流执行服务:是流程运行和管理的核心组件,包括工作流机和任务表管理器。 4)数据服务:负责提供对数据的存储和读取服务。 此外,在系统设计的过程中还采用了以下的技术: 1)J2EE框架 J2EE体系包括javaserverpages(JSP),javaSERVLET,enterprisebean,WEBsevrice等技术,提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用。它通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。J2EE中多数标准定义了接口,例如JNDI,JDBC等,这使得遵循这些标准的不同开发者之间的模块可以无缝地互连。 2)JMS JAVA消息服务(JMS)定义了Java中访问消息中间件的接口。JMS只是接口,并没有给予实现,实现JMS接口的消息中间件称为JMSProvider。 在JMS中,每个客户机连接到一个为发送和接收消息提供框架的消息传递程序。客户机需知晓消息格式和消息目的地。根据JMSAPI,消息传递分为两种模式,点对点和/订阅模式。 点到点消息传递方法使用下列工具,如消息队列、发送方(或消息制作者)和接收方(或消息消费者)。客户机将发向特定接收方的消息发送到唯一的队列。当接收客户机从特定队列抽取消息时,它发出确认消息,表明消息已处理。队列将保留所有消息,直至接收方收到消息或消息到期。/预订消息传递方法使用者、订户和主题的概念。客户机将消息发送到主题或内容层次结构。为了接收到消息,消息消费者必须预订此主题。因此,对于这种方法,可以将消息制作者作为者,而消息消费者则是订户。JMS供应商将多个者发来的消息分发到主题和此主题的多个订户。 点对点模式适用于使用集中式工作流机的系统,对于大规模的分布式应用,/订阅模式则相当有效,但是,在保证各个分布式工作流机的一致性问题上则稍有难度。 3.2系统结构与功能特点 CMM软件项目管理系统的系统结构如图2所示,它主要由过程建模工具,工作流机,任务表管理器,web服务,客户端和数据库接口等组成,该系统的各功能特点是:在这个系统中,我们使用浏览器作为客户端,通过Http请求与Webserver交互,Websevrer再将收到的请求加以处理,判断哪些是应当丢弃的,哪些应该交由工作流执行服务处理,并将处理后的结果发送给工作流执行服务器。工作流机收到Webserver传送过来的数据后,会根据消息的具体内容继续执行流程或者将流程挂起或是结束流程的运行,并且更新任务表管理器的内容,在需要的时候调用相应的应用程序来完成任务的需要。在过程建模工具中建立,修改,删除的模型将通过存储过程来修改数据库中已存储的模型。 websevrer和工作流执行服务也都要通过存储过程来访问数据库。各部分的功能特点描述如图2。 1)建模工具:使用基于Petri网的建模方法来对企业经营过程进行过程定义,将经营过程转化为工作流引擎可以执行的形式。同时还提供对过程模型进行分析,测试的工具。 2)工作流机:工作流引擎是工作流平台的核心,它是业务流程的任务调度器,从某种程度上看,工作流机也是业务资源管理器。它的主要作用是实例化及执行过程模型、为过程和活动的执行进行导航、与外部过程交互完成各项活动、维护工作流控制数据和工作流相关数据等。 3)任务表管理器:过程模型中的每个活动都被看作是一个由计算机自动执行的任务或由用户手动执行的任务,任务表管理器负责对这些任务的监视和维护。 4)Web服务:包含了用于处理用户请求和显示结果的jsp和sevrlet,其主要工作是将客户端与工作流执行服务连接起来。 5)客户端客户端是基于浏览器方式的瘦客户端,方便管理员管理整个工作流管理系统的运行过程,和一般用户管理和执行分配给自己的任务。 6)数据库接口:实现了底层的数据存储,包括过程定义,工作流控制数据,工作流相关数据,企业组织模型等工作流管理系统运行过程中必须的信息。 4系统的一些实现技术 4.1任务的自动分配和触发机制 可以根据模型定义自动地分配任务,当一个过程实例运行的时候,活动可以根据模型定义自动分配到指定接收者,并且,有关完成此活动所需要的数据也会传递给相应的接收者,从而提高业务过程执行效率。模型中使用角色机制,不指定具体人员,这样,人员变更不至于引起模型的变动。系统支持迟后绑定,即可以在活动运行的时刻才确定此活动由谁来完成。 流程从使能到运行的控制,采用触发机制,分为人工触发、自动触发、消息触发和时间触发。人工触发一般是用户从任务表中选取其中一项任务来完成,自动触发是一些通过程序自动执行的过程,一旦使能就被触发,消息触发是指系统外部的消息到达触发,如Email,时间触发是由定时器来触发。 4.2活动信息的统计 系统可以通过对活动信息统计,并将活动的运行状况和统计信息存储在数据库内。通过提供有关工作量的信息,可以在建模的时候预测所需要的时间,并且在活动结束时计算任务完成情况,与初始模型进行对比,生成相应的图表以判断工作效率,辅助决策经营。除系统提供的几个基本统计模型之外,用户也可以利用系统提供的工具,自行扩展新的模型来完成工作量信息统计和生成对比图表。 结论根据软件过程管理的需求,以工作流技术为核心,J2EE技术为支撑,结合SPP模型,文章给出了一个软件管理系统的体系结构和其中的一些技术实现。但是,为了更好地实施软件过程控制和度量,我们发现,还有一些问题需要进行深入的研究。 首先,软件过程模型的建立就要结合具体的实际情况,需要深人了解整个软件过程,并根据不同的需要修改模型来完成资源的动态配置和管理。另外,关于分布式工作流机之间的通讯和一致性问题也是相当重要的问题,需要拟定合适的策略来实现资源优化调度。 软件项目论文:应用P3软件为建设项目管理服务 摘要:三峡工程是一举世嘱目的工程建设项目,项目管理的任务其中包括进度控制的任务极其艰巨。业主单位确定应用P3软件作为进度控制的辅助工具已近五年时间,取得了很大的成绩,但还存在有待改进的地方。笔者有幸从93~96年,涉及此方面的工作,对合理地应...... 关键词:P3 建设项目 管理 服务 三峡工程是一举世嘱目的工程建设项目,项目管理的任务其中包括进度控制的任务极其艰巨。业主单位确定应用P3软件作为进度控制的辅助工具已近五年时间,取得了很大的成绩,但还存在有待改进的地方。笔者有幸从93~96年,涉及此方面的工作,对合理地应用P3强大的功能为项目管理,尤其是项目进度控制服务,提一点自己的看法。现分述如下,作为抛砖引玉供有关部门参考。 1 统一规定网络进度计划的表达形式 三峡工程因其规模宏大,需要采用分项直接承发包制,业主将与多个独立的承包商建立合同关系,如果承包商们在进度计划表达形式上不统一,各自采用他们习惯的表达形式,对单个合同可能是可行的,但对整个三峡工程的进度控制而言,将产生混乱的而导致无法进行。 网络计划的类型有肯定型、非肯定型,随机型、循环型等。在土建行业大多采用称作关键线路法的肯定型计划网络。而该类型计划网络以其表达形式来分有:双代号、单代号、与单代号搭接网络等表达形式。从业主与监理方使用的网络计划大多是控制性进度网络,以及考虑到工程建设项目的复杂程度与P3软件所能支持网络计划的类型而言,以采用单代号搭接网络最合适。由于它表达相同的计划对象时,可以具有网络的规模最小,表达最为简洁的好处。因为它可免除用其肯定型计划网络时,为了表达活动之间的逻辑关系而需要增加虚活动和要把完整的须加细分的敝端。关于规定统一用搭接网络的建议,必须取得建设各方的共识,并共同执行。只有这样,才能把进度管理,纳入统一的、可操作的进度控制模型之内。 2 分析管理环境,合理确定进度计划网络整体结构 进度计划网络的整体结构是指进度网络系统中整个局部网络之间联系方式不同划分结构类型。 在选择进度计划网络的整体结构形式的时候,必须根据建设项目特点与管理模式出发予以考虑。从三峡工程业已招标发包的合同看,有的一个合同包含了若干个单项工程(如右岸一期工程合同);有的则一个扩大单位工程包含了若干项合同,如永久船闸工程。因此,业主项目与监理单位均处在多个合同管理环境下工作。这大大增加了项目管理的难度与工程协调工作量。我们在确定网络计划整体结构时,都要与上述多项目管理环境相适应,并充分利用P3软件所能提供的功能为前提。 关于进度计划网络的整体结构,可分为两类,一类是多级网络,如以三级网络为例,其示意图见图1。 图1 多级网络示意图 个工作(或称活动)。因此,分解的详细程度会直接影响网络计划中活动数目。过于详细,则增大网络图的图幅,不利于阅读与管理;分解得过粗,则对进度控制缺乏必要的指导作用。WBS分解的详细程度应考虑如下因素: (1)WBS分解的详细程度要与计划进度的功用相协调,业主方的计划进度主要用于进度控制,宜粗些。通常分解到分部工程(最多到分项工程)的层次即可;对承包商实施性的进度计划所需的CWBS,可由承包商对其合同范围工程,在业主方WBS框架基础上根据需要,再自行细分; (2)WBS的框架结构,要兼顾工程分标的具体要求。如永久五级船闸输水工程,宜将其再分成上游输水工程与下游输水工程,以避免出现一个分解单元跨两个合同的情况; (3)分解的详细程度,对整个工程各部份要做到基本一致,以便能正确确定网络计划中各活动之间的逻辑关系; (4)WBS分解的详细程度应使之对应的活动,在施工现场较易识别,有利于进度检查与进度控制工作。 总之,WBS分解结构应有利于建设项目进度控制与其他项目管理的需要。 3.2 建立工程项目管理的组织分解结构(OBS) 为使项目管理机构管辖范围清晰、职责分明,常用组织分解结构描述业主方管理机构的设置。并把它与WBS终层次的分解单元对应起来,即把WBS垂直树与OBS水平树按项目管理组织的管辖范围,得出对应的交叉点,以明确其责任主体。OBS的详细程度可分至具体责任人。 3.3 建立为项目管理服务和方便P3应用的代码体系 设计出一好的代码体系与代码方案对于项目管理及相关软件高效应用至关重要,它可使诸如统计、分类、校对、查询、计划的整合、计划的拆分、数据组织、过滤等工作变得简单方便。由于限于文章篇幅仅列项说明如下: (1)为拟订好WBS框架,建立统一的工程分解结构代码符与词典。并在最高层主网上输入,以便为各层主、子网所共亨。 (2)为拟定好OBS框架,建立统一的组织分解结构代码符与词典,并在最高层主网上输入,以便为各层主、子网所共亨。 (3)依照三峡工程分标设计,统一规定合同代号,并建立词典。 (4)约定各标合同项目活动代码,在单代号搭接网络模型下,活动代码为网络中节点代码,从活动代码易于做到唯一性的易于阅读网络图,建议活动代码的前两位为字母型(与合同代号一致),后4位为数字型混合码为宜。后4位阿拉伯数字均以0、5数字结尾,以便为以后网络中增加活动留地。 (5)约定活动分类码 活动分类码实质上是把某些特性用活动分类码的形式加以识别。P3可为活动提供20个分类码,这些活动分类码可以识别诸如:活动属何种工程;活动所在的工程部位、高程;活动的承包单位;活动的监理单位;活动的业主管理单位;施工活动还是管理性质活动;以及想要识别的其它特性。业主方统一建立活动分类码(包括代码结构、码值与词典)供参与工程建设的有关单位所共亨。 (6)制定统一资源类别代码 制定统一资源类别代码的结构、码值与词典,资源包括:资金、劳力、各种材料、各种专用施工设备等。制定统一资源类别代码,使各承包商以统一的代码把资金、劳力、各种材料、各种专用施工设备的需要量载入网络之中,不仅为承包商编制施工资源、配置计划提供依据,同时也为业主方通过主~子网络结构汇总各种资源的总量及其在时间上的分配提供方便。为业主的材料、设备的采购与供应,资金筹措,施工现场管理等提供信息支持。为了减少这方面的工作量,可仅对业主关心的资源进行,对承包商关心的资源可在其子网络上自行定义。 4 制定运行规则,避免混乱发生 业主与多个承包商建立工程施工合同关系,共同为项目进度目标的实现各自承担其相应的义务情况下,按照一定的准则,规定各方运行规则,是避免发生混乱所必须的,尤其是应用P3采用多层二阶主~子网络非直接传递结构模型时,尤为必要。其运行规则的内容概述如下: (1)有关各方均应采用为业主方制定的代码结构、码值(符)、词典。最好在最高层主网上输入,以便为各层主、子网所共亨。 (2)为使在主~子网结构内运算协调,在运行进度计划调整、更新时,必须确定相同的更新日期。所有的子网应使用相同的数据日期,以避免冲突与混乱;如果相同的数据日期不可能,应在主网更新、调整,使其数据日期在主~子网上同步; (3)进度计划调整、更新的数据日期,可统一规定在月支付后的某一天为宜; (4)承包商在其子网上调整、更新进度计划(增、删活动、调整活动时间、改变活动逻辑关系等),必须在其子网络拷贝版上进行,然后交监理审批,经批准后才能作为正式的子网络,并将原子网络备份(存档)以便恢复或查询; (5)经(4)所述步骤后,统一建立从合同到整个建设项目各层次的目标进度网络,为事后的进度评价建立基准; (6)各承包商对各自的进度进行评价时,均以经监理、业主审核确定的实际完成的工程质量为基础进行,使进度评价建立在可靠的基础之上; (7)当在主网上增加不属于子网络的活动或里程碑日期时,应为主网络定义一个前两个字符的可与子网络活动相区别的活动代码符; (8)业主、监理方为维护进度计划系统的安全,还应建立如下规定:在网络环境下,建立主网络与子网络的权限,及子网对主网络存取、访问的权限;用于所有子网络工作日历;用于调度/平衡计算如何选项的规定;资源、费用计算单位和小数点位数等。 5 扩大软件使用范围,发挥更大的作用 把P3软件作为项目进度控制的辅助工具,可发挥如下作用: (1)编制与优化项目总进度计划与标段工程进度计划,按需对进度计划作出适时调整与更新;输出各种图表; (2)计算时间参数,找出关键线路与关键活动; (3)对实际进度与计划进度作对比,得出偏差,评价实际进度。并在此基础上,实现实际进度对计划进度的跟踪; (4)汇总包括资金、材料、劳力、专用施工设备需用量计划及其在时间上的分布,为项目资源供应提供信息支持; (5)在上述基础上,为制定中、短期进度计划提供方便和依据。 笔者认为,还可以在以下方面扩大使用范围,以充分发挥其P3功能: (1)在合同管理方面,用于分析承包商提出的工期索赔要求与确定其索赔期限; (2)为业主、监理在处理不同标段合同之间在进度上发生冲突时,提供最优调度的分析工具。即当不同标段间平行作业的活动会损害工程施工质量或危及安全时,可依据对项目目标实现最佳的原则,确定活动作业顺序,而主~子网络结构模型是最合适的分析模型; (3)建立费用帐目把工程概算价格、合同价格、实际支出价格等载入网络计划之中,结合本国国情运用赢得值分析技术,还可在项目投资控制中发挥一定作用。 6 结束语 笔者所要阐明的是把P3软件作为项目进度控制的辅助工具,决不是仅涉及软件操作等纯技术性的问题。从业主方角度而言,更为重要的是从组织性质工作入手,做好上面所述及的工作。在统一组织、指挥下才能充分发挥其软件功能,为项目管理提供更好的服务。这犹如交响乐团在高水平乐队指挥下才奏出美妙动听的乐章一样。笔者曾对大型建设项目使用P3软件的情况进行一些调查,凡使用情况不理想的其症结所在大多在于此。这是要引以为戒的。也是笔者写此文的用意之所在。 软件项目论文:项目管理理论中关于软件项目外包采购管理的探讨 摘要:本文分析了目前软件外包采购管理的重要意义和目前的形势,提出基于“双赢”策略的软件外包采购思想。在项目管理理论、CMM和ISO9000的基础上,提出和细化了软件项目外包采购管理的总体框架和具体操作内容。旨在通过对软件外包项目采购的选择购买、跟踪与控制、评估验收和项目后处理等过程的研究,来提高软件外包采购的项目管理水平,满足承包方对分承制方产品在质量、进度和成本等方面的要求和对外包过程的有效控制,为软件项目外包采购管理人员提供具体的操作过程。 一、基本概念和背景 项目管理理论是一门综合多门学科的新兴研究领域,共有九大知识领域,包括项目集成管理、项目范围管理、项目时间管理、项目费用管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理。项目采购管理是指需要从执行组织以外获得货物和服务的过程。通常把货物和服务称为产品,把买方称为业主或对应分承制方的总承包商,而卖方称为承包商、厂商或供应商。项目采购管理一般包括以下主要过程:采购计划编制,询价计划编制,询价,承包商选择,合同管理,合同收尾[ 1 ].对于软件产品,一般采购可以分为两大类,一类是对已经在市场流通的软件产品进行采购。例如,某企业想做信息化建设项目,涉及到数据库,那么它就可以在目前市面流行通用的几种厂家和种类的数据库中选择。例如Oracle公司的Oracle数据库,Microsoft公司的SQL Sever,IBM公司的DB2数据库等等。然后根据自己的需求,通过询价、签合同、安装培训等过程来购买此类产品。这种采购过程基本已经形成几套通用的解决方案,比较简单,中国企业在处理这类产品的采购时,大部分都处理的较好。个别的企业由于需求分析不清晰,培训工作不到位等原因,也会产生购买的产品不适用,或不会用的情况。另外一类软件产品采购的形式是外包采购。它是指在市场上没有出现现成的产品或者没有适合自己企业需求的产品的情况下,需要以定制的方式把项目(功能模块)承包给其他企业。例如某企业需要实施企业资源计划项目(ERP),虽然可以购买BAAN软件,但是基于本企业业务流程的管理软件必须定制,对于各个原有孤立岛的集成软件,无法购买现成的产品,必须自己开发或外包给别的公司。 二、软件项目外包采购管理的意义 许多大型复杂工程项目的实施需要业主、总承包商、分承制商、供应商和开发制造商等共同合作来完成。因此在任何甲方和乙方之间必不可少的涉及到部分子项目(功能模块)的采购活动。目前社会中,企业的信息化、网络化建设正在世界范围内展开。谁先进行信息化改造,谁就早日适应社会发展的要求,获得巨额利润。大规模的企业信息化建设形成了庞大的软件产品市场,促进了软件业的发展。许多项目庞大复杂、高风险并且涉及高科技信息领域,在客观上使企业需要采购和外包许多产品,包括软件产品。主观上,在经济全球一体化形式下,这种外包采购作为采购活动的一种特殊的、更为复杂的形式,在企业中更为普遍存在。企业为了在日益竞争的社会环境中增强自身的核心竞争力,需要根据企业的特点,专门从事某一个领域或几个领域的业务,在某个业务领域内形成自己的核心业务,把企业内部的智能和资源集中在那些有核心竞争优势的活动上;把一些非自己擅长的业务领域的子项目和功能模块外包给有实力和优势的公司,才有利于加快项目的完工进度,降低风险,优化资源配制,保证项目质量,降低成本,创造更高的价值。 以电信行业为例,爱立信公司2000年底宣布把手机生产的绝大部分业务外包给新加坡的Flextronics公司,专注于移动通信网络设备业务。原因是爱立信的移动通信网络设备的销售占爱立信公司销售额的54%,利润达90%以上,占有全球的移动通信市场分额高达30%,而手机生产的投资回报率很底,甚至出现亏损情况。对于爱立信而言,手机生产“外包”是在信息化时代的战略调整,希望通过外包生产,调整投资结构,使手机降低成本并且尽快盈利,集中精力稳定和拓展电信业的新市场。出于同样目的,美国的摩托罗拉公司也表示将外包部分地区的手机生产业务。作为手机市场份额最大的诺基亚,在专注于手机生产业务的同时,大力开发周边产业。希望以手机业务带动相关产业的发展。从三大公司的投资趋势,可以看出,“外包”作为一种先进的国际专业化的生产方式正被一些大公司越来越多的采用。我国正处在信息化建设的高速发展阶段,必然会有越来越多的企业由于自身的能力限制或业务发展的战略选择,将采取业务“外包”的生产方式。 就软件项目外包采购的市场来说,2000年是企业信息化实施的第一年,国内企业,特别是大型企业的信息化项目开始运作。行业信息化改造重点将由原来的电信、金融、海关等行业转向交通、制造、医疗等传统行业。这些行业由于自身计算机技术水平和业务发展重点的原因,将会把大量的软件项目外包给软件公司。根据CCID的统计(软件可以分成平台软件、中间软件和应用软件),2000年中国软件市场中应用软件的销售额为147亿元,占软件总市场份额的63.9%.预计到2005年,计算机信息服务和软件市场销售额增长到1750亿元。届时我国软件项目“外包”市场潜力可想而知。 三、软件外包采购管理存在的问题 虽然在传统行业,许多工程项目的采购活动,例如机械工程项目或建筑工程项目等等已经形成比较成熟的管理体制和标准。但是软件项目的外包管理工作并不象其他行业那样顺利。 软件工程项目管理引起广泛注意源于20世纪70年代中期,当时发现70%的项目是因为管理不善而引起。20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。商用软件通常只有9%(中小型软件公司有16%)的软件项目能够及时交付且费用并不超支。 这里有多方面的原因:软件产品作为一种特殊商品形式,具有高度不可测量性和高度柔性;软件企业开发能力还不太成熟,软件开发大多数还处于手工作坊方式,软件研发企业有其自身的运做方式,人为因素比重大,不好量化管理。由于不确定因素太多,许多软件开发企业对于自己的项目都难以精确控制进度、质量、资源和成本,那么对于业主来说,想对外部企业(例如分承制商)保持良好控制力的难度就更大了。再加上具有技术优势的软件开发商一般集中在几个科技发达的大城市,与业主的距离远,相互的交流不方便,因此许多软件采购项目的实际应用效果都差强人意:不适用,进度超期,性能达不到标准,成本太高等等情况时有发生。 软件项目外包采购的成功与失败不仅仅影响到当前软件项目的质量、成本和工作进度,而且关系到企业信息化建设整个项目的整体结构、性能以及进度,意义重大。特别是当软件项目作为整体项目计划关键路径的一个环节,软件项目采购的进度直接影响整体项目的进度,并且总成本将成指数级增加。由于软件采购的情况特别复杂,涉及的学科领域不仅是科学技术上的,还有商业上的和观念上的,软件项目外包采购管理水平的高低,将直接关系到企业整个信息化建设进程。因此软件项目采购管理作为项目管理理论中一个新的研究课题,有必要给予足够的重视。 四、目前软件外包采购管理情况 美国项目管理协会的“项目管理知识体系指南”(PMBOK)[1]、美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(CMM)[2,3]和国际标准ISO9000-3[4]中虽然对外包采购管理的流程有过论述,但是他们指出的只是外包采购管理的一般原则;虽然人们可以结合自身企业特点实施标准,具有一定灵活性,但是事物的另一对立面就是操作过程不具体。这给软件产品的外包采购管理者带来具体操作上的困惑。另外PMBOK体系原则上是应用在各个行业的,缺乏针对软件领域的特点做专门的论述。ISO 9000-3系列和CMM虽然是针对软件领域的标准,但是ISO 9000-3的最大的特点是只告诉你要按规定做,不强调效果和后续改善,不强调经验积累和后评估。从这个意义上讲ISO9000注重水平的评估,不太强调提高企业成长的过程,因此对于提高企业的管理水平意义不大;CMM虽然旨在强调企业的过程能力的持续改进,但是它重点强调软件的开发过程管理和产品管理,缺乏软件的分发、转交和服务等方面的管理标准,所以也有一定的局限性。 五、基于“双赢”策略的软件外包采购思想 本文作者在集成美国项目管理协会的“项目管理知识体系指南”(PMBOK)和美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(SW- CMM,SA-CMM)和ISO9000-3中关于外包采购的宗旨的基础上提出“双赢”策略的软件外包采购思想。 “双赢”策略的软件外包采购思想旨在利用双方业务能力互补,通过共同合作完成软件外包项目,达到“双赢”的目的,促进双方业务总体能力的提高。这种“双赢”策略要求双方在以下方面达成共识:双方共同关注过程控制,才能保证有效结果;只能成功,不能指望依靠惩罚手段来收回采购成本,软件外包采购项目的失败对整个项目带来的损失是巨大的;在合作过程中,建立对分承制商关系的管理体系,作为以后合作的基础;重视开发过程的风险评估和采购项目后评估,使得双方业务能力得到持续提高。 传统的外包采购中,采购方只关心分承制商产品的进度和质量,以为只要分承制商按期、按质交货,就可以圆满结束此次采购活动。有些项目尽管前期进度和质量满足合同要求,但是许多是以高投入、高负荷、高消耗等手段来保证的,这给后期带来极高的风险。在阶段评审中,如果采购方对分承制商开发过程中的费用投入、人员负荷、资源消耗、组织结构变化等漠不关心,因此就不能及早预见风险、控制风险。很难想象,后期在费用透支、人员疲惫或流失严重的情况下,分承制商仍能保证产品质量和进度。这种情况下,采购方只能要么加大投入,要么终止合同,并要求赔偿,要么延期验收等等。其副作用可想而知。而分承制商为了减少损失,根据博弈论中子博弈精练纳什均衡原理,必然采取降低质量要求,减少投入的策略,来加快进度。结果最终还是采购方遭受损失。 六、软件项目外包采购管理过程 为了保证软件外包采购项目的顺利进行,本文作者在上诉理论体系和“双赢”采购策略的基础上,提出和细化了软件项目外包采购的总体框架和具体操作内容,旨在为软件项目外包采购管理人员提供具体的可操作过程。 对于本采购过程,如果业主方由于行业、人员等原因,没有健全的监控部门,可以聘请具有软件监理职责的公司,或者总承包给具有一定软件工程监控能力的公司。这时的总承包公司角色相当于本文提到的采购部。 软件项目的整个外包采购过程可以分为十个工作阶段,包括总体项目需求分析和设计、子项目的需求分析、厂商选择、分承制商开发、业主阶段评估、交验测试、安装、培训、维护,后评价。 在开始外包采购之前,首先业主要完成项目的总体需求规格说明书和承包项目的需求说明书。一般承包项目的需求分用户需求和分配需求。对于分承包商来说,业主对软件项目所提出的需求通称“用户需求”。对于业主来说,系统总体分配给软件的系统需求通称“分配需求”。如何作好子项目的需求分析和管理,请参阅《软件需求》,详见参考文献5.然后业主把需求说明书交给采购组组织采购。采购部门收到需求说明书后,再补充质询调查表、报价指南、综合条款及条件等文件,组成采购质询技术文件发往厂商进行质询。采购部门在厂商质询的基础上,准备了厂商选择和投标估价等技术文件后,向业主送审,提请业主批准和确认所选厂商。在厂商选择和投标估价这两个文件中,采购部根据拟采购的软件对被质询的至少三家以上的供应厂商,就技术开发成熟能力、资源(包括以有的产品、硬件、软件、信息和已经过的培训)、资格和信誉、过去的合作关系、价格、提供的售后服务(包括培训和维护)、分承制方组织配置结构、与质询要求的差异等方面,经过经济技术和商业战略角度出发进行全面评估,经过其他各部门(例如系统工程组、软件工程组、质保组、财务组)审核后,列出供应厂商的优劣次序,择其优者为该项目的供应厂商。采购部一般以月为单位向业主通报软件采购情况。一般以招投标方式或内部评审的方式来确定分承制商。 分承制商在接到采购部的定货以后,就可以进行工作说明书、用户需求说明书、软件需求规格说明书、软件开发详细计划和成本概预算、测试计划、质量控制方法、风险控制、拟采用的软件工程标准和软件生命周期等文档的制作。然后分承制商把有关的技术资料文件通过业主的采购部送给业主进行校核和批准,然后才能开始开发。 业主在接到分承制商的上述材料后,组织系统工程部、软件工程部、质保部、财务部、采购部、法律部就上述材料中的开发项目视图和需求范围、使用或需要购买的软硬件、进度计划和成本、测试计划与案例、使用的技术和工程标准、人员配置等进行评审,并出具评审文件和风险评估、控制建议书。并由采购部制定采购项目监督评估计划书。合格后,由采购部、质保部及法律人员与分承制商签署详细的软件采购子合同。如需要对软件项目投保,以此来降低风险,需要和分承制商协商后,纳入合同文件。 分承制商在签署合同后可以进行设计和开发。业主应该委派采购部监督分承制商的工作。采购部应该有计划的组织质保部、软件工程部的项目计划管理人员和配置管理人员,定期对分承制商的开发活动进度、质量、成本等进行评估,并形成评估建议书。送审业主方的系统工程部、项目管理人员、分承制商的此项目的负责人。分承制方的项目负责人要对评估建议书的建议进行书面回复,并确保实施。 分承制方对所有需要采购的资源(软件、硬件、人力资源等)负责进行检验;采购部有权在任何时候对分承制商所采购的资源进行验证,使之符合所采用的规格说明书、规范、标准和其他技术文件所规定的要求,确保分承制商专款专用,建立开发环境。在这个阶段之前,采购部门和分承制商首先要确定由分承制商提供的验证建议书,并作好准备工作,提交检验用的技术文件,包括厂商说明书、设备性能数据表、配制清单、试验程序、检验技术要求。在检验的物质条件和技术条件均已准备妥善后,分承包商就可以向采购部并通过采购部向业主提出书面检验申请。一般分承包商可以提前三周通知采购部,由采购部提前两周以书面形式向业主提出检验申请,由业主召集系统工程部、软件工程部、质保部组成验证组,在规定的时间、地点检验。通过检验后,分承包商进入项目开发阶段;业主进入监控和评估阶段。对于重大关键项目,业主可以派遣项目监督员短期或长期进驻分承包商单位。 由于作为外部单位,业主不便时刻监督项目的开发过程。虽然理论上需要把分承制商看作是自己的一个项目部门来对待,纳入自己的进度控制和质量控制体系,但是客观上由于分承制商与业主距离较远,人员不熟悉,各自有自己的企业文化和管理体制,双方之间的信息沟通不畅,业主难以实时监督分承制商的开发进程和质量。最好的办法就是在分承制商的软件项目的各个里程碑处和分承制商一起进行检查和评估。软件项目一般可以划分成若干个里程碑(3-5个为益),分承制商需要提前一周通知采购部组织相关人员来评估。软件项目的里程碑一般指产品设计趋于稳定,中间产品定义趋于明晰,项目开发组真正了解项目实际的关键技术难度和可行的进度计划,开发活动停止,产品进入除错和稳定、随时可以的阶段,或当产品设计被删减、资源增加、进度延误的时候。在评估软件质量、进度和功能的同时,还要评估分承制商的人员工作负荷程度、风险、费用和资源消耗情况,并形成文档。由采购部送审系统工程部、软件工程部、项目管理部和分承制商的此项目负责人。 当产品进入交验测试的时候,分承制商需要提前三周通知采购部,采购部于前两周通知业主作好交验的组织评估准备工作。这时业主组织系统工程部、软件工程部、测试部、质保部和采购部,根据分承制商和业主在分承制商开发阶段预先共同定义、评审并批准的测试计划和验收方案进行验收测试,对需求规格说明书中的各项逐个详细的测试。最后以书面的形式给出对整个软件项目的测试评估报告。并对未通过验收测试的软件产品指定相应的补救措施和计划。分承制商交付给业主方的软件产品应当包括:源代码、软件开发计划、仿真环境、软件需求规格说明书、设计文档、软件测试计划、软件测试说明、验收测试计划、软件使用手册、软件安装手册、软件维护手册。必要的话,还包括相关培训计划。 软件采购的一个重要阶段是交货,也是目前经常忽略的阶段。当所采购的软件产品以及硬件运行环境在规定的时间到达采购部时候,采购部要以书面的形式通知业主交货。业主对所交的整个软件产品清单进行验收,并事先通知采购部拆箱日期,要采购部和分承包商的代表按时到场。业主要在接到采购部交货通知后一个月内,对所检查验收的整个软件产品(包括相关的软件、硬件及其附属产品、文档、技术资料等子合同中规定的产品)出具一份交货证明,如果这些提交的软件产品没有受到损坏并与装箱清单相一致,并在业主方环境运行良好;否则出具一份书面通知,说明在某个方面此产品损坏或与装箱单不符,或在业主方提供的环境运行不良。此通知或证明应由采购部和分承制商代表签署。如果在签合同的时候,就规定分承制商负责安装和调试,则相应的过程省略。 最后业主方由采购部把所有的文档归类封存,以备后续类似项目采购的参考查询。同时采购部在两个月之内以书面形式,对分承制商的技术开发成熟能力、资源(包括以有的产品、硬件、软件、人力资源和已经过的培训)、信誉、分承制方组织配置结构,管理能力和企业文化提交后评价报告,作为建立客户关系管理(CRM)的依据。对于此次采购的经验和教训,包括进度控制、质量控制、成本控制、客户关系控制、流程控制、风险控制等方面,采购部以文档的形式在组内讨论并保存。 七、结束语: 作为大型工程项目中的软件子项目或者部分功能模块的采购(外包),由于软件开发的固有特性(风险大,柔性强,人为因素突出,结果不宜测量等),使软件项目的外包采购管理变得十分复杂。如何控制分承制商的开发进度和质量等关键因素,需要在实践中不断探索,并针对具体公司和项目对采购过程有所裁剪。 软件项目论文:关于软件项目管理的控制研究 论文摘要:本文针对软件开发中的进度延期、费用超标、质量低下等问题,探讨了如何利用项目管理中的相关控制方法进行软件开发过程控制。、论文在阐述软件项目管理内容的基础上,针对软件项目的三要素分别进行了探讨:进度控制、费用控制和质量控制,提出了几种有效的软件项目管理控制方法。这些研究对于加强我国软件项目管理控制过程,降低开发成本,减少开发风险具有重要的意义。 论文关键词:项目管理 进度控制 费用控制 质量控制 软件开发 人类社会经历了三次经济革命从农业革命、工业革命到目前正在经历的信息革命。信息化正在日益改变人们的思维方式和生活习惯。在推动信息化过程中,计算机及其软件产品发挥着至关重要的作用。对于软件项目的管理成为项目管理领域一个令人兴奋的课题。本文将结合项目管理中的控制方法分析软件项目管理控制的相关问题.以期提高软件项目的开发效率。 1、关于软件项目管理 1.1项目与项目管理 项目是一个旨在完成一个或一些独特产品或服务的过程.它有着一系列被详细描述的属性。由于项目的独特性和一次性特征,引伸出它的其他特点.如目标的确定性.成果的不可挽回性组织的临时性和开发性等。基于项flI的这些特点.项目运作更加注重项目决策前的计划以及对实施过程的控制,以减少项目运作的风险。项目管理是2O世纪50年代后期发展起来的一种计划管理方法,它运用先进科学的管理方式.有效解决大型组织的效率低下和小型企业面临的风险增加问题以组织的机动灵活.面向客户和资源利用率高而被广泛应用。在工程设计.施工软件项目的开发、实麓中经常会遇到进度拖延.费用超支、质量不达要求等问题除去极少数是因为技术原因造成,绝大部分是源于僵化的管理和不当的管理方式。 1.2软件项目管理 各软件企业都在积极将软件项目管理引入开发活动中.对开发实行有效的管理。从概念上讲.软件项目管理是为了使软件项目能够按照预定的成本.进度、质量顺利完成.而对成本、人员、进度、质量、风险等进行分析和管理的活动。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理.专业分工也可以降低对开发人员的要求,从而降低产品研发成本。 2、软件项目控制 2.1软件项目控制 软件项目跟踪和监控包括对照已文档化的估计、约定和计划评审和跟踪软件完成情况和结果。基于实际的完成情况和结果调整这些计划。软件项目的已文档化的计划(即软件开发计划,正如在软件项目计划关键过程区域中所描述的)用作跟踪软件活动传送状态和修订计划的基础管理者监控软件活动.主要通过在所选出的软件工作产品完成时和在所选择的里程碑处,将实际的软件规模工作量成本和时间表与计划相比较,来确定进展情况。当确定未实现软件项目计划时,采取纠正措施。这些措施可以包括修订软件开发计划以反映实际的完成情况和重新计划遗留的工作或者采取改进性能的措施。 2.2软件项目控制的内容 软件项目控制的目的是为软件项目的过程提供足够的能见度,从而可以在执行过程中发生对计划的严重偏离时能够采取适当的更正行为。软件项目控制包括:a。追踪软件项目的进展于表现从而与所作的估计、承诺和计划做出对比:b。追踪软件项目的风险;C。在发生对计划的严重偏离时采取适当的更正行为。 2.3软件项目控制步骤 由于软件开发是处在一个开放的动态系统中,开发环境的不断变化要求不断修改项目计划,以适应新的变化。此外项目经理及其组织在完成任务的过程中不可避免的要碰到这样或那样的问题.解决这些新的矛盾和问题均属项目控制的范畴项目的预算和进度计划只能为项目经理提供决策的依据.如果在项目实施过程中控制不住.很难在限定的时间和预算要求下实现项目管理工作的目标。因此软件项目控制的过程包括以下四个步骤:a、预测什么会发生——要做出开发计划并建立工作标准b、查明什么正在发生——用建立的工作标准检查当前的工作;c、正在(或已经)发生的实事同预测的结果进行比较——分析误差产生的原因:d及时采取补救措施.以满足项目目标,预算和进度的要求。 3、软件项目控制具体操作 3.1软件项目进度控制 为了确保软件开发中的各项工作能按照计划预定的日程顺利完成.对项目的进度要进行控制。进度控制的过程是.在项目实施过程中,不断地进行实际进度值与计划值的比较、发现偏差、检查分析其产生的原因,并采取相应的措施加以解决。 3.1.1进度控制流程 (1)进度控制的输入 进度计划。项目进度基准是项目测量和报告的基础和标准。 实施报告。实施报告提供了有关项目进度发展实情。报告未来可能发生的进度问题。 变更要求。项目变更要有严格的申请和审批手续。 进度管理的技术和工具。 (2)进度管理的技术和工具 进度控制变更系统。为有效实现进度管理与控制.进度控制系统应设立实现重新计划的全部功能。包括:文件设立.跟踪即实施报告.变更评估等。 实施情况测量。项目进度控制系统中的一个重要组成部分是决定对迟发生的进度偏差是否采取纠偏措施。而实施情况报告提供了决策的主要信息。如变更分析.趋势分析.已实现价值分析等。 纠偏计划。很少有项目能完全按计划进度进行为实现项目进度或总进度要求,在项目实施过程中.需要不断对原计划进行调整或增加新的工作内容。为此.需要不断对实施的项目进行活动时间预测。修改活动过程.替代进度方案分析。 项目管理软件。它的作用是跟踪项目按计划日期展开实际工作的情况.对照进度计划分析进度现状,找出进度的偏差.分析进度偏差对项目的影响.预测未来走势 (3)项目进度控制的输出 进度更新。包括对项目管理中任何进度信息的修改。进度调整是其中的一种.师队员进度计划中活动开始和结束时间的改变。纠偏行动。通过改变资源投入将实际进度拉回到计划的行动过程。 从中获得的教训。有关进度偏差产生的原因。纠偏方案的评估与选择以及其他方面的感受和教训都应纪录在案成为日后有用的历史资料。 3.1.2进度控制方法 一般项目进度控制采用因果分析.分析用四步完成: (1)明确问题。实际完成情况与项目里程碑相对照.确定是否超期.超期的部分是在哪里。 (2)查找产生该问题的原因。位从系统角度充分认识各方原因.应组织具有代表性任务人员并采用头脑风暴法进行。项目主管要通过他领导的办公室或小组,以及在各职能部门的人共同分析问题产生原因。 (3)确定个原因对问题产生的影响程度。对影响程度的评估可以采用专家小组打分的方法,事先确定权数.而后打分得出分析结果。 (4)画出带箭头的鱼刺图。分析出原因后各部门各就其职针对问题提出解决方案.并实施。 3.1.3软件项目进度控制具体措施 在实施进度计划过程中,会有种种故障:客户的需求进行了补充或修改;工作量估算不准,造成进度不平衡或是有人不遵从开发规范.导致产品出现缺陷;或是技术环节出现故障,这些问题往往是在进度计划外出现的.一旦出现这些问题,项目进度不得不进行调整。开发过程中为了有效控制类似问题,可以采用以下辅助措施,控制进度按计划执行: (1)政策性措施。对于不遵从开发规范,人员不按时履行职责的.给予经济或是职务上的处罚.这种措施应是建立在分配任务之前; (2)人员安排。在各子项目接口处适当安排机动人员与机动时间。这一措施有赖于项目组织的机构设置能动性好。此处比较难解决的是人员业绩评估.奖励问题。 (3)技术措施,要想很好地执行进度计划,需要事先有统一的规范例如开发语言的统一,文档的归类。这样便于下一阶段人员理解上一阶段人员意图,交流更加容易。 (4)信息流措施。该措施要求建立一个信息流系统.准时汇报项目进度.便于主控人员调整进度,并且保证信息流通顺畅。避免开发期压到最后造成严重拖工。 (5)资金措施。财务部门可以定期检查各部门财务情况.控制资金流出时间.进而控制项目进度。这与后面要讲到的三者权衡有密切关系。 3.2软件项目费用控制 费用控制就是要保证各项工作要在他们各自的预算范围内进行。其基础是实现就对项目进行费用预算。整个项目费用应包括项目范围规划阶段。软件需求分析阶段.原型设计阶段开发阶段.测试阶段和项目投入使用后的使用阶段所消耗费用的总和。软件开发项目承担公司为了完成项目目标和获得更多的利润.在实施项目过程中就要控制成本.在控制过程中,首先要拟定一个标准.即计划值.然后进行实际至于计划值的比较,确定实际值与计划标准的偏差大小.以便在此基础上采取各种措施纠正偏差.常用的分析工具是偏差分析。 偏差是指实际成本对相应计划的偏离,成本偏差的数学公式为: CV=BCWP-ACWP(负数CV表明出现超支;反之,则节资)(3—1) 其中:CV为成本偏差,BCWP为计划工作预算,ACWP为完成工作实际成本。 在进行成本偏离计划程度分析时,常用计划偏差率反应时给予计划的偏离程度。 CVP=CV/BCWP(3-2) 其中CVP为成本偏差率。 偏差值是控制分析中的一个关键参数,因而应向各级组织汇报。对于不同的项目或同一项目不同阶段或不同管理层次,对偏差的控制程度不一样,制定偏差允许值的方法也不同。由于随着时间的推移风险减少了,因而偏差允许也可降低。 3.3软件项目质量控制 对于软件产品的项目质量控制应是事前有预控,过程有监控的主动控制闭环系统。(1)事前预控:根据影响质量因素多等特点.软件项目质量必须事前预控,及根据软件的类型和特点,以及以往类似项目的常发病和预防措施,对软件项目质量提出事前预控措施,包括制定控制的计划和程序,这是项目质量控制的前提。(2)过程监控:根据易产生质量波动和易产生系统因素变异等特点,软件项目质量必须过程监控.即按照预控的计划和程序,对工序、分项、单元的全过程进行过程监控.包括监测、检查、控制和评定.这是项目质量控制的基础。 4、结语 软件开发项目在进度、费用和质量三方面均需要进行控制,因此还存在三因素的权衡问题。实践中.需要在三方面均进行行之有效的控制措施才能确保项目完成情况与计划最大限度的接近。本文提供了一些方法借鉴.对软件开发项目控制有一定的实际意义。 软件项目论文:浅谈软件项目实训中的人员选择与管理 论文关键词 软件高职 项目实训 人员选择 人员管理 论文摘要 项目实训是软件高职教育课程体系中的重要环节。结合软件高职项目实训中人员管理的实际情况进行分析和论证,同时给出实训人员选择与管理工作的基本原则和方法,并总结其中的一些基本经验。 随着国家大力发展职业教育的政策的出台,职业教育在全国范围逐渐兴起,软件高职教育作为职业教育的一个重要组成部分,为国家和地方培养了大量的具有较强动手能力的一线人才,创造出巨大的生产力,带动整个IT行业的发展,推动经济和社会的进步。项目实训作为软件高职教育课程体系中的一个重要环节,无论是对学生理论知识的拓展还是动手能力的培养都起到至关重要的作用。目前,福建省的软件高职项目实训还处于初级发展阶段,无论在项目设置上还是在管理方式上都存在不足。笔者结合实际教学和管理经验,对软件高职实训中的人员管理方式和方法做初步的分析和探讨。 1 人员的选择 教育的宗旨是以学生为本,平等地对待每一位学生,让他们在最大程度上发挥潜力。但是实训工作毕竟带有一种企业模拟性质,学校注重教育公平,而企业更关注开发效率和项目成本,这两者在一定程度上是此消彼长的对立面。因此,如何通过合理的人员选择和配置,找到既能平等地对待每个学生,又能够最大限度地提高项目团队开发效率的平衡点,是实训项目管理人员所急需解决的现实而又棘手的问题。以下是笔者在实践中探索并采用的2种较为合理的人员选择与配置方案。 1.1 T R式自由组合法这里的T指的是Test,即测试,包括技术笔试和专业面试。在两项测试之后应形成一个比较合理的量化指标,该指标应着重突出候选人员的技术能力和团队意识,公布所有候选人员的各项量化指标。为保护学生的隐私,在公布时可以用编号取代学生的真实姓名。这里的R指的是rate,即比例。项目管理人员可以预先设定好小组成员结构的技术等级比例,参照学生的综合得分情况,按照1:2:1的高中低3个层次分布比例较合理。这种做法既可以避免单纯比例式自由组合给学生带来的盲目性,也能够比较真实地反映学生的能力水平,可以科学地、客观地组建起较为高效的团队,从而能够在后续阶段提高团队整体工作效率,也为管理工作带来方便。 1.2 T R交互式人员确定法首先寻找若干名班委组成评审组,项目管理人员或教师负责领导该评审组;接着参照T R方法得出候选人员的各项评估指标和综合指标,以及小组结构比例;然后由评审小组成员进行数据分析并结合每个成员实际情况确定各小组的组成人员。将初步形成的分组名单公布告知各候选人员,征求每位成员意见,由评审小组跟持反对意见的候选成员进行当面的会议式的沟通,进行合理的调整,经此步骤之后形成最终分组名单并公布。这样做实现候选成员与管理人员之间的交互,能够把纯粹的硬性考核成绩指标转化为“考核成绩指标+交互式分析”。这样较为客观且人性化的评判方式,既能够得到较为真实的数据,又能够吸纳学生合理的意见或看法,从而利于更科学的人员选择。 2 人员的管理 美国心理学家亚伯拉罕·马斯洛把人的需求分成生理需求、安全需求、社交需求、尊重需求和自我实现需求5类,依次由较低层次到较高层次排列,在管理中他建议通过满足人的需求来激发他们。 在学校实训的项目组中,成员的生理需求和安全需求都基本能够得以满足,因此,保证成员的社会需求、受尊重需求和自我实现需求的满足,对管理者来说有十分重要的意义。1)满足组员的社会需求就是为组员提供相互交往的时间和场所。实训项目的交流不应仅局限在小组的范畴,应鼓励小组与小组间的相互交流,条件具备的话可以组织学校跟学校间类似项目组间的交流。形式可以多样化,如电子邮件、组建QQ群、网络会议、座谈会和技术讲座等互动方式。2)为了满足组员受尊重的需求,应该让他们感到在项目小组中受到人格上的尊重,技术长处被认可。对于参加实训的学生来说,对他们做出的成绩给予充分的肯定就是一种简便高效的方式,如针对某个技术环节开展一次技能比赛,或者开展评审会定期对项目阶段成果进行评估,对优秀团队及其成员进行表彰等。3)为满足组员自我实现的需求,应该在项目取得一定成果的基础上,分配给组员具有一定挑战性和难度的任务,这些任务不能超过学生能力的范围,同时给他们提供课外的辅导以提高他们解决这些问题的技能。任务的完成情况可以作为附加评审内容纳入学生最终的实训综合成绩中去,给学生超越自我的动力。 3 团队的管理 3.1 增强小组凝聚力一个有强大凝聚力的小组是最高效的小组,小组中的成员在思想上能够形成共同的准则,在工作中能够紧密配合和协调,组员跟组员之间能够互相学习、相互关照,从而消除隔阂,用集体的力量解决许多工作中的问题。增强小组凝聚力的方式有许多,如给小组起个性化的名字、开展游戏或者室内或户外运动等方式增进组员间的沟通。另外,提高小组组员的责任感、诚信度以及保障他们的知情权、提供发展的空间等,都是增强小组凝聚力的有效方法。 3.2 增强小组沟通沟通作为软件开发过程中的重要环节,对于开发效率的提高和团队的整体发展具有决定性的意义。1)适当的小组规模。在编制小组成员时应考虑到人数对沟通的影响,成员太少,沟通容易但不利于开发效率;反之,成员过多会使得沟通变得十分困难,从而使效率严重下降,因此,合理的人员安排才是关键。根据经验,一个实训小组以4~8个为宜,其中6人组最为合适。2)合理的性别比例。如果小组中的组员性别均相同,可能会导致冲突,使得沟通无法正常进行,所以在确定小组结构时应注意男女比例的控制。对于软件开发类实训项目而言,小组中的男女比例应控制在3:1左右,其中女性组员可以作为小组的协调员。3)适当的小组负责人。小组负责人除了领导小组工作外,还负责协调小组成员之间的沟通。受尊重的小组负责人可以提高小组凝聚力和工作效率,无论对自身的进步还是对整个团队的发展来说都是大有裨益的。
计算机软件安全篇1 0引言 在技术水平持续提升的背景下,计算机领域的发展也被重视。与此同时,计算机源代码越来越庞大繁杂,很多黑客对计算机软件源代码进行攻击,从而盗取计算机软件当中存储的关键信息数据,这些行为会导致计算机系统出现较多漏洞,对计算机网络的发展造成危害,甚至会产生经济损失。计算机已经大范围的在群众日常生产生活中得到应用,随之而来的是严重的计算机软件安全缺陷,越来越多的人为了获取个人利益而对软件进行恶意攻击。所以要不断升级优化计算机软件安全漏洞的检测技术,从而为计算机的稳定安全运行提供坚实保障。计算机软件的安全漏洞往往是会对计算机软件的正常运行产生威胁的不足和缺陷,主要包括两种形式:第一是阻碍计算机系统安全稳定运行的功能性漏洞,第二是对计算机系统进行恶意攻击的黑客行为。大部分计算机漏洞的存在主要是来源于人为操作,具备较强安全性和稳定性的计算机系统软件,若安全缺陷存在于计算机原始软件系统当中,黑客需要找到安全漏洞才可以进行下一步攻击,无法发现漏洞的话,是难以进行计算机系统的有效攻击的。所以,文章对频繁出现的攻击行为以及计算机系统软件中的普遍安全缺陷进行分析探索,以期为后续计算机安全软件的升级优化提供借鉴性意见。 1计算机软件安全漏洞的概述 大多数计算机软件系统当中都会安装一系列杀毒软件以及高端防火墙,防止因为计算机系统当中存在过多安全缺陷和不足而造成严重后果。计算机安全漏洞能够为攻击计算机系统的群体以及进行恶意攻击程序的编写提供切入点,一般会利用访问未授权或者是未授权的方式,这都会造成计算机系统受到一定的损害。一部分计算机软件在出现入侵情况的时候,需要授权信息,反而会对计算机系统造成不利影响。从当前计算机运行的具体情况可以发现,防火墙和一系列杀毒软件很难发挥其价值,实现预防黑客攻击并造成系统损失的目标。一旦计算机系统遭到黑客入侵,在恶意攻击下会导致计算机系统的信息被盗取或者遗失,这往往是黑客利用更加先进的计算机入侵技术,从而破解计算机系统的防护屏障。往往在计算机进行防火墙或杀毒软件的安装时,计算机会频繁产生运行不良的现象,造成计算机软件出现严重安全缺陷和不足,不利于计算机系统的安全稳定运行。现阶段,大多数计算机系统主要利用密码技术,从而防止计算机出现安全问题,但事实上,这种方法并不适合当前的计算机系统,密码技术并不能有效地防止计算机出现安全问题。计算机软件中存在的安全漏洞主要包括三种类型: (1)OLIBTIFF开源软件库,这种安全缺陷主要存在于文件当中,能够帮助用户读取和书写标签文件; (2)ZLIB数据软件库,这种漏洞的代码并不完善,可以对其他代码进行解释,从而导致出现严重的安全缺陷; (3)Net-SNMP,这是一种协议文件。 2计算机软件安全软件的实质和特性 2.1安全漏洞的实质 计算机系统当中存在的安全缺陷其实就是软件中的薄弱点,由于各种类型因素的作用,比如,研发工作人员人为失误、研发出现偏差等因素。计算机软件系统中的安全缺陷的实质是: (1)它是逻辑层面的问题和缺陷。计算机研发人员在进行软件程序的编写时,往往会存在逻辑层面的缺陷和不足,所以造成这种安全问题的主要原因是相关工作人员粗心大意,或者是在进行数据的处置过程中存在逻辑问题,这在一定程度上都会影响计算机软件后续运行的稳定性和安全性。 (2)是计算机软件输出环境的多方面影响。由于计算机软件所处环境的不稳定,也会导致出现多种计算机安全缺陷,并且计算机硬件的差异性也会对计算机安全性产生影响,在针对计算机存在的安全缺陷展开分析时,需要充分考量计算机硬件和软件的具体环境。 (3)计算机的使用时长。如果计算机运行的时间较长,那么存在的安全缺陷和不足也会更多,一部分用户在发现计算机系统存在安全缺陷的情况下,及时应用相应的技术预防,但在不久后也会产生新的安全缺陷和不足。 2.2计算机安全漏洞的特性 根据计算机安全缺陷和不足的具体特性可以将其类型分为人为造成的安全漏洞和非人为造成的安全漏洞,这往往是在进行计算机系统和软件的研发试运行的过程当中,由于工作人员的粗心大意,并没有及时发现计算机系统存在的缺陷和不足,或者在进行计算机程序的编程时,存在逻辑层面的问题,从而导致安全漏洞的出现。在克服计算机存在的安全缺陷时,往往很难实现一次性解决,一般的安全漏洞,在计算机系统中存在了较长时间,因此,当计算机系统中出现了较多安全问题时,黑客攻击计算机系统并且对其安全稳定运行产生不利影响。在完善计算机系统中存在的缺陷时,往往需要面对较多问题和困境,在这个过程中,也会伴随着新的漏洞出现,所以需要进行计算机系统的持续升级和后续检测完善。计算机系统的优化升级也可能会造成安全缺陷,并且计算机软件在优化升级过程中涉及多领域,安全缺陷很难得到解决[1]。计算机安全缺陷的突出特性是逻辑和运算层面的问题,在进行计算机系统的试运行时,要有大量的信息数据作为支撑,往往会出现数字长度与模块不符合的情况,计算机系统针对类型各异的安全缺陷发挥的预防价值也有所差异。 3应用广泛的安全漏洞检测技术 现阶段得到大范围应用的计算机安全漏洞检测技术,主要包括两种类型:静态和动态检测技术。他们都可以对计算机系统存在的安全缺陷和不足进行检测,但是在实际运用过程当中也有较大不同,要根据计算机系统存在的实际问题选择最有效的检测技术。 3.1动态检测技术的应用 该技术不需要对程序源码和二进制代码进行变更,主要是针对在计算机程序运行过程中的安全缺陷和不足进行检测,对计算机的运行环境进行深入分析研究和完善就可以使计算机程序的稳定性和安全性得到提升。动态检测技术主要包括: (1)内存映射技术的应用。这项技术只会对需要利用高端地址和固定地址的计算机程序产生影响,利用映射代码页的形式,黑客进行攻击的过程中面临较大困境,这项技术必须要对计算机的操作系统进行更改,所以,即便可以及时检测出系统中地址跳转的安全问题并进行针对性预防,可仍然没有办法对新代码中的缺陷和不足进行检测。 (2)非执行栈技术的应用。一部分黑客通过对非执行站输入代码,从而损害计算机系统,因此必须要防止非执行栈执行代码才能够避免系统损害,不过,这项技术也会产生性能和兼容性的不足[2]。 (3)沙箱技术的应用。这项技术是通过阻止进程对资源进行访问,从而避免被攻击。这项技术不用进行计算机操作系统的更改,因此,该技术具备较高的安全性和全面性。同时,它也不会产生其他缺陷和不足,广泛应用在计算机系统的调用领域当中。 (4)非执行堆与数据技术的应用。这项技术主要通过阻碍执行敦和数据段,从而防止恶意代码被执行。能够及时发现系统当中存在的恶意代码,可是却很难对函数指针和函数参数中存在的缺陷和不足进行检测和预防,也不适用于多个应用程序同时运行的计算机。 (5)程序解释技术的应用。这项技术主要是在计算机运行的过程当中进行安全缺陷的检查,应用比较频繁的是程序监视器。这项技术也不用对计算机操作系统的各个部分进行更改,不过在一定程度上也会对计算机系统的兼容性和运行性能产生不利影响[3]。 3.2静态检测技术的应用 这项技术主要是通过程序分析,从而明确应用程序当中的二进制代码和源代码。静态检测技术包括: (1)元编译技术的应用。这项技术是在编译器的基础上进行延伸拓展,从而能够对计算机代码中的安全缺陷进行检测。由于它只是在编译器的基础上延伸形成的,出现失误的可能性比较小,也不会造成语言特性的变化。 (2)变异语技术的应用。这项技术主要适用于不安全的类型转换和多点随意转变标志等可能会对计算机系统造成威胁的操作。动态检测技术也存在一定缺陷和不足,而静态检测技术主要是针对源代码和二进制代码,因此,可以通过漏报和误报的情况明确静态检测的稳定程度,可以通过静态检测发现的不足越多,计算机的程序就越安全稳定。 (3)程序评注技术的应用。这项技术不需要额外给代码加入其他语言特色,通常是以注释的方式呈现出来,也不会出现兼容方面的缺陷和不足,利用评注信息进行深入研究,可以明确系统中存在的隐藏缺陷。不仅如此,也需要相关工作人员对数据中存在的可能问题进行检查。 (4)约束计算器技术的应用。这项技术不需要对源程序进行修改,不过误报率会比较高,所以会加重相关工作人员的工作负担。 (5)类型推断技术的应用。这项技术是通过新型修饰实现系统内信息数据安全性的增强。它的运用效率较高,可以广泛应用在程序规模较大的计算机系统当中,不过也会出现兼容性方面的缺陷。 3.3源代码改编技术的应用 这项技术与上述两种技术有较大不同,它能够更好地实现对计算机内的系统进行修改和跟踪,不过,在实际应用过程当中难度系数较大。 4安全漏洞检测技术的实际运用 4.1防格式化漏洞技术的实际运用 在计算机系统当中出现次数最多的就是格式化漏洞,所以,通过利用代码常量计算机软件格式能够降低被攻击的可能性。这种类型的漏洞一般以文字或符号的形式呈现,因此,在进行安全检测的过程中需要尤其重视软件参数,可以有效提升检测的精准性。这种漏洞造成的主要后果就是导致计算机系统内的重要信息数据被窃取或丢失,同时很难在后期进行修复。往往会给计算机用户带来利益损害,因此,必须要重视对格式化漏洞的检测。 4.2防竞争漏洞技术的实际运用 这种类型的漏洞也会经常在计算机系统当中出现,所以在安全检测的过程当中要重视软件代码。软件代码也是计算机系统运行过程中的基本执行单位之一,原子化的软件代码具有突出的特性。在具体计算机运行过程当中,大多数软件中存在的安全缺陷都是由于人为失误产生的,以企业计算机系统中的关键信息数据为例,竞争漏洞在一定程度上与企业的稳定发展和存亡有直接关系,如果没有认识到竞争漏洞的关键性,企业可能会需要承担较大的利益损害。 4.3防随机漏洞技术的实际运用 这种类型的漏洞主要是由于计算机发生器存在不足而造成的,首先要明确发生器的运行状态,在发现难以正常发挥其运行性能的零件后,进行修复,从而使计算机发生器能够继续使用。通过利用相关先进设备能够实现这种类型漏洞的预防,在出现被攻击的情况时,数据流也不会被盗取或丢失,从而使计算机能够安全稳定的运行。 4.4防缓冲漏洞技术的实际运用 针对这种类型的漏洞,通过利用危险函数从而可以实现版本的更新,为计算机的安全性提供了强大保障。 4.5防字符串漏洞技术的实际运用 这种类型的漏洞在预防过程当中要通过更加全方位的措施进行预防,通过格式常量防止攻击者创建字符串,即便不进行固定参数的设置,也可能会出现这种类型的漏洞。以应用函数为例,必须要及时对参数数量进行修正,从而实现参数个数的均匀分布。 5结语 根据以上所述内容,计算机软件安全漏洞的检查技术在实现信息安全的过程中发挥着关键作用和价值。文章通过对计算机软件中存在的安全缺陷进行概述,并且针对性的提供了安全漏洞预防策略,从而为计算机软件的稳定运行提供保障,充分发挥漏洞检查基础。 作者:曹道通 单位:江苏省徐州经贸高等职业学校 计算机软件安全篇2 0引言 改革开放以后,科学技术快速发展,特别是近几年计算机网络技术快速发展,为了达到智能化办公的要求,很多企业使用计算机开展办公工作,企业内的员工使用计算机的数量和时间也在不断增多。在计算机软件使用过程中,由于不同使用者的计算机应用需求有所不同,较为熟知的是办公软件和绘图软件的使用,其分别属于两个不同的工作模块,软件开发公司会根据用户的实际数据需求情况,开发出符合用户需求的计算机软件。用户对单一功能软件在使用过程,能在不同的办公区域发挥重要作用,主要是这部分软件具有自己的数据运行体系。如果不同的数据之间想要实现数据的转换,则会给计算机用户带来很多困难。因此,如果软件之间实现数据共享,存在较多的困难,计算机软件研究人员要对数据传输接口给予足够关注。计算机软件数据接口的出现,能将数据接口传输中存在的问题完美解决,保证用户的工作效率和质量。 1计算机软件数据接口以及构建理念的概述 1.1数据接口概述 计算机软件数据接口的存在,主要是将软件管理实行规范化的管理,在用户对计算机软件使用对接过程中,实现数据之间的传输,保证不同数据之间相互传递,用户在使用数据时,同时使用多个计算机软件共同完成某一项工作。通过使用计算机软件接口功能,与一些不相容的软件相结合,保证工作中出现的问题能被有效解决。现阶段,计算机软件在公司开发过程中,由于数据代码之间所存在的差异性,计算机专业技术人员能让数据转换以及数据之间的共享成为现实[1]。然而,在实际计算机软件的数据使用中,不同公司开发出不同的软件,受困于开发人员的差异,软件之间的数据传递也变得越发困难。如果在开展数据处置的过程中,数据的传输方式出现错误,必然会造成数据传输出现困难。因此,选择使用何种方式让两种数据相互融合是非常重要的。计算机软件数据接口的出现能让两种或者是两种以上的软件之间,实现数据上的传输,数据传输工作效率也能全面提升。使用计算机软件数据接口过程能有效避免出现数据传输错误的情况,这种传输模式下所具备的安全性也较高。综上所述,计算机软件数据接口系统开发,能满足人们的日常需求。 1.2数据接口构建理念 计算机软件数据接口主要具备优点兼容性以及稳定性。在用户日常使用计算机软件过程中,软件能保证计算机正常使用,为用户带来了便利,将落后的工作效率全面提高。合理使用计算机软件数据接口,能保证数据信息的传输更加规范,使用者能保证数据信息传输符合技术要求,换而言之,只有使用正确的数据传输功能,才能保证计算机内的数据符合标准要求,达到计算机软件平稳使用的目的[2]。因此,当技术人员在开展计算机数据接口设计工作时,工作人员对数据稳定性以及不同数据之间兼容性要给予足够关注,设计人员也需要对数据传输中的重点和难点部分给予关注,找出合理的解决方案来将难点进行避免,设计模式能保证计算机软件处理错误的能力全面地提高。 2计算机软件数据接口的现状 计算机软件数据接口在使用过程中,用户所使用的语言功能在数据的支持下,能对这部分数据结构开展访问工作。数据使用人员对已经建立完成的数据库,做出基本的了解后,如果用户在这个时间段,已经对语言有一个全面的掌握,在工作人员对计算机数据库开展访问工作时,能快速获取软件的数据信息。这种数据访问形式较为简单容易,但是,在这个过程中也会出现各种不同类型的问题,最为常见的现象是在数据传输中,传输前后的数据出现不一致情况或者传输数据出现缺失。另一种常见隐患是技术人员在对程序调取时容易出现,较为通俗的说法是软件设计人员对数据开发时,如果想要对这部分数据合理使用,技术人员在不调取后台数据过程中,对前台数据直接地开展调阅工作[3]。这种情况下计算机的软件系统处于暴露状态,容易受到外部的黑客软件攻击。如果技术人员在对后台数据提取的过程中,一些专业的黑客技术人员,能通过软件的漏洞,对软件中的数据开展分析工作,能将一部分的重要数据信息进行盗取,造成软件系统运行出现数据丢失情况。当技术人员使用专业的远程软件,开展计算机的访问工作,然而,这种访问记录能被系统记录下来,在用户对计算机的使用过程中,如果不注意信息的保护工作,会造成数据库出现丢失的情况,当技术人员想要调取这部分数据时,存在的困难也较为明显,因此,计算机软件数据接口的使用中,需要将所存在的问题充分考虑,保证数据传输安全平稳运行。 3计算机软件数据接口的设计原则 3.1可扩展性和面向对象原则 计算机软件数据接口设计人员在开展具体工作时,需要将接口和软件之间的关系进行明确,两者属于相互对应的关系,在日常数据使用过程中,数据接口需要根据软件的变化而实现变化。在科学技术发展过程中,计算机软件研发公司会依据客户的实际需求,不断对计算机使用的软件开展升级工作,计算机软件数据接口也要定期开展更新工作,保证数据之间能按照客户的需求进行传输。然而,在计算机软件升级过程中,由于软件的使用功能会全面地增多,参与数据传输的第三方软件在使用时可能受到影响,在这种情况下,需要根据软件升级的发展规律,也要遵循数据扩充的基本原则,针对计算机软件升级中出现的问题,及时将数据端口扩宽。在软件升级过程中,避免出现软件数据大范围的波动,导致软件的使用受到影响。软件数据传输主要执行的是面向原则。软件设计人员根据客户的实际需求开展接口的设计,设计人员在开展具体工作时,需要将接口中的各项功能进行明确,使用专业的语言开展描述,这种数据接口的描述能满足客户的实际需求,客户在使用数据接口的过程中,保证数据的使用效率和质量。 3.2高容错性和满足需求原则 计算机软件数据接口在设计过程中,不是一个程序完成此项工作,而是需要多个程序相互合作,在多个程序设计过程中,如果某一个环节出现问题,那么会导致计算机程序会受到严重影响。这种情况下对计算机软件数据接口使用提出较高的要求,需要计算机软件数据接口具备一定容错能力,保证错误处理能快速地实现,对计算机使用产生严重影响。计算机在实际使用的过程中,计算机软件接收到规则之外的数据时,计算机数据接口也能通过数据的计算方式对这部分数据开展处理工作,满足异常数据的处理[4]。计算机软件的功能决定了其使用效率,能为使用人员提供相应的服务,在计算机数据接口使用中,能将数据的使用范围不断地扩大,因此,在设计人员对数据接口设计时,需要与用户深入地开展交流,针对用户的实际需求进行分析,将用户所有要求全部融入接口软件,这种软件设计模式能保证用户的实际需求。 3.3遵守计算机行规的原则 现阶段,国家计算机管理部门根据计算机软件实际使用情况,出台了一些管理规定,设计人员在开展具体的计算机软件数据接口的相关工作时,需要充分考虑这些管理规定,设计出来的接口只有符合国家的管理规定,才能保证用户的实际使用需求,被更多的计算机软件使用人员所接受。在这样的发展背景下,计算机软件企业才能实现长久发展。无论是计算机软件编制企业还是软件设计人员在实际工作开展时,需要认真学习国家下发的管理规定,针对市场的发展需求以及客户的需求情况,进行计算机软件研发工作。 4计算机软件数据接口的应用模式 4.1应用程序接口函数模式 应用程序接口函数属于一种较为常见的模式,在这样的软件编写模式下,软件的设计和开发人员在开展代码编写的过程中,在满足客户的实际使用要求的基础上,在对函数进行编写过程中,软件在运行时能对已经编辑完成的数据函数做出访问,在达到数据运行条件时进行运转。例如,当用户使用计算机软件开展具体工作时,能通过快捷键将数据直接进行调取,不需要烦琐操作就能获取数据,在这样模式下用户完成工作时间会全面缩短,工作质量和效率能得到有效提升。此外,应用程序接口函数模式所具备的安全性较高,避免软件在使用的过程中,用户的保密数据出现泄露情况[5]。计算机软件数据接口的数据方案只有开发商才能了解具体的设计方案,除了软件的开发商和设计人员,第三方软件则也不能了解端口的实际数据情况,第三方软件的开发者也不能对数据函数开展任何的修改工作。在这种软件管理模式下,软件数据接口中所涉及的技术以及计算机信息不能被破坏,这种模式具备的优点较为明显,能被各个软件使用者所选择。 4.2文件交换模式 文件交换模式在使用过程中,计算机软件的使用人员、软件的开发人员以及第三方软件的研发人员,三者之间相互合作,建立起一个专业化的文件交换平台,在这个数据传输平台内部,可以进行数据的传输与交换。计算机软件开发工作人员,在对数据软件开发过程中,根据实际使用情况会最终确定使用哪种类型的数据结构,第三方软件的开发企业以及用户会在这个数据结构下,建立出对应的文件夹。当软件系统接收到这个文件时,系统会根据实际情况返回一个新的文件,这种模式能保证数据之间形成共享。现阶段,数据软件在投入使用的过程中,传输的数据接口类型,主要包含的文件类型是txt和ini两种。例如,在Windows系统中,自带ini文件的内容,同时,windows系统也提供了ini文件所使用的API函数,使用中很多的计算软件均能通过ini文件配置相应的文件信息。 4.3中间数据库模式 中间数据库模式在使用时,软件的开发人员在开展数据编写任务时,根据实际的数据需求情况,有针对性地建立起公共的数据库系统,这个数据库系统能保证软件的开发人员以及第三方软件能一起使用,保证数据之间能实现共享以及相互的交换。在数据交换过程中,要避免数据库被其他非法入侵,第三方软件想要访问中间数据库需要开展身份验证工作。对这部分数据库进行维护的工作,需要由软件的开发人员来完成。然而,这种中间数据库在建立和使用的过程中,整个配置较为烦琐,需要技术人员全程配合才能完成。因此,这项技术还不能实现普及。 5计算机软件数据接口实现效果的策略 5.1提高对数据接口设计的执行管理水平 现阶段,软件设计投入使用以后,用户能在最快的时间段内实现数据调取,使用这部分数据开展软件的编辑工作,这种方式具备的优点较为明显,能实现数据传输的快速操作,但是在数据传输中,安全性不能得到有效保证。专业的计算机使用人员在使用软件时,能发现数据存在的漏洞,进而能了解数据的内部具体情况,一些黑客能对软件进行攻击。因此,要做好计算机使用的分析工作,发现计算机数据接口不足,针对性地进行修补。计算机数据接口选择使用的设计方案对后续的使用会产生明显影响,从计算机软件的性质上分析能发现,软件设计工作属于较为特殊的性质,软件企业在开发软件的过程中需要对数据接口严格开展管理工作,建立健全制度,保证软件的开发质量能达到使用者的要求,软件的编制企业也要对软件的实际使用情况开展把控工作,建立起专业的软件评价系统,系统评价各项软件的使用情况,更新不符合质量标准要求的软件,解决软件在使用中存在的问题。另外,软件企业也需要对用户的实际需求给予足够多的关注,当用户在使用软件的过程中,发现软件存在的问题也要及时改进,进而使计算机软件数据接口更加顺畅。 5.2提高对质量测试的重视程度 计算机软件数据接口在设计以及开发过程中,所具备的重要性较为明显,因此,软件开发人员在完成基本工作后,需要根据软件实际使用情况,对软件开展测试工作,测试不同使用情况下的软件工作效率,将测试中出现的问题详细记录。软件开发人员针对测试中出现的问题对软件开展调整工作,保证软件的使用效率。在特定的条件下想要达到应有的测试效果,软件企业需要根据本单位的实际情况,组织专业技术人员成立软件测试机构或者是管理团队,这种模式能保证测试工作顺利进行,在软件投入使用以后不会产生任何问题。 6结语 综上所述,计算机软件数据接口能让各个不同的软件之间形成数据上的传输,软件之间的数据共享功能,能保证计算机使用人员的工作效率以及质量的提升。因此,计算机软件开发企业在开发过程中,需要将各项资源充分利用,保证数据传输中接口效果,定期对接口软件开展优化工作,确保计算机软件能满足用户的实际使用要求。 作者:王云 单位:江苏省连云港工贸高等职业技术学校 苏省经贸技师学院 计算机软件安全篇3 一、建立计算机软件基础课程思 政体系计算机软件基础课程融入课程思政的线下教学结构设计,如图1所示。在采取线下对计算机软件基础课程体系具体设计中,将教学内容、教育目标、课堂知识点、育人思政元素融入每一节课堂中。教学目标分为以下几个层次: (一)理论知识阶层 了解软件设计环境,掌握循环、数组、函数、过程、窗体、界面的程序设计技能,同时,教育新同学要有理性,对不懂的事情要慎言慎行,有所敬畏,还要爱父亲、爱母亲,爱学校、爱祖国。教育学生计算机发展的方向是传承发扬计算机思维,是思维方式的进展。要认真学好这门课程,未来发展无限可能。激发学生努力学习的热情[1]。 (二)实践操作阶层 鼓励学生勇于探索和实践,分析、展望计算机软件设计发展的水平和方向。同时,向学生们介绍计算机技术的发展前景,介绍我国计算机事业的开拓人—华罗庚数学家;汉字应用激光排版的开创者—北大教授王选先生,并向这些科学家的贡献和成就表达敬意。 (三)政治思想、情感思想阶层 通过鲜活、图文并茂的案例,调动学生学习计算机软件设计的兴趣,正确理解学习本课程在将来工作中的应用价值。要清楚:软件编程思维不仅仅是计算思维,也是一种科学思维,是灵活开发技术的应用思维,不是古板的技能[2]。二、线上教学融入课程思政体系结构建设 (一)充分发挥、应用线上平台的公告作用和功能 当学生不与教师面对面,走出教室的时候,线上平台会及时发布图文并茂的文档和公告,让它成为寄语学生的重要工具。例如:疫情期间的线上教学,通过公告平台鼓励学生共克时艰、努力学习。MOOC平台上有一定的感召力,充分展现它不受时空限制的优势,激发教育学生。图2是辽宁工业大学(以下简称我校)一门计算机软件基础的MOOC平台界面,右侧第4项就是“通知”公告。 (二)线上平台的讨论区域 线上平台的讨论区域,可以设置与计算机基础理论相关的内容,让学生间、师生间交流,也可以学生自主发问、发帖同教师、同学共同研讨学习。学生可以在平台研究区寄语,例:我国操作系统的发展,感同身受地抒发爱国热情。再例如:之前华为遭受制裁时,提出国产硬件发展的爱国话题[3]。 (三)计算机软件基础是公共基础课 可以充分发挥线上云平台的优势,不受专业、上课时间的约束,对理论知识、道德情怀、爱国思想等各种资料,在云平台上展示和分享。在提高计算机基础技能的同时,了解计算机发展历史上的好事迹、好作风、好思想。线上云平台提供完整、丰富、图文并茂的资料和视频,达到既学习理论知识、又进行爱国思想教育的目的。 三、慕课平台、网络机房、课程思政、翻转课堂相结合的立体体系 (一)计算机软件基础课 开展翻转课堂教学,就是让新生养成规划时间能力、独立思考能力、团队协作能力。计算机软件基础课理论和实践部分实施翻转课堂[4],依托MOOC平台,学生小组分工协作,按教师要求看MOOC微视频、查找资料、归纳总结。在任课教师的指导下,学生在讲台上翻转讲解,回答同学提出的问题,教师、学生同步打分,可以改变学生思维,主动学习,相互提醒、督促,尽快掌握大学的学习技巧和方法[5]。同时,掌握各种信息化网络平台和网络工具,提升学生的实践能力。 (二)融合课程思政的方法和内容 如图3所示,MOOC平台的特点:MOOC微课程:融合思政元素、理论教学知识点。要做到自然结合,不能硬套硬搬思政元素、捆绑课堂内容。设计MOOC平台线上答疑系统、单元测试系统,把握好质和量的要求,做到:面对面互动答疑与MOOC平台及线上答疑能够自动切换;师生互动、学生管理、教学资源集成化;建设并完善学生综合管理评价系统;MOOC资源中,融入爱国、信仰、理想等元素;MOOC资源中的知识点,要灵活、生动、准确地与思政元素进行融入结合。网络机房的特点:根据本课程实践性强的特质,建设虚拟网络机房,采用云计算方式进行平台虚拟化,完成实践教学课堂的云平台的建设,为计算机软件基础课提供多元化、多角度、多层次的分布式教育教学平台[6],让教育模式创新、教学资源优化。四、结束语计算机软件基础课程思政建设与完善,着眼于线上线下课堂,依托MOOC云平台,利用线上平台传播广、受众多、资源丰盈的特点,把线上资源与线下面对面授课相结合,应用翻转课堂、MOOC、网络机房,把课程思政生动、准确地融入课堂教学,构建线上线下多元化的立体体系。 参考文献: [1]吕晓艳.浅谈任务教学法在《计算机应用基础》课程中的应用[J].中国新通信,2019,21(3):176. [2]许心瑶.《计算机应用基础》课程的教学研究[J].现代职业教育,2018(5):126. [3]李涛.高校计算机应用基础课程教学中融入思政教育的探讨[J].中国多媒体与网络教学学报(电子版),2019(6):173-174. [4]耿丽娟.“课程思政”在计算机基础课程中的探索[J].通讯世界,2019,26(8):347-348. [5]赵莹.“课程思政”融入高职院校专业课程有效性探讨[J].福建茶叶,2020,42(3):190. [6]潘婷婷.课程思政下计算机专业教学改革研究[J].计算机产品与流通,2020(11):223-224. 作者:赵颖 崔杰 陈鑫 单位:辽宁工业大学电子与信息工程学院
软件硕士毕业论文:关于教育技术学之教育软件工程硕士点建设研究 【论文摘要】本文探讨了我国教育软件工程硕士点的建设现状。文章指出,我国教育软件硕士点处在起步发展阶段,目前面临着数量少、课程体系不健全、培养模式单一等问题。文中分析了我国新时期建立和完善教育软件硕士点的必要性和可行性并提出了今后教育软件硕士点的发展道路和方向。 【论文关键词】教育软件;可行性;课程;实践 一、教育软件工程硕士点发展现状 教育软件工程属于教育技术学硕士点的一个方向,目前在我国的研究生教育中逐渐发展起来。教育技术学一般有以下几个方向:教育技术学基本理论、教育信息化、教育软件工程、知识工程、远程教育或叫网络教育、信息技术与课程整合、数字软件资源、教学系统设计等。截止2010年,我国拥有教育技术学硕士点的学校已经超过60所,但设置了教育软件工程方向的学校并不多,主要为教育信息化、信息技术与课程整合、数字资源、教学系统设计等。有的学校把教育软件工程硕士点没有放在教育学院,而是放在了其它学院。下表是对我国拥有教育软件工程方向的学校进行的统计。 从表1调研结果可以发现我国教育软件工程硕士点分布有以下几个特点: 1.教育软件硕士点的总数还很少我国硕士点中目前设置教育软件方向的高等院校总数还不超过20所。 2.“2ll”、“985”高校开设有教育软件工程硕士方向的很少。从上表可以看出,位列“985”高校的只有清华、中科大两所,位列“2l1”高校也只有清华、中科大、北邮三所。这对培养高层次教育软件人才是非常不利的。“985”、“211”高校有着良好的科研环境,是培养高层次人才,特别是与海外接轨的重要基地和摇篮。 二、开设和完善教育软件工程硕士点的必要性 教育软件硕士点是专门培养教育软件研究和开发高层次人才的,对我国教育水平的提高和教育信息化的发展具有重要的意义。教育信息化的发展包括教育硬件信息化和教育软件信息化两个方面。丰富的教育软件可以调动学生的积极性,提高教学和学习的效率教育软件资源包括各种多媒体课件,各类教育软件、教育资源库等。教育软件包括学科类教育软件和教育管理类软件等。学科类软件包括数学、英语等学科类教育软件。教育管理类软件主要包括教务管理软件、考试系统等校园管理类软件,还有国家管理系统。教育软件从用户角度可以分为课堂教学软件和个人使用软件等。 袁振国在《教育研究方法》中说:“这就注定了班级授课制一开始就种下了教育的一系列祸根:非针对性、去个性化。”教育软件可以实现个性化教学。学生个人可以自由使用教学软件,不断加深对知识的理解和提高学习的效率。例如,学习函数图象的性质,学生可以使用软件例举很多实例,既加深了对函数图象的理解,又开拓了视野。 教学软件的多媒体特性可以充分调动学生的积极性和增加课堂教学的趣味性。目前我国学生普遍对学习缺乏兴趣,教育软件的使用对调动学生的积极性将起到一定的推动作用。通过大量高水平多媒体教育软件的开发和使用,不断提高教学的效果和提高学生的成绩。 教育软件中很重要的一类是教育管理软件。教育管理软件在我国教育管理中扮演了非常重要的角色。教育管理软件在我国学校被广泛应用。教育管理软件对我国教育实现科学化、正规化起到了非常重要的作用。通过开发和使用高水平的教育管理软件系统,不断解决我国目前教育管理涌现出来的问题,不断提高我国教育管理的效率。 但是目前我国软件科学的发展是很落后的,大量的技术都是从美国等先进国家引进的。据调查,我国软件业的发展每年都缺乏大量的软件开发和研究人才。硕博教育是我国培养大量软件开发和研究高层次人才的一个重要手段。 从上述分析来看,教育软件方面高层次人才是需要的,我国需要培养出大量高层次教育软件人才,不断完善教育软件学科的建设是我们面临的紧迫任务。 三、建设教育软件硕士点的时机和可行性研究 1.建设教育软件硕士点的时机 2010年6月21日中共中央政治局通过了《国家中长期教育改革和发展规划纲要(2010-2020年)》。《纲要》中对教育软件资源方面提出了明确的要求: (六十)加强优质教育资源开发与应用。加强网络教学资源体系建设。引进国际优质数字化教学资源。开发网络学习课程。建立数字图书馆和虚拟实验室。建立开放灵活的教育资源公共服务平台,促进优质教育资源普及共享。创新网络教学模式,开展高质量高水平远程学历教育。继续推进农村中小学远程教育,使农村和边远地区师生能够享受优质教育资源。 (六十一)构建国家教育管理信息系统。制定学校基础信息管理要求,加快学校管理信息化进程,促进学校管理标准化、规范化。推进政府教育管理信息化,积累基础资料,掌握总体状况,加强动态监测,提高管理效率。整合各级各类教育管理资源,搭建国家教育管理公共服务平台,为宏观决策提出科学依据,为公众提供公共教育信息,不断提高教育管理现代化水平。 《大纲》的通过,为我们新时期教育软件资源的建设提供了方向和良好的时机。我们可以抓住这个时机,不断推进教育软件工程硕士点的建设。 2,可行性分析 985院校有国家的大力扶持,建设教育软件工程硕士点是可行的。随着通信网络技术的不断发展,软件方面的人才也越来越多,在建设教育软件工程硕士点的人员配置方面也是可行的。 四、教育软件硕士点建设研究 1.数量增加 在未来的十年内,争取在“985”院校中开设有教育软件工程硕士点的学校增加到10所以上。以“985”院校带动其它高校的发展。 2.课程的设置 软件方面国外发展的脚步远远领先中国,所以引入一些国外原版教材是必要的。 我国的教育技术学教育软件工程方向硕士点的发展还处于起步阶段,笔者对国内教育技术学教育软件工程方向课程设置进行了调研,比较有代表性的是清华教育研究院和北京邮电大学网络教育学院的教育技术学教育软件工程方向清华大学和北京邮电大学的软件学科排名处在全国前列。 笔者发现,即使是软件学科在全国处在全国领先的水平,但教育技术学的教育软件工程方向的建设还很不健全。一方面软件方面的课还偏少,另外一方面实践环节安排的太少。 (1)软件方面的课程偏少 笔者对北京邮电大学教育技术学培养方案的调研来看,北京邮电大学软件工程方面的课程包括数据库原理、面向对象的技术与c++编程、软件工程实践、java技术、数据结构。清华大学教育研究院教育技术学还没有相关的专门软件课程。北京师范大学教育学部教育技术学专业硕士点设置了计算机软件与理论专业,软件方面的课程包括教学软件设计与开发一门课。为了提高培养质量,需要增加一些软件方面的其它课程。兰州大学在设置教育软件硕士点的时候开设了很多软件课程包括教育软件基础(1inux)、软件工程导论、vb程序设计、网络系统规划与设计、数据结构与算法分析、java程序设计、软件体系结构、软件项目管理、软件开发过程及配置管理、软件构件与中间件技术、教育软件制作实践等。这样的课程设置相对比较齐全。 (2)实践环节不足 培养高层次教软件人才需要不断增加学生的动手实践训练,增加实践课的时问,不断提高实践课的质量和增强实践课的效果。北京邮电大学教育技术学专业教育软件工程硕士点实践课包括而向对象的技术与c十+编程、软件工程实践。清华大学教育研究院实践课只有一门课社会实践。兰州大学实践课包括教育技术综合实验、教育软件制作实践、信息化教学实践。一方面,很多高校教育软件硕士点实践课的时间短、种类少。另外一方面,实践课不被重视,上课效果根本达不到预期效果。要严格制定实践内容的计划和任务。实践课一般包括程序设计实验、软件文档书写实验、教育软件工具使用等。我国目前实践课的建设还处于初建阶段,需要不断探索实践课的教学规律和教学模式。实践课的学分比例和考核机制需要不断探索。需要不断增加实践课的比重。建立健全实践课的考核机制很重要,有了很好的考核机制,学生实践的动力就会得到增强。 3.实践基地的建设 (1)软件工程实验室的建立 培养教育软件高层次人才,实践是非常重要的一环。对于软件工程来说,建设软件工程实验室是必要的。软件工程实验室可以说是很重要的一个实践基地。 软件工程程实践课程的设计目标是培养学生的团队合作级工程项目研发能力,让学生在团队环境下使用最新的软件开发工具获得较真实的软件开发经验,提高学生存项目规划、队伍组织、工作分配、成员交流等多方面的能力,培养积极向上的合作精神。 软件工程实验室的建设目标是给学生提供~个团队环境,让学生应用最新的软件开发工具获得尽可能真实的团队软件开发经验。在实验项目的安排上尽餐模拟真实世界软件开发开发巾可能遇到的问题,在受控的情况下培养学生对这些问题的解决能力。 我国比较著名的软件工程室有武汉大学软件工程实验室、复旦大学软件工程实验室等。 软件工程实验室的建设一般包括需求分析平台、设计平台(包括概要设计和详细设计)、编程平台、测试平台、计算平台等。所配置的软件一般包括绘图工具microsoftvisio2003,项目管理工具project,ultraedit编辑器,软件配置管理工具cvs,powerdesigner等。 我们要不断建立健全实验室的配置,不断提高实验室的管理水平,不断提高实验室的利用效率。 (2)鼓励学生参与实践项目 鼓励学生和企业共同开发软件项目。鼓励学生参与导师课题。对学生的参与给予一定的报酬和奖励。 4.不断创新培养模式 我们要不断建立健全奖励机制,不断鼓励学生参加各种计算机竞赛和其它大赛,例如计算机程序设计大赛,多媒体课件制作大赛等。鼓励学生开展研究,发表学术论文,参加国际学术会议,不断培养学生的创新能力和开拓学生的视野根据竞赛获奖或者发表的学术论文等科研成果的级别给予不同的奖励,以不断提高学生参与科研的热情。要举办学术论坛,增加学生的交流机会,同时让导师也参与进来。 要不断增加研究生培养经费。我国目前存在着人均研究生的培养经费偏低的问题。导师带的学生偏多也是我国研究生教育目前面临的问题之一。导师带的学生过多会导致对学生个人的培养不足,从而导致培养质量下降等后果。 要不断进行三螺旋理论在软件工程硕士生培养中的应用三螺旋理论在软件工程硕士生培养中的应用主要指的是实现政府、企业、学校三方的密切配合,为培养高质量的研究人才而相互合作,发挥各自优势。 让我们在科学发展观的指引下,不断推动我国的软件学科建设,特别是研究生教育,为我国经济社会的发展做出新的贡献。 软件硕士毕业论文:硕士培养下软件工程论文 软件工程硕士研究生主要由软件工程、计算机科学与技术、计算机相关专业本科毕业生以及具有良好软件工程基础的其他专业学生和具有实际工作经验的在职人员组成。通过硕士研究生阶段的培养,学生知识结构和能力结构得到全面提升与完善,掌握软件工程学科的相关理论和工程技术,具有工程问题求解能力和企业经历,成为服务软件产业的合格软件工程人才。哈尔滨工业大学软件学院(简称“哈工大软件学院”),利用国际化的办学条件和校企合作工业化的办学方式,使学生在一定程度上接受国际化的教学与实践,以达到国际化、工业化人才的要求。 1构建软件工程硕士课程体系框架 哈工大软件学院软件工程硕士的培养目标是培养学生掌握软件工程领域的基础理论、先进技术方法和手段,具备独立承担软件工程技术工作的能力、组织和管理专门技术工作的能力,同时具有较丰富的、与国际接轨的学习训练经历,工程实践经验,企业经历和良好的职业素质;使其树立科学的世界观与方法论,品行优良,身心健康,成为具有国际竞争力的软件产业高级人才,为进一步成为软件产业领军人物(高层技术人才与管理人才等)奠定坚实的基础。面向企业,综合考虑软件系统分析与设计能力、项目管理能力、企业管理能力、组织与沟通能力、团队合作能力等方面的需求,根据学科专业方向的设置,按照“模块化知识体系与能力体系相结合,体现国际化与工业化特色”的原则,我们制订了软件工程硕士课程体系框架结构,如表1所示。软件工程硕士课程体系框架针对培养目标和企业的需求,对能力培养的具体目标进行模块划分,横向构造“6个能力层面”;纵向根据专业方向划分为多个能力域,形成多个能力培养模块。软件工程硕士的专业方向应紧跟行业需求,灵活设置。近几年,哈工大软件学院先后设置了网络与信息安全、语言处理与信息检索、数字化企业与电子商务、嵌入式系统与软件、物联网工程和移动互联等专业方向。在专业要求方面,全日制学生必须修满32学分;在职学生必须修满35学分。软件工程硕士研究生学制2~4年,在校学习1年,修满规定的学分,包括参加企业实训3周;实习基地实习1年,结合企业项目,完成学位论文。企业实习期间实行双导师制,校内导师和实习单位导师分别指导项目开发和学位论文撰写工作。校内学习与企业实训交叉进行,校企合作,产学研结合,联合培养软件工程专业硕士。 2组建专兼职结合的国际化、工业化高水平师资队伍 构建3支师资队伍,每支队伍30人左右。建立以工业型师资为核心的专兼职师资队伍,形成工业型专职教师、校内及国内外兼职教师相结合的师资队伍结构,是实现国际化、工业化培养目标的重要保证。第一支是以工业型师资为主的专职教师队伍。这些专职教师多数来自工业界、国外著名大学或国内外IT企业等。其中除任课教师外,还设若干专职实验教师岗位。实验教师主要负责专业课的实践环节教学,包括实验设计与指导、上机指导、课程设计和毕业设计等实践教学环节,同时实验教师还负责TA(实验辅导教师)的培训及管理工作。第二支队伍由计算机科学与技术学院和管理学院认证并聘请的校内兼职教师组成。他们主要负责软件学院的基础课、计算机专业基础课和管理系列课程的教学任务。第三支队伍由来自国外高校或国内外知名IT企业兼职教师构成。他们来自行业前沿,掌握国内外最先进的软件开发技术和人才培养经验,了解企业最新的技术需求。他们在承担软件学院的软件工程类、软件工具平台类的课程部分教学任务的同时,作为双导师制的企业导师,在研究生的工业实践、毕业设计、学位论文的指导中发挥重要的作用。以工业型专职教师为主、校内兼职基础型教师为辅、国内外兼职教师相结合的师资队伍结构,可以满足软件工程硕士国际化、工业化的人才培养需求。 3校企合作,加强企业实践教学 建立完善的工业型软件人才培养体系,包括工业型人才培养方案、课程体系与教学大纲、质量保证体系、工业化教学方式、技能实验与大作业、综合设计与企业实训、工业实习与学位论文、校企联合实验室与实习基地建设等环节,将“工业化,个性化,精英式”的办学理念贯穿于人才培养的全过程。在校软件工程硕士第1学年寒假要到企业参加为期3周的实训。实训由学院统一带队组织,实行半封闭式管理。期间接受企业培训,在企业导师的指导下分组完成指定的项目。通过强化训练,学生可以了解企业的项目开发流程,学习运用所学理论解决实际问题的方法,发现学习中的不足和技术上的差距,对后续学习起到引导和促进作用。第2学年,学生到实习单位实习并根据实习期间的实践工作内容撰写学位论文。对硕士毕业论文的要求是:具有系统性和完整性,能表明作者具有一定的独立工作能力;理论联系实际,应用所学的理论知识解决实际工作中的关键问题;具有实用性且必须包含一定的工作量。取得的成果要有一定的先进性,要能表现出学生具有综合运用所学知识解决工程实际问题的能力。从2002年至今,哈工大软件学院建立了完善的工业实习管理制度,在国内外建立工业实习基地70余个,实际接收学生实习的企业达200余家。工业实习基地的建设有效保证了工业化人才培养的质量。为加强与企业界的沟通,了解企业需求,完善培养体系,提高学生工业实习质量和加强工业实习管理,学院定期举办“工业化人才培养与企业合作高级研讨会”,与企业界人士研究和探讨工业化人才培养中的合作问题,企业参与意识很高,取得了较好的效果。 4与国外大学合作,联合培养软件工程硕士 通过对软件工程国际化人才特点及成长规律的研究,我们对软件学院国际合作办学模式开展了学科专业、教学体系、合作形态、组织方式、国际文化交流等层面的前瞻性研究,率先提出并建立了特色鲜明的多国联合办学、多学科交叉渗透、多国文化融合的,培养高层次、复合型软件工程人才的国际化联合教育模式。哈工大软件学院与法国波尔多第一大学、法国克莱蒙-费朗第二大学、德国柏林工业大学、爱尔兰都柏林工业大学、爱尔兰国立都柏林大学、美国Embry-Riddle大学、意大利帕维亚大学、瑞典林雪平大学、日本会津大学等合作,采用哈工大软件工程硕士专业学位(MSE)+合作方硕士学位(X)的“MSE+X”模式,联合培养硕士研究生。培养过程共分4个学期。第1学期,学生在各自学校学习;第2学期,外国学生来哈尔滨工业大学,与哈工大学生合班学习;第3学期,中外学生一起去合作方学校学习;第4学期,学生自选在国内、外企业实习、撰写学位论文、答辩毕业,哈工大与国外大学分别颁发硕士学位证书。跨国联合培养班的全部课程采用英语教学,实行三导师制,由国内、国外大学和企业导师共同指导。为加强交流,每年举办一次“中欧软件工业教育国际研讨会”,来自海内外的高校教师、企业界朋友在一起交流经验,共同探讨国际环境下人才培养的相关问题。多国联合培养软件工程硕士实现了国际化与工业化办学理念的教育模式与教学体系的设计与实践,软件工程国际化人才的跨国联合培养模式及实践,面向企业人才需求的教学与工业实习,国际化师资与专家队伍建设,教育质量保障体系建设与管理及跨文化的融合等目标。 5完善质量保障体系,加强过程管理借鉴 欧美教学质量保证的成功经验,哈工大软件学院建立完善且适合自身特点的国际化、工业化人才培养质量保证体系。学院成立教学指导委员会和教学督导委员会,在各个培养环节上严把质量关,把规定、培训、预防、跟踪、反馈、控制等质量保证活动渗透到教学执行过程中的每个环节。加强实践教学环节的监督检查,有效保证教学质量和人才培养质量的稳步提高。为提高软件工程硕士的指导质量,学院成立了若干个指导教师组,每个指导教师组负责一个专业方向的硕士指导,设组长1人,负责本组指导教师的组织和督导。每名硕士研究生指导教师每年指导的硕士研究生不超过4人。学院组织专家组审核学位论文。只有通过了专家组的审核,学生方可申请学位论文答辩。另外,硕士研究生开题、中期检查和结题验收、论文等环节也有详细的规章制度、严格的过程管理,这是提升硕士研究生培养质量的有效手段。 6成果与特色 在软件工程硕士研究生培养的实践中,哈工大软件学院在以下几个方面取得了优异的成绩,形成了自己的特色,积累了丰富的经验。(1)面向软件产业的人才需求,校企合作,形成较为完善的应用型硕士研究生的工业化人才培养体系,开展多种形式的校企合作,建立有自身特色、符合国际化标准、满足软件企业需求的工业化人才培养计划。(2)创立软件工程国际化人才培养模式和教育体系;实现“跨学科融合,双边对等招生,联合培养,融合文化”的“MSE+X”软件工程硕士跨国联合培养模式,为学生提供国际化学习环境。(3)建立与国际接轨的办学机制和教育质量保证体系,实施课程考核累加计分制等教学管理新制度。(4)培养了一大批具有国际竞争力、满足企业需求的高级软件人才。 7结语 经过10余年的探索与实践,哈工大软件学院在广泛开展校企合作和国际交流的基础上建立起较完善的国际化、工业化软件工程硕士研究生培养体系。在培养过程中实施严格的过程管理,学院在软件工程硕士人才培养方面积累了一定经验,取得较好的成果。随着软件工程理论与技术的发展,特别是产业人才需求的变化,软件工程硕士的培养模式与培养体系仍需进一步完善,以适应新的人才培养需求。 作者:黄虎杰 马培军 单位:哈尔滨工业大学软件学院 软件硕士毕业论文:软件工程硕士培养模式与研究 一、一种实用的软件工程全日制工程硕士培养 在软件工程工程硕士培养的诸多问题上,做了一些有益探索与研究,针对性地提出了一套适合于省属高校软件工程全日制工程硕士培养的解决方案,希望能为同类型高校提供人才培养的借鉴。研究生培养方案的制定,重点需要解决课程体系设置、培养流程规划与控制。对专业学位研究生而言,还需要解决专业实践能力的培养与训练这一关键问题。 1.课程体系设置软件工程学科正式确立的两个标志性文件是2004年IEEE推出的软件工程知识体(SWEBOK)和软件工程教育知识体(SEEK)。两个文件内容相近,都包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识[4]。软件工程研究生的培养从原则上说应遵循上述两个文件,围绕上述知识领域进行教学。但由于这两个文件将软件工程的知识体系划分为知识点,各领域之间必然存在重复和交叠。在课程设置上无法照搬上述两个文件。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置被分为五个层次,分别为工程基础课程、计算机基础课程、软件工程核心课程、扩展课程和实践课程,如图1所示。课程开设顺序大体按照五个层次由低到高依次开展。其中,工程基础课程提供软件工程所需数学理论基础、外语能力培养、软件工程文档写作、论文写作基本功训练。计算机基础课程提供软件开发必须的计算机基础知识,如网络、算法和数据库知识。相对于本科课程而言,此类课程讲授内容更深入全面。软件工程核心课程设置了高级软件工程、软件体系结构和软件测试与质量保证三门课程。高级软件工程侧重于软件分析与设计、软件工程过程、软件开发案例分析。软件体系结构侧重于结构风格、案例研究、共享信息系统、结构描述、结构的分析与评估、特定领域的软件体系结构和流行的软件体系结构等。软件测试与质量保证着重于软件质量的改进,讨论如何提高软件质量的方法。扩展课程包含系列领域知识课程,研究生可根据研究方向选择两门;软件开发工具讲授最新流行的软件开发、过程管理所需要的软件工具的使用,以实践教学为主。软件开发新技术研讨课程以讲座形式开展,教师和学生均可作为一个专题的主讲。实践课程包含校内实践、校外实践和毕业设计三个环节。 2.培养流程与实施教育部明文规定,专业学位研究生学制原则上为两年,同时要求应届本科生进行专业实践不少于一年。一般来说,研究生在校课程学习时间应有一年左右,加上专业实践的一年,如何合理安排学习计划,在两年内完成培养环节成了一个现实的重要问题。我校以周为单位制定了四川师范大学软件工程专业学位研究生培养流程,如表1所示:上表规划了研究生培养中的几个关键环节,依次为报到入学、课程学习、校内实践、校外实践、开题、毕业设计、论文写作和送审答辩。第一学期研究生主要是课程学习,同时在校内导师指导下开展文献阅读和编程能力锻炼。第二学期前半学期结束理论课程的学习。后半学期和暑期开展校内实践和毕业设计开题工作。第三学期研究生到实习基地进行校外实践。从第二学期后半段和整个第三学期,学生在专业实践的同时,需完成毕业设计。从第二个寒假开始直到第四学期前六周,研究生完成毕业论文的初稿。从第七周开始,进行论文修改、、盲评和答辩工作。从培养流程表可以看出,这种安排具有两个显著特点。一是理论课程学习安排在一个半学期完成,二是实践课程分为校内实践和校外实践。研究生理论课程学习任务并不重,完全可压缩到一学期半,同时可为实践提供更多时间。校内实践非常有必要。由于是省属高校学生大多能力一般,为保障学生进入企业能融入研发团队从事技术工作,必须先期培训其实践能力。这种安排时间较为紧凑,也比较合理,符合专业学位研究生侧重于实践能力培养的要求,也在两年的学制内确保了研究生的实践时间不少于36周。 二、专业实践能力的培养与训练 软件开发能力是软件工程专业硕士必备的核心能力,其能力培养既是对前端课程学习效果的检验,也是后端毕业设计和就业的必然需要。我校将软件工程专业硕士实践能力培养融入了众多环节。从前期的实验型课程教学,到中期的校内实践、再到后期的校外实践和毕业设计。实验型课程教学解决软件设计开发的基础技能,校内实践解决中小规模软件设计开发能力,校外实践和毕业设计解决中大规模软件设计能力。 1.实验型课程教学包含软件工具的使用训练、软件开发环境的搭建、软件开发案例分析和新技术研讨。软件工具的使用训练学生单个软件开发工具的使用,如项目管理软件Project、开发文档化软件Rational、软件测试工具LOADRUNNER、QTP、TD等。由于这些工具结构分散,还需进行开发环境的搭建训练。开发环境搭建训练内容一为搭建基于微软的VSTS和VisualStudio的开发平台,适合.net方向;内容二位、为搭建基于IBMRSA和Eclipse的开发平台,适合J2EE方向。软件开发案例分析中研究生将自己放在决策者的角度来思考项目所涉及到的具体问题,增强了学生的实际应对能力。新技术研讨促进学生或主动或被动地掌握了一些新兴技术,拓宽了技术领域。 2.校内软件开发实践采用项目驱动形式开展。要求研究生必须申报各类实际的软件开发项目,如四川省苗子工程、学校研究生科研创新项目、学院研究生科研创先项目。研究生可组织本科生参与项目实施,但必须任项目组长,在项目中担任核心角色,完成软件需求文档审定、软件架构设计、软件详细设计、大部分编码工作、测试方案制定等重要工作。 3.校外软件开发实践在上述环节经历后,研究生已经掌握中小规模软件开发的基本技能,此时将研究生派到实习基地,实战参与企业软件开发项目。其实践由校内导师和企业导师共同负责。前期技能的培养已保证研究生胜任企业中一般性的软件开发角色。 4.毕业设计研究生在校内和校外实践的36周中,还需要同时进行毕业设计的开题、实施。研究生可结合企业实习工作完成毕业设计。专业实践的考核分为定期汇报和实践环节结束汇报两种形式。研究生应每隔两个月集中汇报一次实习期工作心得,取得的成绩等。实践结束时在全院公开汇报,其成绩作为实践课程成绩。 三、结论 四川师范大学针对现有的培养模式存在专业定位不清晰、师资不足、课程设置陈旧等问题,根据学校学科特点和力量,实现了一套比较适合于省属高校软件工程专业学位研究生培养的解决方案,包括五个层次的课程设置体系、合理地流程安排和实践教学的环节设置。该方案在学校研究生培养中实行以来,研究生专业实践能力有了较大提高。2011年在四川省苗子工程中获得了一项重点项目和四项一般项目支持。该方案尚有一些不完善之处,例如实践教学环节质量的中间控制、过程控制,尚需进一步建立系列制度和规定,确保实践教学的质量。 作者:李晓宁 袁丁 单位:四川师范大学 软件硕士毕业论文:高校软件工程硕士培育方式研讨 一、省属高校软件工程全日制工程培养模式存在的问题与分析 省属高校的软件工程专业多脱胎于计算机科学与技术学科,在研究生人才培养模式上受限于计算机科学与技术研究生培养模式。部分高校甚至于采用同计算机专业研究生实施无差别培养方式,这一根本性原因带来诸多问题。 1.人才培养方向目标定位不清晰 软件工程专业硕士应当仅限于软件工程师的培养。软件工程具有极强的工科属性,其人才培养,除软件工程科学硕士和计算机科学技术一样,可培 研究型人才外,专业学位应当清晰定位于培养具有软件工程必备基础知识,在软件工程某一领域具有较强专业知识与技能的工程师。 2.师资比较缺乏,尤其是双师型师资缺乏 软件工程正式成为独立的学科时间相对较短,软件工程师资大多来源于计算机科学与技术专业。计算机科学与技术专业可以胜任软件工程基础课程,但这部分教师往往缺乏工程实际经验,在教学中往往表现为重理论轻实践。省属高校十分缺乏来自软件企业一线的项目经理以上的技术管理人员充任实践课程教师。 3.培养模式陈旧,不适应国家教育部要求 由于全日制软件工程专业学位研究生2009年才在全国开展,很多高校沿用学术型学位研究生培养模式,忽视了国家对专业学位研究生培养要求中的专业实践能力的培养,未能很好地开展专业实践教学。 4.课程设置陈旧,不适应软件企业的人才需求 大多数高校软件工程研究生课程设置大多套用计算机科学与技术专业的课程设置,未体现软件工程学科特点。原因主要是因为师资缺乏、招生规模较小,出于节约培养成本的考虑。 二、一种实用的软件工程全日制工程硕士培养解决方案 四川师范大学作为四川省属高校中最早开设计算机科学与技术、软件工程本科生培养的院校之一,在软件工程工程硕士培养的诸多问题上,做了一些有益探索与研究,针对性地提出了一套适合于省属高校软件工程全日制工程硕士培养的解决方案,希望能为同类型高校提供人才培养的借鉴。研究生培养方案的制定,重点需要解决课程体系设置、培养流程规划与控制。对专业学位研究生而言,还需要解决专业实践能力的培养与训练这一关键问题。 1.课程体系设置 软件工程学科正式确立的两个标志性文件是2004年IEEE推出的软件工程知识体(SWEBOK)和软件工程教育知识体(SEEK)。两个文件内容相近,都包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识。软件工程研究生的培养从原则上说应遵循上述两个文件,围绕上述知识领域进行教学。但由于这两个文件将软件工程的知识体系划分为知识点,各领域之间必然存在重复和交叠。在课程设置上无法照搬上述两个文件。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置被分为五个层次,分别为工程基础课程、计算机基础课程、软件工程核心课程、扩展课程和实践课程,如图1所示。课程开设顺序大体按照五个层次由低到高依次开展。其中,工程基础课程提供软件工程所需数学理论基础、外语能力培养、软件工程文档写作、论文写作基本功训练。计算机基础课程提供软件开发必须的计算机基础知识,如网络、算法和数据库知识。 相对于本科课程而言,此类课程讲授内容更深入全面。软件工程核心课程设置了高级软件工程、软件体系结构和软件测试与质量保证三门课程。高级软件工程侧重于软件分析与设计、软件工程过程、软件开发案例分析。软件体系结构侧重于结构风格、案例研究、共享信息系统、结构描述、结构的分析与评估、特定领域的软件体系结构和流行的软件体系结构等。软件测试与质量保证着重于软件质量的改进,讨论如何提高软件质量的方法。扩展课程包含系列领域知识课程,研究生可根据研究方向选择两门;软件开发工具讲授最新流行的软件开发、过程管理所需要的软件工具的使用,以实践教学为主。软件开发新技术研讨课程以讲座形式开展,教师和学生均可作为一个专题的主讲。实践课程包含校内实践、校外实践和毕业设计三个环节。 2.培养流程与实施 教育部明文规定,专业学位研究生学制原则上为两年,同时要求应届本科生进行专业实践不少于一年。一般来说,研究生在校课程学习时间应有一年左右,加上专业实践的一年,如何合理安排学习计划,在两年内完成培养环节成了一个现实的重要问题。我校以周为单位制定了四川师范大学软件工程专业学位研究生培养流程,如表1所示:上表规划了研究生培养中的几个关键环节,依次为报到入学、课程学习、校内实践、校外实践、开题、毕业设计、论文写作和送审答辩。第一学期研究生主要是课程学习,同时在校内导师指导下开展文献阅读和编程能力锻炼。第二学期前半学期结束理论课程的学习。后半学期和暑期开展校内实践和毕业设计开题工作。第三学期研究生到实习基地进行校外实践。从第二学期后半段和整个第三学期,学生在专业实践的同时,需完成毕业设计。从第二个寒假开始直到第四学期前六周,研究生完成毕业论文的初稿。从第七周开始,进行论文修改、、盲评和答辩工作。 从培养流程表可以看出,这种安排具有两个显著特点。一是理论课程学习安排在一个半学期完成,二是实践课程分为校内实践和校外实践。研究生理论课程学习任务并不重,完全可压缩到一学期半,同时可为实践提供更多时间。校内实践非常有必要。由于是省属高校学生大多能力一般,为保障学生进入企业能融入研发团队从事技术工作,必须先期培训其实践能力。这种安排时间较为紧凑,也比较合理,符合专业学位研究生侧重于实践能力培养的要求,也在两年的学制内确保了研究生的实践时间不少于36周。 三、专业实践能力的培养与训练 软件开发能力是软件工程专业硕士必备的核心能力,其能力培养既是对前端课程学习效果的检验,也是后端毕业设计和就业的必然需要。我校将软件工程专业硕士实践能力培养融入了众多环节。从前期的实验型课程教学,到中期的校内实践、再到后期的校外实践和毕业设计。实验型课程教学解决软件设计开发的基础技能,校内实践解决中小规模软件设计开发能力,校外实践和毕业设计解决中大规模软件设计能力。 1.实验型课程教学 包含软件工具的使用训练、软件开发环境的搭建、软件开发案例分析和新技术研讨。软件工具的使用训练学生单个软件开发工具的使用,如项目管理软件Project、开发文档化软件Rational、软件测试工具LOADRUNNER、QTP、TD等。由于这些工具结构分散,还需进行开发环境的搭建训练。开发环境搭建训练内容一为搭建基于微软的VSTS和VisualStudio的开发平台,适合.net方向;内容二位、为搭建基于IBMRSA和Eclipse的开发平台,适合J2EE方向。软件开发案例分析中研究生将自己放在决策者的角度来思考项目所涉及到的具体问题,增强了学生的实际应对能力。新技术研讨促进学生或主动或被动地掌握了一些新兴技术,拓宽了技术领域。 2.校内软件开发实践 采用项目驱动形式开展。要求研究生必须申报各类实际的软件开发项目,如四川省苗子工程、学校研究生科研创新项目、学院研究生科研创先项目。研究生可组织本科生参与项目实施,但必须任项目组长,在项目中担任核心角色,完成软件需求文档审定、软件架构设计、软件详细设计、大部分编码工作、测试方案制定等重要工作。 3.校外软件开发实践 在上述环节经历后,研究生已经掌握中小规模软件开发的基本技能,此时将研究生派到实习基地,实战参与企业软件开发项目。其实践由校内导师和企业导师共同负责。前期技能的培养已保证研究生胜任企业中一般性的软件开发角色。 4.毕业设计 研究生在校内和校外实践的36周中,还需要同时进行毕业设计的开题、实施。研究生可结合企业实习工作完成毕业设计。专业实践的考核分为定期汇报和实践环节结束汇报两种形式。研究生应每隔两个月集中汇报一次实习期工作心得,取得的成绩等。实践结束时在全院公开汇报,其成绩作为实践课程成绩。 四、结论 软件工程专业学位研究生的培养,在学科教育与培养面向市场需求的人才方面有着事实上的矛盾。四川师范大学针对现有的培养模式存在专业定位不清晰、师资不足、课程设置陈旧等问题,根据学校学科特点和力量,实现了一套比较适合于省属高校软件工程专业学位研究生培养的解决方案,包括五个层次的课程设置体系、合理地流程安排和实践教学的环节设置。该方案在学校研究生培养中实行以来,研究生专业实践能力有了较大提高。2011年在四川省苗子工程中获得了一项重点项目和四项一般项目支持。该方案尚有一些不完善之处,例如实践教学环节质量的中间控制、过程控制,尚需进一步建立系列制度和规定,确保实践教学的质量。 作者:李晓宁袁丁单位:四川师范大学 软件硕士毕业论文:软件工程硕士图像处理教程探索 1数字图像处理教学方法设计 针对培养学生应用型研究能力的目标,我们在教学方法设计上本着激发学生的学习兴趣,开阔学生眼界,给学生提供更自由的思考空间的原则,通过下面两个措施来实现我们的目标。 1.1精心选择案例 选择的案例要贴近实际生活,并与课堂上讲授的方法紧密衔接。例如,在讲解图像增强和复原这两章之后,我们引入在实际生活中常见的“图像去雾”问题,通过如下方法,培养学生研究能力。 (1)要求学生先尝试用学过的算法来解决这个问题,并在课堂进行算法讨论,给出算法结果。 (2)要求学生针对具体问题,查阅文献资料,了解别人的解决方法。通过查阅国内外的文献资料,同学们知道了如何根据关键词查询科研论文,了解哪些电子数据库中有与专业相关资料,知道了文献的级别有SCI、EI、核心期刊、一般期刊等。 (3)学生将查到的算法进行分类和总结,撰写文献综述。 (4)每位学生都需要编程实现“图像去雾”算法,这个算法是结合自己的思考、实践以及查阅文献的结果。通过自己动手,同学们发现如果图像的清晰度不好,有噪声,或者没有归一化,结果就完全不同。通过自己动手验证,同学们会发现图像处理领域的一个最为重要的特点——任何算法主要都是针对一类图像或是针对一类问题而设计的,因此在算法的适应性上需要有所考虑。 1.2全面介绍图像处理的各个应用领域 老师在课堂上介绍几个图像处理涉及的较为重要的应用方向(如视频监控、图像检索、人脸识别、运动检测、车牌检测等)后,将同学们进行分组,每组负责查找一个应用方向的相关资料,讨论和汇报自学的结果。汇报内容主要包括:①应用方向的介绍;②涉及的主要问题;③目前的解决方法及应用成果。通过查找文献,同学们不仅对课上学习过的经典算法有进一步了解,同时还接触到很多新算法。通过听取各组汇报,同学们在较短的时间里,了解了图像处理涉及的多个主要的应用领域。针对每个应用研究领域,老师引导学生分析该领域的难点和重点,提出问题,再让学生思考解决方案,没有标准答案,只希望能够锻炼学生的思考能力。以“人脸识别”为例,有很多经典的或较新颖的算法,老师会结合应用领域对其中常用的或比较重要的算法,如PCA方法和Adaboost算法,进行详细讲解,使学生全面了解图像处理算法的应用领域。 2数字图像处理实验内容设计 针对培养学生的应用技术能力的目标,同时考虑到本课程实验学时数较少,我们设计了两个实验——基础性实验和综合性实验。 2.1基础性实验 目前很多经典的图像处理算法是用VC++程序实现的,我们要求大家学会读程序,能够看懂已有的算法实现程序,并在此基础上能开发新的功能。实验一:实现对多种图像格式的支持(2学时)实验内容:采用VC++编码实现,基于CDib类,添加支持打开,并保存多种图像格式的功能,包括JPEG和GIF。实验要求:利用学习的图像压缩的知识,利用现有的编码解码库实现对JPEG和GIF图像的打开和保存。实验目的:了解多种图像格式,编写针对多种图像格式的读写程序,能够进一步理解针对图像的编程的特点,同时也进一步了解开发图像应用程序的适应性问题。 老师在课程初期会向大家介绍图像处理的一个公开库——CDib类。该类很好地封装了图像的数据结构,涉及很多图像的基本操作。我们知道现实生活中的图像常常都是压缩格式的,如BMP、JPEG、PNG、GIF等。因此在讲完图像的压缩格式后,对照讲过的BMP图像结构,老师要求学生为CDib类添加能够支持多种图像格式的功能。以GIF图像为例,它不同于如JPEG、PNG等格式,GIF采用的是LZW压缩算法,使用的是无损压缩技术。GIF图像的特点是可以一次压缩多幅图像,图像颜色表控制为256色,使用渐显方式。 3.2综合性实验 针对综合性实验,我们会拟定多个题目让学生选择,如树叶提取、花朵提取、车牌识别等。实验二:数字号码图像的识别(6学时)实验内容:采用VC++编码实现,基于CDib类,针对数字号码图像,识别出数字,给出文本显示结果。实验要求:将该题目进行分解,划分任务;组内每个同学负责一部分任务的编程工作;每个人针对自己负责的工作至少提供两种实现方法,并放入整个项目流程中验证这两种方法的有效性;最后总结出两种方法的异同以及适应的范围。实验目的:考查学生对数字图像处理应用中每个步骤的掌握程度和项目合作沟通能力。上述实验涉及以下几个步骤。①图像的预处理;②图像的分割;③图像的特征提取;④图像的分类。组中每个学生负责一个步骤,所有步骤都需要尽心设计,这样整体的效果才可能最好。同时大家需要协商各自负责模块的入口和出口的数据结构,保证数据能够在模块之间顺利流转。这种协商和分工合作的能力是软件工程专业最需要的技术能力之一。 以“数字号码图像识别”为例,该题目可以分割成4个步骤:预处理、数字图像切分、数字图像特征提取和数字识别。在每个步骤中都有分别需要注意的问题,如在预处理阶段,需要对图像进行去噪声,增强对比度,甚至需要进行膨胀和腐蚀将图像中断裂的数字部分连通起来;在数字图像切分阶段需要制定适应性广泛的切分策略来应对各种情况,如数字排列可以呈现任意的倾斜角度,或数字字符相连等;在数字图像特征提取阶段,我们可以考察每个数字图像的自相关系数特征,或者每个数字图像的频谱特征,也可以考察数字图像的几何拓扑特征,如将数字图像分成2个洞的(8),1个洞的(4,6,9,0),没有洞的(1,2,3,5,7),针对每个类别再提取新的几何特征;在数字图像识别阶段,可以采用神经网络的分类器,或者利用制定的一些分类策略来分类,或者采用主成份分析(PCA)的方法来识别。 4结语 两年多的教学实践表明,新的教学大纲、授课方法和实验内容有利于激发学生的兴趣,使他们带着问题去学习,从而加深了对图像处理应用领域的了解,锻炼了编写程序和协作开发的能力。下一步我们将设计更多合理有效的案例和综合性实验,力图通过这门课激发学生的创造力。 作者:付慧陈志泊单位:北京林业大学 信息学院 软件硕士毕业论文:软件工程硕士论文质量评价模型及相关问题研究 摘要:本文通过建立一个软件工程硕士论文质量评价与度量模型,提出了明确的论文质量目标和一套切实可行的评价标准,并针对实施过程中可能存在的若干问题,进行了分析和探讨。 关键词:工程硕士;质量评价;质量标准 1存在问题与质量评价度量模型 由于种种原因,论文质量的分析和实际评审工作存在着质量要素空泛、无法真实、直接、客观地度量,最终无法做到实事求是地评价等问题[1][2][3]。例如:有关评估方案中规定的选题要求是:论文选题来自于企业实践,工程背景明确,应用性强。而论文质量标准要求是:技术先进,有一定难度;内容充实,工作量饱满;综合运用基础理论、专业知识与科学方法;格式规范,条理清楚,表达准确;社会评价好等。但现实的论文评审操作则明显存在以下问题: (1) 质量要素的选择过于简单、抽象层次太高。因而难于细致、客观、真实和准确地反映被检查对象的实际情况; (2) 对相关质量要素的度量和评价,缺乏直接、真实、仅根据客观的、标志性的交付物成果、里程碑事件为度量和评价依据的质量要素度量与评价方法,使本已高度抽象化的评价,更带有人为评判的色彩; (3) 所有的度量和评价是定性的,当从定性评价,转化为定量成绩的时候,从定性到定量的转换标准设置,缺少科学性和原理依据。 作者认为,产生上述问题的根本原因有两个。一是标准的制定者受传统学术观点的局限,担心制定详细、确定的评审标准,将限制论文作者的研究和表达,导致“论文八股”的出现。另一个原因,则是标准制定者对工程硕士论文(包括论文阶段的学习、研究过程)应该做什么?应该怎么做?最终的目标应该是什么?怎样才能检验硕士研究生是否达到了的既定目标等很难确切把握。导致本质上对论文质量目标的不明确、不清晰,因而无法制定具体的检查标准。 为了克服上述问题,针对软件工程硕士毕业论文这一特定对象,本研究首先建立如下的论文质量标准与评价度量体系模型: (1) 论文质量的一级属性:论文的分类和性质界定; (2) 论文质量的二级属性:论文必须包括的四个基本构成部分; (3) 论文质量的三级属性:论文基本构成部分的质量度量要素; (4) 论文质量的四级属性:论文质量度量要素的度量方法,包括定性度量转换为定量评价的加权因素设计,即量化成绩。 图1为论文质量标准与评价度量体系的模型。 2对论文性质的界定 为了准确地把握软件工程硕士毕业论文的质量,明确论文质量标准,我们根据软件工程硕士研究生培养目标和专业要求,结合软件学院实际情况,不失一般性地将软件工程硕士研究生毕业论文的类型,界定为软件技术研究与软件工程项目二类。 界定的原则依据是2003年科技部、教育部等五部委《关于改进科学技术评价工作的决定》中,将科学技术评价工作明确分类,区别不同评价对象,明确各类评价目标,采用不同的评价标准,以求能够客观、真实、准确地反映不同评价对象实际情况的原则精神。 界定的基本出发点是区分论文性质,并分别制定相应的评审标准。本研究的重点是软件工程项目类论文。本研究对软件工程项目类论文的定义是: 目标:在企业实习过程中,参与企业软件工程项目,研究并解决特定问题域的问题; 技术与方法:学习、研究、选择、运用,并有所拓展下列(同时)技术与工程知识与方法: 技术知识:计算机软件(或软硬结合、以软件为主,但必须包含软件工程)的最新技术、方法、手段、工具; 工程管理:在软件工程的生命周期模型(不要求特定模型)及软件过程关键环节中,采用软件过程管理、项目管理、配置管理、质量管理(不要求全部)的技术方法; 按软件工程规范,独立完成了一个软件制品研发的完整过程,其结果对相关业务领域内的问题解决,具有一定的意义和价值; 以技术和项目成果、项目实现过程报告的形式,形成的硕士论文。 3对论文内容的要求 根据论文性质的界定定义,工程项目类毕业论文,本质上是一个项目(或项目阶段)的技术与项目报告。因此,论文内容应完整呈现以下四方面的能力: (1) 专业知识:通过项目研究的背景、问题与目标描述,考察学生对所在行业领域业务知识和领域关键问题了解的广度与深度,即考察论文课题的专业水平。 (2) 技术水准:通过项目技术方案分析,考察学生在特定问题下,对解决问题所涉及的技术方法、工具和手段,解决领域关键问题的状态与发展水平的评价与了解。 (3) 实现能力:通过项目关键技术的实现过程,考察学生解决关键技术问题的具体能力和达到的水平。 (4) 过程能力:通过项目过程报告,考察学生以关键技术解决方案的实现为基础、组织实施软件工程项目的过程管理和控制能力。 4质量要素及其度量方法 根据论文内容的四个方面要求,我们设定了四个方面、20个质量度量要素(表1),每个要素各分为6个等级(0~5分),供论文评审时,进行判断评价。表中各要素的分级评价标准见附录。 5量化成绩的加权因素 根据附录的方法,将论文按内容规范要求及质量度量要素,采用定性分析的方法,获得对每个度量要素的评价(加权前得分)。并依据加权方法,将其转化为定量的论文成绩。加权比例指向为:要求论文更侧重于关键技术实现和软件工程过程,兼顾领域与技术背景。 因此,根据专业性质、学生基础学习和实习项目的具体情况,论文四个构成部分的成绩加权因子分别为:10%、20%、30%和40%。加权计算公式是:加权后得分=加权前得分*加权因子*4。 6质量度量实施的若干问题探讨 标准只是一个杠杆,由于论文质量是研究生教育产品的出口质量,因此,最终产品质量的口一收紧,产品生产过程的问题就必然地暴露出来了。 (1) 生源的质量问题 根据对本院(其他院校情况应基本类似)往届新生(含单/双证生)入学前基本状况的考察和分析发现,入学研究生基本上可以划分为三类:计算机及软件相关专业(元教育本专业)应届保研或考入的本科生;元教育非本专业或虽是本专业,但不在相关专业行业企业、基本没有软件开发项目经历(经历非专业)的学生;本专业毕业并一直从事软件开发、具有软件工程项目经验的在职生。根据若干届学生情况的初步统计,在各届学生中,第一类约占40%,第二类占30%~40%,而第三类只占20%左右。随着招生规模的扩大,第二类学生(元教育或经历非专业)的比例有扩大的趋势。 软件工程是计算机技术与工程实践、过程管理相结合的学科。学科特点决定了它与传统计算机科学与技术系在培养方向上的不同。因此,现有的软件工程硕士研究生教育,本质上不适合第一、第二类学生。因为这二类学生没有实际软件项目开发的经验,而学校几乎不可能在研究生学习的一年期间,提供这样的经验和机会。 面对生源的实际情况,不论学生在校课程教育的效果如何,要使前二类学生达到本标准设定的质量目标,是非常困难的。标准和目标的明确化,现实地凸显出软件工程硕士研究生培养,从源头开始的困惑。 本研究成果在招生阶段希望达到的贡献是:在研究生入学考试时,除统一笔试以外的综合能力测试及面试中,对考生基础能力的特别考察和筛选,提供了内容和要求的来源与依据。 软件硕士毕业论文:软件学院软件工程硕士开放式教学体系研究 摘要:本文针对我国软件学院专业教学所面临的挑战,在充分调研IEEE SWEBOK和CC2004SE知识体系的基础上,针对我国软件学院目前的实际情况重新划分软件工程知识体系,提出了软件工程硕士开放式教学体系的建设方案。围绕专业培养目标,结合学生的工程实践,引入课程组的概念,制定了一套较为完整的开放式实践教学实施计划。 关键词:工程硕士;开放式教学;课程组 1引言 软件学院软件工程硕士的培养目标是培养高层次、应用型人才,针对这个目标,其教学实施应着重体现出以下两个差异性: (1) 软件工程学科领域和计算机学科领域间专业设置的差异性,这个差异应能够很好地体现培养应用型人才的目的; (2) 工程硕士课程和软件学院本科课程的差异性,这个差异应能够很好地体现培养高层次人才的目的。 目前国内软件学院软件工程学科和传统的计算机科学学科在课程设置上差异还不显著,工程硕士的培养方案中甚至部分课程只是本科阶段的重复。虽然大都开始强调学生的软件项目实践,但普遍缺乏过程管理。本文在对IEEE的软件工程知识体系进行深入学习的基础上,针对软件学院软件工程硕士提出了实现开放式教学体系的教学改革方案。 2软件工程知识体系 2004版SWEBOK将整个软件工程知识体系分为11个知识领域(Knowledge Area,KA),其中前5个知识领域是按软件开发的生命期诸阶段排列的,即软件需求、软件设计、软件构造、软件测试和软件维护;后6个知识领域是软件开发中的支撑性或者辅助性的方面,可能覆盖软件开发的多个阶段,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量、相关学科知识领域。这些知识领域SWEBOK并没有重新系统规定,而是直接套用已经成型的各领域知识体系,因此不可避免地存在重叠和不匹配。 在SWEBOK的基础上,IEEE与ACM又共同拟定了CCSE。其中的核心部分是软件工程教育知识(SEEK)。SEEK由十个知识领域组成,包括:计算机基础(CMP)、数学和工程学基础(FND)、职业实践(PRF)、软件建模与分析(MAA)、软件设计(DES)、软件验证(VAV)、软件演化(EVL)、软件过程(PRO)、软件质量(QUA)、软件管理(MGT)。 可以看出,SEEK和SWEBOK基本内容是相近的。总的来说,二者都是包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识。 3高等教育教学改革研究状况 目前国内关于高等教育教学改革的论文很多,如翁敬农、刘云等在软件学院实践教学体系的内容与规划中提出了“一个目标”、“两种途径”、“三大环节”、以及“四级台阶”的具体步骤。王移芝、林艳琴提出基于“两段教学”的计算机基础课程的教学体系框架。谢芳清、闫大顺提出了以素质教育为目标的实践教学体系。王浩、胡学钢等提出计算机科学与技术专业实践教学体系的总体研究与建设。王志英以国家实验教学示范中心为例,提出实践是综合能力培养的基础,并以此构建计算机科学与技术专业实践教学体系。董玮、邱建华等以专业课“程序设计基础(C语言)”为例给出了建设实践教学体系的实践探索。然而目前还没有检索到专门研究软件学院工程硕士教学改革的论文。无论是从传统计算机科学与技术专业与软件学院软件工程专业的区别,还是本科生与研究生的区别来看,针对软件学院工程硕士的教学改革研究都是十分有必要的,同时也是迫切的。 4工程硕士的课程体系设计策略 我们以IEEE SWEBOK和CC2004SE的知识体系为主体,结合中国软件产业以及本院的具体实际情况,设计了中国科学技术大学软件学院软件工程专业的知识体系,作为我院工程硕士课程设置和教学计划实施的依据。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置可以分为三个层次,即导论性课程、软件工程核心课程和其他课程。如图1所示,该知识体系定义了7个知识体系子类。计算机基础和数学和工程学基础属于导论性课程、其他课程包含了职业实践、领域课程、软件工具、工程实践等四个子类。 其中计算机基础定义了软件工程作为计算学科所必需包含的计算科学基础以支持软件产品的设计与建设;数学与工程学基础提供了软件产品获得所需属性的理论和科学基础;职业实践则聚焦于软件工程师以职业行为从事软件工程实践所必需具备的知识、技能和态度;软件工程核心课程应该包含软件开发生命周期所涉及到的主要知识领域;领域课程包含了对于某个特定领域软件工程师应该接受的特定教育或经验;软件工具定义了从事软件工作所必需掌握的当前主流工具与软件产品等;工程实践则是学生使用所学到的知识从事实际开发活动,提供动手能力的重要环节。 对于工程硕士来说,大部分同学经过计算机本科专业的学习,已经具备了初步的计算机基础以及数学与工程学基础,因此目前其课程体系建设如图2所示,重点是完成软件工程核心课程教学,并结合IT界的最新技术趋势设计相关领域课程。教学改革的核心是如何设计软件工程的核心课程,并指导学生熟练掌握相应的软件工具,强化他们的实践动手能力。 5工程硕士开放式教学体系建设 对于如何设计软件工程的核心课程,我们的主要思路是打破原先各子知识体系间的界线,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,实现一个完整的开放式教学体系。如图3所示,整个开放式学习体系包含三个部分: (1) 设计课程组:在理论环节采用课程组的概念,集中讲授较高层次的、符合硕士生水平的软件工程的某些重要环节; (2) 开设实践教学环节:在实践教学中采用做中学(Learning by Doing或LBD)理念,由指导教师讲述软件工具的具体操作过程,同学实际动手学习; (3) 强化工程实践:在工程实践中由学生自主选题,并将LBD中讲述的工具在项目整个生命周期中贯穿使用。 5.1设计 课程组 目前我院开设的高级软件工程和本科的软件工程课程内容并没有太大差别,对于软件工程的各个环节面面俱到,但又都比较浅显,对于工程硕士的培养显然是不合适的。因此我们设计了软件工程课程组的理念,初步设计了以下课程: (1)“软件开发管理”(Managing Software Development) (2)“软件系统架构”(Architectures for Software Systems) 第一门课程主要针对以后立志从事软件工程管理方向的同学,课程针对IT项目集中阐述如何实现风险、资金、工期等各方面的管理;第二门课程主要针对以后立志从事软件高级开发方向的同学,课程主要讲述复杂软件系统架构层上的设计,介绍目前通用的软件系统结构、设计技术以及实现这些结构的模型、表述方法等。这两门课程对于软件工程硕士应该至少必修一门。除了这两门课程,其他软件工程类的课程包括了设计模式、软件测试、语言类课程如J2EE、.NET等等,学生可根据自己的实际情况进行选修。 5.2开设实践教学 针对该课程组,我们开设了实践教学环节,采用做中学理念,由指导教师(可以由助教担任)根据事先确定的主题,选用具体工具讲述如何使用该工具完成项目开发的某具体环节,工具涵盖了项目管理、架构设计文档化以及测试等软件项目开发的主要方面。 对于软件工具的选择,有两种思路。一种方法是对软件工程的不同环节分别选择不同工具,例如项目管理选Project、开发文档化选Rational、测试再选别的工具这样来做,但结构分散,不利于整体化考虑。另一种是采用套件,完成项目开发全程的所有操作,目前我们选择了两种套件,一是微软的VSTS,该套件和微软的Visual Studio开发平台绑定,适合学习.net开发框架的同学;另一种是IBM的RSA,该套件和Eclipse开发平台绑定,适合选择开源J2EE开发框架的同学。 5.3强化工程实践 大多数的软件学院目前都开设了专门的工程实践环节,但实际的效果并不尽如人意。因此我们将工程实践环节也纳入到开放式学习体系中,以前面所说的理论以及实践教学环节来指导学生更好地高质量完成整个工程实践。 从教学方法上,工程实践应尽可能地贴近现实项目,除了常见的软件工程文档,我们还要求学生提交过程管理类文档(软件开发合同、会议记录、工作日程记录、合同执行报告:财务报告和开发过程报告、个人总结、小组总结等)。 从技术上,学生可以自由选题,也可参考工程实践题库中的选题。选题涉及所有领域课程包含的内容。要求学生必须采用实践教学环节中介绍的工具全程介入项目开发的各个阶段。学院设立专门的工程实践网站提供学生选题及交流,以及指导教师的监督。 从教学形式上,则注重如何实现应用型软件人才的核心能力分析与培养,要求学生运用职业实践子知识体系中的相应内容,锻炼学生的口头表达能力、书面表达能力等。通过学生的开题演讲、采用各种工具完成相应的项目文档、结题答辩等环节来实现学生职业素质的培养。 从实践效果评价上,我们制定了一系列的成绩考核方法、管理考核信息、分析考核结果、评价教学质量等措施,实现完整的考核体系。 6结论 软件工程专业学生的培养,在学科教育与培养面向市场需求的人才方面有着事实上的矛盾。软件学院现有的实践教学体系存在着专业课程设置定位不准确、课程实验师资不足、实验教学内容质量不高、实验指导和管理落后等问题。根据软件工程专业教学所面临的挑战,在充分调研IEEE SWEBOK和CC2004SE知识体系的基础上,针对软件学院的工程硕士,我们提出了软件工程硕士开放式教学体系的建设,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,制定了一套较为完整的开放式实践教学实施计划。 软件硕士毕业论文:软件工程硕士“现代物流”课程的创新设计与教学实践 摘要:本文详细介绍了易新科技有限公司与浙江大学软件学院所开设的“现代物流”课程的定位、课程设计以及教学实践等内容。该课程致力于将学生培养成了解物流行业发展、理解物流操作、认识物流管理、掌握物流信息技术的高端应用型人才。 关键词:软件工程硕士;现代物流;课程设计;教学实践 1前言 软件工程硕士是国家教育部根据中国社会主义市场经济建设特定的需要,培养具有软件设计、开发能力并同时具有深入行业应用知识的人才而设置的培养体系。现代物流业是国内近阶段全面、快速发展的一个行业。其发展的动力一方面得益于全球化给中国带来的大量的产品制造机会,以及随之而产生的物流服务需求。另一方面得益于信息技术在物流业的深入应用。信息技术的应用使得以运输为中心的传统物流操作转变为以国际互联网、电子商务等技术为核心的现代物流服务。随着物流业对信息技术的日益依赖,以及中国市场上对物流人才的日益需求,使得软件学院开设现代物流方向的工程硕士顺理成章。 浙江大学软件学院作为国家重点支持的一所示范性软件学院,一直在了解并把握行业应用方向上积极地思考、谨慎地行动,以求建立高起点、面向高端、面向国际化的工程硕士专业方向。在决定开办现代物流方向后,经过对香港大学属下全资子公司易新科技有限公司(E-Business Solutions Limited, 简称EBSL;其之前名称为ETI Consulting Limited,简称ETIC)的全面了解、深入考察,决定由EBSL全面负责现代物流课程的设计、教学、以及实习指导。 EBSL是面向香港、珠三角进行物流与供应链管理、无线应用技术、应用平台集成与开发等方面的高科技开发公司。相对于国内或全球其他地方而言,香港在现代物流业方面长期以来有着强大的IT技术应用优势及产业竞争优势。EBSL以其众多的、扎实的行业应用知识及经验提供优质的技术解决方案,在香港与珠三角地区有众多的客户以及树立了良好的口碑。 2课程设计 2.1课程设计理念 当EBSL同浙江大学软件学院联合起来开设现代物流课程的时候,双方很快就确定了如下课程设计理念: (1) 课程的应用导向。除了满足软件工程硕士本身对行业知识的应用导向要求之外,在设计课程时,要尽量分享EBSL一直以来在香港及珠三角物流行业应用方面的实践经验。 (2) 课程的国际化。香港的物流应用技术水平虽然已经很高,但为了让学生充分了解物流业的最新趋势,仍需要跟踪、分析、整理国外发达国家在物流方面的最新应用技术。 (3) 课程的差异化。目前国内已经有很多大学开设了现代物流相关方面的课程以及出版了相关的教材。基于高起点的合作初衷,在设计课程时要突出差异性,让学生可以从不同的角度、不同的体系、不同的风格去学习相关的知识。 (4) 课程的多层次化。由于软件工程硕士的学生有的是脱产学习,有的是在职学习,有的本科学习背景是计算机相关专业,有的本科学习背景是管理或其他非计算机专业。因此在课程设计上要考虑到不同学生的背景、知识面、及时间可得性。 (5) 体系的完整性。现代物流业涉及的知识面非常广泛,要在内容取舍上做到点面结合。对不能深入介绍的内容,要向学生展示出一副完整的体系架构,以便学生对自己已学习的知识、待学习的知识有清楚的了解。 (6) 内容的启发性。硕士教育已经是远超越牵引式的教育阶段。在课程内容或课后作业上,要给学生留下更多思考的空间,启发学生继续对某一方面知识的深入探索。 2.2课程设计过程 基于以上双方达成的课程设计理念,EBSL调动了众多的资深行业专家、专业研究人员、以及应用开发人员一起进行课程设计。其间,经历了向两个方向的探讨,设计了两种待选方案。 第一种方案是考虑到学生的学习背景而设计的五门循序渐进的核心课程,分别为现代物流基础(Basic)、现代物流操作与管理(Operations Management)、现代物流信息系统(IT Systems)、现代物流新兴技术(Emerging Technologies)、以及现代物流系列讲座(Lecture Series)。如图1所示,左边是五门课程的层次结构,右边所示为其中一门“物流操作与管理”课程所覆盖的内容。 该五门核心课程并非完全分割,而是都涉及到行业知识(Domain Knowledge)、产业分支(Industries)、处理流程(Processes)、操作(Operation)、信息技术系统(IT Systems)、信息技术开发(IT Development)、管理(Management)、及发展趋势(Trends)共8个维度。但每一门课的侧重点有所不同,它们之间可以达到前后照应、重点突出,如图2所示。 第二种方案是抓住“现代”这个关键词,以从传统物流向现代物流发展为主线,从多角度阐释“为什么是现代物流”,“什么是现代物流”。“为什么需要现代物流”等问题。相关课程的结构如图3所示。 如图3表明,我们主要是产业发展(Industrial Development)、操作(Operation)、管理(Management)、信息技术应用(IT Enablement)、服务区域与时限(Service Range Time)、安全(Security)、环境友好(Environmental Friendliness)等角度来阐释现代物流的发展、演变、特点、并以此为主线来讲授相关的应用知识。 经过多次的讨论,最后确定以第二种方案进行进一步的课程内容设计,因为该方案更符合预先确定的课程理念,特别是在课程的差异性、灵活性、体系完整性、及启发性方面。 2.3课程设计结果 在确定课程结构后,经过多方面的资料收集与整理、分析与比较,最后设计出针对一个半年学期的四次共十六个学时的课程。 第一次课程主要是从产业发展的角度介绍现代物流,其中包括三个大的方面:现代物流的发展历程、现代物流的模式、我国现代物流的现状。其中现代物流的发展历程包括美国、日本、中国三个国家的现代物流的发展历程。因为在其发展历程上,三个国家间是有传递关系的。现代物流的模式方面介绍了物流园区、配送中心、物流外包、第三方物流、第四方物流、现代集装箱港口、保税物流、全球速递、绿色物流等内容。有关我国现代物流的现状方面,从多方面进行了比较,包括产业横向比较、物流成本比较、物流从业人员比较,以及现代物流业与其他产业的关联性及相互促进的发展趋势。第二次课程主要是从操作的角度介绍现代物流。其中介绍了四种主要运输方式(公路运输、铁路运输、水路运输、航空运输)在其运输、仓储、搬运与装卸、流通加工阶段所涉及的设备、工具、流程、单据或文件。第三次课程主要从管理的角度介绍现代物流,其涉及的内容包括作业(生产)管理、营销管理、人力资源管理、成本与收入管理、质量管理、风险管理、客户与合作伙伴管理、资产管理、并最后汇集到信息管理。该方面的内容与前一次课的物流操作配对起来,进行有点有面地介绍。第四次课主要是从信息技术应用的角度来介绍现代物流,其讲解思路是以信息的加工处理过程为主线,介绍同现代物流有紧密应用的技术。所涉及的内容包括信息获取与录入(条码、RFID、GPS、中间件)、信息编码与存储(UPC、GTIN、EPC)、信息处理与分析(数据仓库、OLAP、数据挖掘、空间数据分析)、信息的呈现与可视化(GIS、仿真系统)、信息交换与共享(EDI、ebXML、BPEL、EPCIS)、信息传递与(GSM、3G、SMS、GPRS、WAP)、信息系统架构(SOA、EDA、Cloud Computing、SaaS),以及一些具体的物流信息系统。 3教学实践 按照既定的教学时间安排,我们在浙江大学2008冬季及2009春季学期,平均每个月给学生授课一次。在教学实践中,除了充分体现课程设计时所确定的应用导向、国际化、差异化、完整性、多层次化、启发性等课程理念外,还注意了如下的教学细节。 3.1时事性 如在第一次课讲授现代物流的模式的时侯,宁波刚好举行了“宁波―舟山港2008年第1000万集装箱”的庆祝仪式。对宁波―舟山港而言,突破1000万TEU集装箱吞吐量是一个重要的时刻,属于宁波广为传播的一件大事。在课程中,我们把该事件与现代集装箱码头的发展、中国集装箱码头的壮大等内容结合起来,让学生们基于身边所发生的事情产生热烈的讨论,以留下真实而深刻的印象。又比如在讲授现代物流的风险管理的时候,刚好在亚丁湾发生多起索马尼海盗劫持商船的行为。课程中就把预防海盗的劫持,作为一个现实的问题,又重新归纳为一个海运重点关注的风险,虽然它曾经是17、18世纪航海界的灾难性问题。 3.2趣味性 如对公路、铁路、水路、空运等运输方式所涉及的运输、仓储、装卸与搬运、流通加工等过程,并没有枯燥地一个一个介绍,而是设计了一个虚拟事件:2009年NBA全明星赛将在菲尼克斯太阳队所在的凤凰城举行。为满足球迷对全明星球衣的热爱,组织者1月份向中国广东某工厂订购了5万件全明星赛球衣。基于这样一个虚拟事件,再设计了一些虚拟的球衣产前及产后物流流程:(1)服装加工厂从湖北省采购球衣所需布匹,通过公路运输运往武汉某货运站;(2)通过铁路运输,布匹由武汉某货运站运到广东某仓库进行仓储;(3)球衣完成加工后,球衣装进集装箱,准备出口到美国;(4)集装箱由货柜车运到深圳,在深圳出口通关;(5)从深圳通关后,运到香港集装箱码头;(6)在香港集装箱码头装船,通过海运运往美国三藩市的配送中心;(7)在三藩市的配送中心完成分拣、包装后,通过飞机空运到凤凰城机场;(8)从凤凰城机场通过快递服务运送到各球衣销售门店。基于这样一系列虚拟任务,在引导学生一步一步完成球衣交付的同时,把其中所涉及公路运输、货运站、铁路运输、仓储、集装箱运输、出口通关、集装箱码头、海运、配送中心、空运、快递服务等知识全部融入其中。 3.3团队协作 比如,在介绍完前面所提到的NBA球衣交付的虚拟流程后,给学生留下一个课后作业,要求5~6个人自由组合成一个小组,查阅相关的数据或作出合理的假设,来计算虚拟场景中球衣物流的整个时间与成本。该时间或成本没有预设标准答案,学生可以重新设计路线,走不同的港口或航线,作出不同的假设。目的是要求学生去深入考虑其中的环节(运输里程与时速、装卸时间、交接时间、报关环节时间、航班与船期、意外情况等)并收集相关的参考数据作为支撑材料,来对其结果进行辩述。 4结论 通过教学实践证明,易新科技有限公司与浙江大学软件学院这种跨区域的、高起点、高定位的校企合作模式是非常成功的。课程从设计开始就遵循了应用导向、国际化、差异化、多层次化、完整性、启发性的理念。在设计过程中经过了深入的调研、比较、论证,设计出合理的课程体系。在教学过程中,注意了教学的时事性、趣味性、灵活性,以及对学生的团队工作能力的培养。该课程吸引了广大学生的兴趣,众多相关专业的学生选修了该课程。课堂的最高听课学生人数达到200多人。在教学完成后,学生普遍反映收获良多、知识面扩展很大。对毕业后成为一个了解物流行业发展、理解物流操作、认识物流管理、掌握物流信息技术的高端人才有了足够的信心。 软件硕士毕业论文:从实战中培养工程硕士开发大型软件项目的能力 摘要:专业学位(professional degree),是相对于学术性学位(academic degree)而言的学位类型,其目的是培养具有扎实理论基础,并适应特定行业或职业实际工作需要的应用型高层次专门人才。如何到达这个目标,我们在培养计算机工程硕士的这一年多时间里,通过与美国的IT业公司和大学的合作,让工程硕士参与到软件中介发标的项目中,从中接触一些大型软件项目的开发,了解大型软件项目的开发流程,从实战中提高软件开发能力。文章介绍了这一过程,并进行经验总结。 关键词:专业学位;软件开发;客户需求;软件构架;代码质量 专业学位与学术性学位在培养规格上各有侧重,在培养目标上有明显差异。专业学位以专业实践为导向,重视实践和应用,培养在专业和专门技术上受到正规的、高水平训练的高层次人才,授予学位的标准要反映该专业领域的特点和对高层次人才在专门技术工作能力和学术能力上的要求。专业学位教育的突出特点是学术性与职业性紧密结合,获得专业学位的人,主要不是从事学术研究,而是从事具有明显的职业背景的工作。 我院从2009年开始招收计算机工程硕士,以培养能够从事软件开发的应用型人才。软件工程相关知识是各个公司在开发大型商业软件项目当中总结出来的,具有很强的实践性。如果单独通过课本的讲授,工程硕士难以获得深刻的印象,而且难以达到教学目的。因此,必须让工程硕士接触到真正的商业软件项目,并且参与到软件开发的各个过程,让他们更加深刻地体会课程中讲授的知识点,提高其软件开发能力。 为了达到这个目标,我们在开始培养计算机工程硕士的这一年多时间里,通过与TRILOGY/GDEV合作,让工程硕士参与到当前主流大型商业软件的开发过程当中,从而更好地掌握软件工程课程教授的知识,并且了解当今软件开发中应用的主流技术和开发模式,从实战中提高软件开发能力。 1背景介绍 成立于1989年的Trilogy公司,总部位于德州奥斯丁,在印度和中国均设有分支机构。Trilogy公司在全球拥有600多名业内精英和超过500项的专利技术,有着 17年与世界500强企业成功合作并获利的经验,曾被福布斯、财富、商业周刊、哈佛商业评论等著名商业杂志誉为高度创新和高瞻远瞩的公司。 Trilogy 公司当前专注于数据挖掘和用户体验相关的业务,倡导新型的商业服务和技术支持,为客户提供完全的商业价值保障。其主要客户包括:Ford Motor,General Electric Healthcare,Daimler-Chrysler,Nissan,Goodyear Tire Rubber,Prudential,Travelers Insurance,Gateway,IBM等公司。 至2006年止,Trilogy 公司已为汽车、保险、消费电子等行业提供多个商业服务项目,如:FordDirect. com,Goodyear,TTG,,Prelaunch,Gateway,TIS等。我们通过网上投标,参与这些项目的开发。 项目开发的过程主要包括:下载PIP(Product Info Page)和RFP(Request For Proposal)文档、虚拟机(以及SVN代码)和程序文档。PIP是一个网页,是项目的需求;RFP文档是关于项目使用的技术概述;虚拟机是模仿对方开发环境的平台;程序文档放在网站上一个固定位置,如Bundle Location。发标的公司会提出: “Deliverables”:是最终需要提交的东西,一项都不能少,否则算失败。 “Acceptance Criteria”:对方接收的标准,符合标准的就算通过。 “Deadline”:提交时间,超过这个时间即为失败。 项目提交后,如果判为失败,开发者还可以申诉(Rebut)。 2项目开发的收获 通过参与这些项目的开发,工程硕士主要在以下几个方面有所提高。 2.1锻炼工程硕士与客户沟通的能力 客户的需求是基于其公司的商业逻辑,如何准确无误地获得客户的需求,并且从软件开发的角度将需求进行规范化,这是软件开发中必须解决的首要问题。 由于是跟美国IT业公司进行合作,所以该案例采用的交流方式是线上交流,而非传统的面对面交流。线上交流的主要方式是使用美国公司提供的Issue tracking system,完全是通过英文交流。长期的网上交流,锻炼工程硕士的英语交流能力和业务逻辑的理解能力。 2.2学习当前主流技术 在项目开发过程中,工程硕士能够接触到当前IT业主要使用的各种技术。同时,结合项目地学习可以让工程硕士更好地了解这些技术应用的场景、目的以及作用。下面列举项目中用到的一些技术。 1) 编程语言:主要采用Java,便于上手,以免工程硕士花太多时间在学习语言上。 2) 构建工具:Ant是一种基于Java的build工具,用于自动化调用程序完成项目的编译、打包、测试等。脚本格式基于XML,便于维护,而且基于Java的,具有平台无关的特点。 3) 虚拟机:要求配置模拟各种平台的虚拟机环境。 4) 数据库:采用Oracle、DB2、PostgreSQL和SQL Server,均是当前主流数据库管理软件。 5) 数据库查询语言:SQL以及OQL。其中项目中主要使用OQL即对象查询语句,使用OQL有利于软件开发过程中的效率和规范化。 6) 测试工具:JUnit,Selenium。JUnit是由Erich Gamma和Kent Beck编写的一个回归测试框架,广泛应用于单元测试当中。Selenium是一个用于Web应用程序测试的工具,通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用程序,能够支持不同的浏览器,以及能够使用各种编程语言编写,广泛应用于UI测试当中。 7) XML技术:XML是一种平台无关的表示数据的方法。使用 XML 创建的数据可以被任何应用程序在任何平台上读取。甚至可以通过手动编码来编辑和创建 XML 文档。XML在网络应用和信息共享上方便、高效,可扩展。所以,可以XML作为一种先进的数据处理方法,使网络跨越到一个新的境界。在本项目中,XML主要用于书写配置文件。 2.3熟悉软件构架 众所周知,软件架构是一个软件先进性集中体现的地方。通过外包软件的开发,能够了解软件项目的架构,分析软件中应用的各种框架,理解应用的设计模式。下边是Java EE项目中常用的一些开源的框架。 1) Hibernate是一种Java语言下的对象关系映射解决方案。它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate也是目前Java开发中最为流行的数据库持久层框架。它的设计目标是将软件开发人员从大量相同的与数据持久层相关的编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。 2) Spring是一个开源框架[1-2],它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring通过一种称作控制反转(IoC)的技术促进了松耦合。Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计和事务管理)进行内聚性的开发。应用对象只完成业务逻辑,并不负责其他的系统级关注点,例如,日志或事务支持[3-4]。 3) Struts有一组相互协作的类、Serlvet以及JSP TagLib组成[5]。基于Struts构架的Web应用程序基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。我们参与的软件外包项目很容易理解为什么Struts是一个Web软件开发框架,而不仅仅是一些标记库的组合,理解理解Struts的控制器(Controller),模型层(Model)和视图层(View)。体会在模型层,Struts可以很容易地与数据访问技术相结合,包括EJB、JDBC和Object Relation Bridge;在视图层,Struts能够与JSP、Velocity Templates、XSL等表示层组件相结合。 项目中还有一些独有的框架,由于细节繁琐,不便介绍。接触这些框架,可以获得宝贵的软件开发经验。 2.4提高书写代码的质量 在真实项目的驱动下,工程硕士通过自己阅读项目中的优质源码,以及在经验丰富的开发人员的帮助下,形成良好的编码风格,提高代码质量。 一个简单的例子是,工程硕士在参与项目之前,代码质量相当低,主要体现在:代码效率低下,缺乏注释信息,代码不具有扩张性,代码潜在bug多等。而对方真实的项目的代码中包含大量注释信息,以及一些必须的日志信息,具有良好的编码风格。在查找这些代码的bug或提升其功能过程中,一定会接受对方良好的开发风格熏陶。 3结语 总而言之,通过软件外包项目的开发,能够极大地提高工程硕士的学习兴趣以及效率。其具备的主要优点如下: 1) 该案例是基于真实的大型商业项目,是当前主流技术的集中体现; 2) 工程硕士可以接触到软件开发过程中的各个阶段,有利于工程硕士把握软件开发流程; 3) 工程硕士可以通过阅读优质源码以及和有经验的开发人员交流来提高软件开发能力,以及通过与客户交流来提高提炼需求的能力; 4) 外包软件开发实践性很强,工程硕士能够很好地补充课本的不足; 5) 从外包软件开发中,工程硕士能够获得很好收益,激发学习热情。 我们认为,让工程硕士参与软件开发实战,积极推进了硕士研究生培养模式的改革,加强了应用型高层次人才的培养,促进了人才培养与社会需求的有效衔接。 软件硕士毕业论文:服务地方产业发展需求的软件工程硕士培养模式研究 摘要:浙江大学软件学院紧跟产业和技术发展,坚持市校合作高起点办学,依托浙江大学的学科、师资等资源优势,创新名城名校的办学机制,探索与市场需求接轨服务地方经济发展的产学研相结合的软件实用高级人才培养模式,在理论教学、技能培训和工程实践相结合的教学模式上实现创新和突破。 关键词:服务地方产业发展;软件工程硕士;培养模式 当前,宁波正面临着重组产业要素、转变发展方式、实现科学发展的严峻挑战。宁波各级政府正在狠抓机遇,迎难而上,采取有力措施,促进工业调整转型,加快现代服务业发展。从2009年起,宁波全面实施了服务业跨越式发展行动纲要,推进服务业功能区和产业基地建设,大力发展以传统制造业转型升级为标志的生产性服务业,大力发展以新一代信息技术支撑应用为标志的新兴服务业。宁波的家电、服装产业入选了省首批块状经济转型升级示范区试点,工业企业二、三产分离发展加速,全国性物流节点城市建设正在积极推进,第四方物流市场平台投入运行,栎社保税物流中心封关运作,梅山保税港区的封关运行的前期准备完成,特别是2010年9月宁波智慧城市建设正式启动[1],等等,所有这些都说明宁波经济社会发展对高层次人才需求提出了新的要求,面向产业发展、服务地方经济成为高等院校人才培养的重要课题。浙江大学软件学院在宁波的办学是浙江大学与宁波市科教战略合作的重要成果,学院以市场需求为导向,以“Computer+X”和“X+Info”复合型人才培养理念,致力于培养高层次的应用型、复合型、国际化的软件工程技术和软件工程管理人才。针对宁波产业发展特色和区域社会经济统筹的需要,学院有选择性地开设高层次软件工程人才需求急需的专业方向,小批量规模化地培养软件工程硕士。本文以与IBM合作创建的软件服务工程专业方向的培养模式为例,阐述专业课程的设置和课程教学方式与产业发展和应用紧密相连,使学生不仅学习专业理论知识,并且了解产业发展趋势,掌握工程化开发方法和技能,直接为地方产业发展服务。 一、培养模式与方法 1.强大的产业界合作伙伴。选择具有国际或国内一流水平的产业界办学合作单位是实现高水平人才培养的重要环节。IBM公司不仅是全球最优秀的IT企业,而且最近几年已经成功地转型为服务型公司。IBM的各类信息系统已成为中国金融、电信、冶金、石化、交通、商品流通、政府和教育等许多重要业务领域中最可靠的信息技术平台,IBM的客户遍及中国经济社会的各个方面。同时,IBM作为全球IT服务的倡导者,具有非常丰富的高层次软件服务人才培养经验和支撑资源。2009年,浙江大学与IBM公司合作成立“浙江大学―IBM联合创新中心”,建立“浙江大学―IBM人才培养基地”并共建全国首家“软件与服务科学系”,双方合作利用先进的教学理念、丰富的教学资源、技术研发资源和应用实施经验,与时俱进,共同探索,培养符合当地经济发展需求的复合型人才。此次校企合作的创新模式在推进我国服务外包高端人才培养方面,迈出了大胆而创新的一步。 2.突出实践环节的课程体系。软件工程硕士的教学计划由基础课程、专业课程、实训、实习等多个环节构成,充分体现理论与实践相结合的特征。基础类课程包括公共基础及素质类和专业基础类。专业课程则是由每一个专业方向根据产业发展需求定制,教学大纲由学院和产业界合作伙伴共同确认、修订和执行。软件与服务工程方向的专业课程包括RUP方法论、协作软件生命周期管理、软件质量管理、面向对象的分析与设计、代码分析、Java高级应用开发、Webservice和SOA、J2EE应用开发、J2EE应用服务管理、数据库高级应用开发等,其中主要专业课程均由IBM资深工程师或产品经理承担教学。在基础和专业课程教学的基础上,通过课程的实验、案例分析与研究以及项目实训等三种方式组织学生在修课期间参与工程实践。学生在入学的第二学期开始参与项目实训,在实训中坚持采用符合实际应用环境的项目和开发方法指导学生。实训期间,参照企业团队形式,按项目管理要求管理学生,实训的导师来自于行业应用专家及其合作伙伴,采用企业开发模式指导学生参与行业实际应用需求的项目。从第二学年开始,学生进入企业实习。学院内的教学成果要通过参与实际企业实习来检验,学生的能力要通过实习来体现并进一步得到提高。学生毕业后的就业则与学生实习的效果直接关联。由于学生在学院学习期间已接触企业导师和符合企业文化的实训,所以到企业实习后,能马上参与项目工作,能在项目组中发挥作用,快速提高自己的业务和技术能力。软件服务工程方向的实训项目是由IBM提供的真实航空业客户项目剪裁而成,项目客户需求真实完善,项目文档完整,学生将按照企业级的项目开发和管理方式演练该项目。其中,学生将直接扮演项目开发组中的成员角色,角色包括:项目经理、技术经理、配置管理员、软件工程师、测试工程师、DBA等,来了解在软件项目开发团队中的角色、过程、规范和执行方法。整个实训项目是模拟实际客户项目开发过程,以团队的形式,进行项目过程定义、项目计划、需求分析、设计、编码和测试及交付。学生完成实训项目后,对企业真实工作流程和项目开发实施环境有了很好的了解,也初步具备了职业人的素质和团队协作的意识。在研究生培养的第二学年,他们均按照双向选择的原则进入企业进行实习,实习期限为半年到一年。实习期间,学生与学院、企业签订三方协议,明确自己岗位,承担工作角色,遵守企业工作纪律,完成岗位工作任务。并根据实习内容,完成硕士论文。 3.高水平的专兼职师资队伍。聘任校内具有较高学术水平,工程实践经验丰富,教学严谨,学生反映好的教师负责专业基础课、主要专业课和毕业设计指导的教学任务。聘请合作企业工程实践经验丰富、具有高度责任感的一线高级工程技术人员承担部分专业课、专业实践课和专题工程训练的教学任务,充分发挥企业教师的工程实践经验的作用。有企业教师参与的课程与实践环节达50%以上。通过学校教师和企业教师的混合讲课方式,即由来自学校和企业两个方面的教师以多种方式(包括讲课、讲座、研讨、实践等)共同上一门课,互相取长补短,使学生从多种角度和以多种方式理解课程内容,IBM方面还为软件学院教师提供专门的培训和奖教金,学院多名教师作为电子商务方向的CDL访问学者对国内渠道电子商务平台与对接工具提供商进行调研和课程开发共建。针对软件工程硕士培养的特点,充实壮大硕士论文导师队伍。一方面认真总结“双导师制”的经验,进一步推广“双导师制”。另一方面,充分利用学校的相关政策,在原来实行的“双导师制”的基础上,聘请企业中具有丰富工程经验和指导经验的合作导师担任硕士论文导师,独立指导硕士论文。 4.面向产业的专题化工程训练。为了实施上述教学计划和课程体系,我们与IBM共建了联合实训基地。为了更好地突出实践教学特色,增强实战效果,提升工程设计、开发与实施能力,在实训基地基础上又与相关企业合作建设了RFID、物联网技术应用、物流新技术等专题工程训练基地。相比实训基地,工程训练基地在以下方面有了较大的提升,以取得更好的工程训练效果:场地、设备、软硬件系统等设施达到或接近工业界的工程开发环境;参照合作企业制度,实行严格的项目管理、过程管理和参训人员评价考核制度;工程训练的案例其规模和复杂度更接近实际工程项目,从几个人组队可以完成的小项目提升为需要几十人、数个小组合作完成的中等规模项目;积累数量较多的实际项目案例库,供参训人员参考学习;参照企业实际工程项目配置,选派多层次、多角色具有丰富工程经验的工程师指导专题训练。 二、成果 针对宁波地方产业和经济社会发展需求,设置相应的软件工程硕士研究生培养专业方向,直接引入国际、国内在该行业具有领先优势的企业参与专业课程体系设置和教学实施过程,建立了紧密型的产学研合作办学体制。在专业课程体系建设中突出课程实验、项目实训、企业实习等实践环节,实现了高水平的学院教师与企业工程师相结合的混合式教学方式,以企业实际应用项目作为学生课程实践内容,引进企业化项目管理思想,让学生在校学习期间就能体验到企业化的项目管理模式。通过与IBM的合作办学促成了IBM公司在宁波建立IBM在中国大陆的第四个研发基地――IBM中国开发中心(宁波)及IBM中国开发中心物流行业解决方案中心。该方向培养人才为IBM宁波研发中心的成功设立和运行提供了高水平专业人才保障。软件服务工程方向自开办以来(2009~2012级)共招生211人,进入IBM宁波、上海、北京开发中心实习学生人数超过50%,被IBM招聘为正式员工的学生近40人,90%以上的学生进入了IBM、中国移动、中国电信、百度、淘宝、阿里巴巴、网易、摩根大通、银联、工商银行、建设银行、思科、上海盛大等知名企业。浙江大学软件学院与IBM的合作项目已经成为国家示范性软件学院与产业合作办学的典范,也成为IBM拓展高层次人才培养项目的标记性项目,多次获得IBM创新成果奖。 三、展望 浙江大学软件学院经过多年的探索和实践,在培养复合型软件工程人才方面积累了较丰富的经验,特别在产学研合作办学过程中不断与合作企业协同创新、共同提高。产学研合作协同创新是一个系统工程,在人才培养方面,要更加关注国际化、高端化、工程化、创新型人才的培养,深化高端价值型、市场紧缺型、行业领军型人才的培养;在科技创新方面,面向经济和社会发展中的重大现实问题,要加速新技术的孵化、科技成果转化和应用实践,更好地服务于地方产业发展。 软件硕士毕业论文:软件工程硕士论文质量评价模型及相关问题研究 摘 要:为了能够准确合理的把握软件工程硕士论文的质量,本篇文章对建立一个软件工程硕士论文质量评价模型,制定了一套清晰的论文质量衡量标准,并且根据此项标准在实施过程中将会产生的问题进行研究与解决。 关键词:工程硕士;质量评价;质量标准;问题研究 1 存在的问题与质量评价度量模型 由于各种原因的影响,论文质量评价与实际评审时存在很大的差异性,由于在实际评审中不能客观的对论文作出合理的度量,导致整篇论文无法发挥出他实际所拥有的价值。比如,科技论文本身就是一种纯理论性文章,但是书写的时候就要求选题来自于科学实践、结论准确、并且应用性较强。而对于论文质量度量标准要求则是:技术先进、内容丰富,运用基本的理论知识、专业的技术和科学的方法。结构清晰,有一定的创造性和针对性,逻辑清楚,社会评价较高等等。但是在实际的论文质量评价上还有很多的问题需要注意:(1)在论文质量要素的选取上过于普通、抽象与虚拟,所以在表达上很难形象、新颖、且直观的体现出表述对象的真实状况。(2)对质量要素的审判,用标志性的事件、交付物的成果和质量要素的度量进行评价,使抽象的评论更加具有了抽象的意义。(3)质量要素的度量和评价是固定的,它缺乏了对事件的实际性分析,当给予准确的评分时就会错误的判断了它本身所特有的价值。 导致这种现象出现的可能原因有两个,一个就是制定者在制定时考虑到论文的多样性,如果过于细致的标准会限制作者的发挥,所以对论文的评论标准范围就加大了,准确程度减小,致使以上的问题同时也随之出现。另一方面就是标准制定者对软件硕士论文的发展方向和内容的判定不能作出准确的判定,所以很难掌握论文的度量标准,最终导致不能制定出确切的标准。 要想解决论文评审中出现的这些问题,本文通过软件工程硕士论文这一特定的对象,建立了一个新的论文质量评价模型,以用来解决论文评审中所产生的问题:首先,要将不同种类的论文进行严格的分类。其次就是对论文进行分析,找出论文必备的基本结构。再就是要找出论文中的论述对象,并对其论述进行分析与评估。最后,也就是最重要的一步,就是要在论文找出最终的质量评估要素的度量方法,将其转化成成绩的形式得出最后的评价标准。 2 论文的分类 要想对软件工程硕士论文质量作出准确的评价和度量,首先就要明确论文是哪一种类,我们研究的是软件工程硕士论文,那就可以将其划分为软件技术研究和软件工程项目二类。在将论文确定类型之后,我们对论文就有了一个明确的评价标准,从而相应的也就找到了合适的评价标准,就可以对其对象作出真实、客观的评论。 3 论文的基本要求 对软件工程论文进行分类,可以确定论文的大致写作方向可以向工程项目类毕业论文,有了明确的方向之后就可以着手进行写作。要想写好一篇论文就要抓好以下几个方面,从而会使文章结构更加完整: 3.1 对相关知识的掌握度。事先了解项目的一些相关信息,例如:研究的背景;研究的问题;以及研究的目标描述,还要对学生进行专业知识的考察,了解学生对他们所在的行业领域的业务知识和领域的链接等问题,同时也是考察他们对其了解的范围和深度,也就是考察他们对论文课题的掌握水平。 3.2 技术水准。通过对学生论文水平的技术分析,可以看出一个学生在遇到问题时的解决能力,这里考验了学生在运用技术方法,使用工具的能力和具体方案,在这里,不仅需要他们要亲身的实践,更多的是学习到更多有关方面的知识和技能。 3.3 完成能力。通过学生对项目的关键技术的实际实施过程,对学生遇见专业技术上的问题时的解决能了和取得的成就,分析学生所具有的实际能力。 3.4 实施能力。通过学生的项目实施过程报告,对学生在遇到关键技术解决方案的实现作为基础,组织实施软件工程项目的过程管理和对其的控制能力。 4 质量要求及论文的度量标准级模型建立 根据以上论文内容涉及到的四个相关要求,我们相应的将四个要求进行分解,更加细致的解释每一项的质量度量要素,提供给论文评审时进行分析与评价。 4.1 项目研究的背景与目标。 先要对其进行领域背景的描述,然后再对领域问题解决的状况和关键问题进行分析,在确定之后,就要设计项目的技术方案的思路与设计,当各方面都做好之后,再表述一下具体想要达到的目标,和所承担的子目标。这样项目研究的背景与目标就可以了。 4.2 项目技术方案的分析。第一步要对领域问题核心技术的概念进行介绍,概念明确之后也就是第二步领域问题涉及到的历史方面和现状进行描述,这些都是很重要的,因为下一步就要对相关技术和计划方案进行比较与评价,紧接着就是项目技术方案的思路与设计,有了明确的思路才能使论文顺利的进行下去,项目技术方案分析的最后一步就是实现策略,每一步都有了,最终就看实际实施的状况如何。这些步骤环环相扣,使结构更加的紧密。 4.3 项目中关键技术的实施。关键技术在实施中占得成分比较重要,所以关键技术的实施一定要具体描述,本人在解决关键问题中承担了怎样的责任并在实施中的位置和缠身的影响,关键在于,在技术实施中攻破了怎样的难关,同时也要对技术的基础进行描述,和全过程的描述,最后总结项目关键技术的结果和评价。 4.4 项目过程结论报告。报告就是对论文的最后总结,本文是关于对软件工程项目的论文,那么就对范围定义与需求开发过程总结,然后对整个系统架构进行分析,设计一套完整的过程,测试系统实现成果展现全过程,接近结尾写一下项目管理和软件过程的控制,最终,结尾就要做出项目总结并对未来的计划展望。 作者单位:云南经济管理职业学院,昆明 650106 软件硕士毕业论文:软件工程专业工程硕士数字图像处理课程建设 摘要:针对目前软件工程专业工程硕士与工学硕士在培养方案上有很大区别,但培养课程却大量重复的問题,以数字图像处理课程为例,结合工程硕士的培养目标,提出需要培养其应用型研究能力和应用型技能的观点,并给出具体实现方法。 关键词:数字图像处理;工程硕士;应用型研究;应用型技能;软件工程 软件工程专业工程硕士研究生与传统的学术型研究生有所不同,前者主要面向企业人才需求和应用软件开发需求进行培养,因此在课程内容选取、授课方法设计和实验环节设计上都需要进行思考和调整,这也是北京林业大学在申请到软件工程专业的工程硕士学科后重点研究的問题。 数字图像处理课程属于图形图像应用领域的重要基础理论课,长久以来课程内容主要介绍基本的图像处理算法以及少部分图像分割和图像识别,对于图像处理在实际生活中所涉及的很多前沿科研领域介绍较少,因此很多研究生无法将课堂讲授的理论知识与其后续从事的研究课题有效地关联起来,感到课堂中讲授的很多内容看起来毫无用处,从而丧失了学习的积极性。 很多教师认为把图像处理中的算法研究透彻、把基础打好对研究生非常重要,但是这忽视了研究生是有着极强的科研探索精神和丰富想象力的年轻一代。如果将一些在生活中涉及图像处理的問题交给他们进行探索,将会激起他们浓厚的学习精神和创造力,这种没有标准答案的应用题目可以进一步锻炼他们的思考能力。 为此,在课程的教学方法和实验内容设计上,我们重点培养学生以下两方面能力。 (1)应用型研究能力,包括发现問题、分析問题和解决問题的能力; (2)应用型技术能力,包括编程设计能力和项目合作能力。 下面笔者分别从教学大纲、教学方法设计和实验内容设计3个方面进行介绍。 1.数字图像处理课程教学大纲 我们在设定教学大纲时,重点参考了多本数字图像处理方面的经典教材,如杨枝灵和冈萨雷斯编写的教材。结合之前的教学经验,同时注意与本科生课程相区别,制订了两个原则:加强中高级图像处理算法的介绍;增加利用图像处理算法的应用案例的介绍。中高级图像处理算法主要指图像分割算法、图像特征提取方法和运动检测方法。同时我们还在课堂上给出一些应用案例,进一步帮助学生将理论知识与实践相结合。 数字图像处理课程目前作为北京林业大学研究生的专业必修课,总学时为32,其中课堂讲授24学时,实验8学时。相对于其他学校,这门课程的总学时和实验学时数不多,我们设计的教学内容如表1所示。 2.数字图像处理教学方法设计 针对培养学生应用型研究能力的目标,我们在教学方法设计上本着激发学生的学习兴趣,开阔学生眼界,给学生提供更自由的思考空间的原则,通过下面两个措施来实现我们的目标。 2.1精心选择案例 选择的案例要贴近实际生活,并与课堂上讲授的方法紧密衔接。例如,在讲解图像增强和复原这两章之后,我们引入在实际生活中常见的“图像去雾”問题,通过如下方法,培养学生研究能力。 (1)要求学生先尝试用学过的算法来解决这个問题,并在课堂进行算法讨论,给出算法结果。 (2)要求学生针对具体問题,查阅文献资料,了解别人的解决方法。通过查阅国内外的文献资料,同学们知道了如何根据关键词查询科研论文,了解哪些电子数据库中有与专业相关资料,知道了文献的级别有SCI、EI、核心期刊、一般期刊等。 (3)学生将查到的算法进行分类和总结,撰写文献综述。 (4)每位学生都需要编程实现“图像去雾”算法,这个算法是结合自己的思考、实践以及查阅文献的结果。 通过自己动手,同学们发现如果图像的清晰度不好,有噪声,或者没有归一化,结果就完全不同。通过自己动手验证,同学们会发现图像处理领域的一个最为重要的特点——任何算法主要都是针对一类图像或是针对一类問题而设计的,因此在算法的适应性上需要有所考虑。 2.2全面介绍图像处理的各个应用领域 老师在课堂上介绍几个图像处理涉及的较为重要的应用方向(如视频监控、图像检索、人脸识别、运动检测、车牌检测等)后,将同学们进行分组,每组负责查找一个应用方向的相关资料,讨论和汇报自学的结果。汇报内容主要包括:①应用方向的介绍;②涉及的主要問题;③目前的解决方法及应用成果。 通过查找文献,同学们不仅对课上学习过的经典算法有进一步了解,同时还接触到很多新算法。通过听取各组汇报,同学们在较短的时间里,了解了图像处理涉及的多个主要的应用领域。针对每个应用研究领域,老师引导学生分析该领域的难点和重点,提出問题,再让学生思考解决方案,没有标准答案,只希望能够锻炼学生的思考能力。以“人脸识别”为例,有很多经典的或较新颖的算法,老师会结合应用领域对其中常用的或比较重要的算法,如PCA方法和Adaboost算法,进行详细讲解,使学生全面了解图像处理算法的应用领域。 3.数字图像处理实验内容设计 针对培养学生的应用技术能力的目标,同时考虑到本课程实验学时数较少,我们设计了两个实验——基础性实验和综合性实验。 3.1基础性实验 目前很多经典的图像处理算法是用vC++程序实现的,我们要求大家学会读程序,能够看懂已有的算法实现程序,并在此基础上能开发新的功能。 实验一:实现对多种图像格式的支持(2学时) 实验内容:采用VC++编码实现,基于CDib类,添加支持打开,并保存多种图像格式的功能。包括JPEG和GIF。 实验要求:利用学习的图像压缩的知识,利用现有的编码解码库实现对IPEG和GIF图像的打开和保存。 实验目的:了解多种图像格式,编写针对多种图像格式的读写程序,能够进一步理解针对图像的编程的特点,同时也进一步了解开发图像应用程序的适应性問题。 老师在课程初期会向大家介绍图像处理的一个公开库——CDib类。该类很好地封装了图像的数据结构,涉及很多图像的基本操作。我们知道现实生活中的图像常常都是压缩格式的,如BMP、JPEG、PNG、GIF等。因此在讲完图像的压缩格式后,对照讲过的BMP图像结构,老师要求学生为CDib类添加能够支持多种图像格式的功能。以GIF图像为例,它不同于如JPEG、PNG等格式,GIF采用的是LZW压缩算法,使用的是无损压缩技术。GIF图像的特点是可以一次压缩多幅图像,图像颜色表控制为256色,使用渐显方式。 3.2综合性实验 针对综合性实验,我们会拟定多个题目让学生选择,如树叶提取、花朵提取、车牌识别等。 实验二:数字号码图像的识别(6学时) 实验内容:采用VC++编码实现,基于CDib类,针对数字号码图像,识别出数字,给出文本显示结果。 实验要求:将该题目进行分解,划分任务;组内每个同学负责一部分任务的编程工作;每个人针对自己负责的工作至少提供两种实现方法,并放入整个项目流程中验证这两种方法的有效性;最后总结出两种方法的异同以及适应的范围。 实验目的:考查学生对数字图像处理应用中每个步骤的掌握程度和项目合作沟通能力。 上述实验涉及以下几个步骤。 ①图像的预处理; ②图像的分割; ③图像的特征提取; ④图像的分类。 组中每个学生负责一个步骤,所有步骤都需要尽心设计,这样整体的效果才可能最好。同时大家需要协商各自负责模块的人口和出口的数据结构,保证数据能够在模块之间顺利流转。这种协商和分工合作的能力是软件工程专业最需要的技术能力之一。 以“数字号码图像识别”为例,该题目可以分割成4个步骤:预处理、数字图像切分、数字图像特征提取和数字识别。在每个步骤中都有分别需要注意的問题,如在预处理阶段,需要对图像进行去噪声,增强对比度,甚至需要进行膨胀和腐蚀将图像中断裂的数字部分连通起来;在数字图像切分阶段需要制定适应性广泛的切分策略来应对各种情况,如数字排列可以呈现任意的倾斜角度,或数字字符相连等;在数字图像特征提取阶段,我们可以考察每个数字图像的自相关系数特征,或者每个数字图像的频谱特征,也可以考察数字图像的几何拓扑特征,如将数字图像分成2个洞的(8),1个洞的(4,6,9,0),没有洞的(1,2,3,5,7),针对每个类别再提取新的几何特征;在数字图像识别阶段,可以采用神经网络的分类器,或者利用制定的一些分类策略来分类,或者采用主成份分析(PCA)的方法来识别。 4.结语 两年多的教学实践表明,新的教学大纲、授课方法和实验内容有利于激发学生的兴趣,使他们带着問题去学习,从而加深了对图像处理应用领域的了解,锻炼了编写程序和协作开发的能力。下一步我们将设计更多合理有效的案例和综合性实验,力图通过这门课激发学生的创造力。 软件硕士毕业论文:基于软件工程专业硕士的三级思想教育模式探索与实践 学生思想教育是高等教育培养的重要内容之一。北京交通大学软件学院结合人才培养改革,探索与实践软件工程专业硕士思想教育的新途径、新思路。总结了工程硕士思想政治教育的特色工作,以软件工程专业硕士的思想教育工作经验为例,探索全日制专业学位研究生思想教育规律并推广经验,具有现实意义和可操作性。软件工程专业硕士三级思想教育模式北京交通大学软件学院作为国家37所示范性软件学院之一,自建院一直致力于应用型人才培养模式改革,以满足我国软件产业迅猛发展对高端复合型人才的需求。作为高教人才培养改革特区,2006年试点招收全日制专业学位硕士,在七年多的教学过程中遵循“培养应用型、复合式高层次工程技术和工程管理人才”的全日制工程硕士培养目标,坚持以教育改革为中心,产学合作,在开放与社会化办学、国际化、教师聘任等方面为高等工程教育改革做出了示范。“育人为本,德育为先”,在推进人才的工程实践能力培养的同时,软件学院始终以思想道德教育为抓手,引导专业学位硕士树立正确的价值观。努力克服改革前进中遇到的困难与挑战。经过对全日制工程硕士的思想教育工作不断总结,摸索出了一套学院、企业、导师相结合的全日制专业学位硕士三级教育模式。针对软件专业学位研究生,在学院方面,软件学院研究生工作组结合传统的研究生的思想政治教育,如对马克思列宁主义、思想、邓小平理论、三个代表重要思想、科学发展观等的学习和理解,引导研究生热爱祖国,了解时政方针和国内外形势;在企业方面,校企联合,利用社会资源,要求用人单位发挥同样的育人作用,促进学生加强职业个人修养,满足学生职业发展需求;在导师方面,实行校内外“双导师”共同监管模式,发挥学生健康成长的指者和引路作用。以下几个方面总结了软件学院开展思想教育工作的新思路、新方法,重点体现了三级教育力量各自的工作特色和作用。 一、创新思想教育载体,细化分类教育 作为落实中央16号文件的重要举措,北京交通大学软件学院认真贯彻落实北京市委教育工委的相关要求和学校的相关文件精神,以深度辅导、社会实践工作为创新载体,着力开展专业学位研究生的安全稳定和心理健康教育,全面提升辅导员工作的精细化水平。针对深度辅导,提出四项要点“覆盖全体,重点辅导;针对问题,提高效率;提高技巧,科学指导;整合力量,全员育人”。在校院两级党委的领导下,软件学院以科学发展观统领全局,以研究生综合素质培养为重点,以研究生工作组为抓手,学生干部为主导,统筹班主任等教师力量,推进深度辅导的辐射效果。在工作过程中,研究生工作组不断学习心理辅导理论,总结工作的方式方法,提高成效。 促进思想政治课堂教学与社会实践对接,充实提升研究生思想觉悟和理论水平。培养研究生对马克思列宁主义、思想、邓小平理论、三个代表重要思想、科学发展观等的理解和体会,培养学生热爱祖国关心国家大事,了解时政方针和国内外形势;培养学生关心集体和他人,学会妥善处理人际关系、正确面对人生道路的顺境和逆境,加强个人修养等;在学术教育中,培养学生严谨的科研作风和学术诚信,在职业教育中,培养学生的诚信意识和责任意识。根据学生的专长、技能、性格进行分类引导教育,变面向群体的粗放型思想政治教育为面向个体的细作型思想政治教育。 二、重点关注心理健康,保障安全稳定 招生伊始,专业学位研究生的社会认知度还不足,社会上普遍认为“专业学位研究生水平低于学术型研究生”,录取学生大部分由外专业调剂而来,自信心不足,缺乏专业兴趣和学习动力,对就业前景十分担忧。另一方面,针对全日制专业学位研究生的教育改革,高校在思想和观念上还未能形成统一认识,没有突出专业学位区别于传统学术学位的人才培养特色,导致专业学位研究生自身定位不明确。因此,作为新型人才培养模式的目标人群,专业学位研究生中存在的心理问题相对学术型研究生来说更为突出。另外,全日制专业学位人才培养的实践环节使在校硕士大部分时间在参与校内外专业实践、学习交流等各类活动,研究生的人身安全和社意识形态也成为高校安全稳定的重点关注对象。 通过研究生入学教育、学期教育、毕业教育、党员教育、素质拓展等具体途径对研究生学习、心理、生活、家庭等方面进行有效的教育引导,及时了解学生的思想动态。关注学生之所需,了解学生之所想,保证谈话内容能够找准切入点。制定了研究生安全应急预案,为全体在校实习学生宣讲并购买了商业保险,组建了研究生维稳小组,定期开展安全讲座,发送安全小贴士邮件,签订《安全责任书》,充分发挥研究生“自我教育、自我管理”体系的作用。在信息社会的快速发展中,改变单一的教育方式,通过电话、即时通讯软件、社交网络、微博等多种手段拓展沟通方式,确保学生个人动态信息传达及时有效。 三、有效开展生涯规划教育,提高就业竞争力 专业学位硕士的人才培养以就业为导向,因此通过多种方式推进全日制专业硕士的职业生涯规划至关重要。以学生自身职业发展为诉求,设计思想政治教育形式和内容,并结合学生的培养计划从传统的以面向科研的研究生为对象开展思想政治教育,转变为符合专业学位研究生培养特点,以提升就业竞争力、职业发展力和培养正确价值观为重点的思想政治教育。 就业情况的好坏直接影响全日制专业硕士的社会认可度,从而间接影响学生的职业发展和就业心态。软件学院经过考察,建立了一批实习基地共同开展人才定制培养,从企业内部聘请了一批经验丰富、技术水平过硬的技术人员作为校外导师,参与人才培养与思想政治教育环节。 为扩大专业学位硕士的专业眼界,提高就业竞争力。北京交通大学软件学院引入企业资源,建立相对稳固的实习基地,充分发挥校企合作优势,开展IT企业认知、职业生涯规划、面试模拟大赛等一系列主题教育活动,为学生提供参观行业内知名中外企业的机会以及职业规划讲座。参观走访的单位有微软、百度、IBM、甲骨文等,旨在让在校专业硕士提前体验、直观感受到IT企业的工作模式,加深学生对软件行业的了解以及企业文化的认同,培养学生对软件的兴趣,为实习就业工作打好基础。邀请邀请企业高管开展职业规划讲座、面试技巧辅导,讲述企业文化和个人职业发展,促进学生认清形势,明确自我定位,及早开展生涯规划,减轻就业压力。为更好地为专业学位硕士提供正确的就业指导,软件学院研究生工作组走进对口单位了解企业情况和用人需求,利用校友资源获取就业信息,构建多元化的就业推荐网络。 四、加强校企合作,开展“双导师”管理模式 硕士研究生导师在研究生的思想政治教育方面有着不可替代的作用,是学校和学生的重要纽带,是专业教育最直接的体现者。而专业学位的培养过程从课程设置上,实训、实习等环节比重明显加大,因此在校外期间的思想教育成为校内导师的教育盲点。软件学院以校企联动开展人才培养为契机,聘请企业导师给软件工程专业硕士专业指导的同时,开展思想教育。利用学校导师与企业导师的双重监管和教育,确保学术硕士的安全及心理教育覆盖全体,不留死角。 首先,要求导师注重言传身教,以身作则。“85后”“90后”群体强调个性,具有很强的怀疑精神,对说教容易产生逆反心理,所以导师的身教更胜于言教。可以说,导师是专业学位硕士进入社会工作之前接触最多、最容易对其产生影响的人,因此导师必须敢于坚守正面的价值观念,敢于向学生灌输正面的价值理念,在与学生的直接交流中,对学生进行是非观、人生观、价值观的教育。 其次,在论文或实习环节,要求校内外导师分别把对职业道德、思想品质等方面的教育融入负责的每个环节,如在社会实践中教导学生加强职业责任感,从毕业实习、毕业设计等环节中培养学生扎实刻苦的学风和精益求精的工作态度。这些从实践中来、到实践中去的教育往往比空泛的说教教育更容易被学生接受。要求校内外导师在学生出现学业或生活困难时,及时进行通知研究生工作组,促进快速的有效引导,避免出现严重的心理问题,将思想教育工作常态化,确保学生按时、保质、高效地完成校外实践环节。 五、扩大国际化视野,增强文化交流 在教育国际化背景下,软件学院确立了国际化、具有国际视野和竞争力的研究生教育理念,重视解决好国际化人才的思维与国际接轨,培养全日制专业学位研究生的国际化观念:一是全球化竞争;二是危机意识;三是创新。软件学院关注国际化人才培养质量,为培养一批具有国际视野通晓国际规则能够参与国际事务与国际竞争的国际化人才,全面推进以培养创新精神为核心的素质教育。积极招收留学生,开展纯外语教学,营造学院的国际化氛围。开展中外学生文化交流、前沿技术讲座、素质拓展等形式多样的教育活动,培养专业硕士的国际化思维。2011年,软件工程硕士新生,包含来自17个国家的留学生130余人,开展了“春江潮水连海平,海上明月共潮生;花好月圆思乡切,海外学子别样情”的主题中秋活动。通过共度中秋佳节,中外学生不仅融入了新集体,也加深了解到不同民族文化。此外,通过邀请北京公安宣传中国法律法规、茶话会等方式让中国学生与拥有不同文化背景的留学生互动,培养其接纳不同价值观的能力。 六、引入以评促改,建立综合评价体系 全面的人才培养质量评价体系应是教育系统内部评价和使用者的外部评价相结合的综合评价体系。在学生的思想教育方面,软件学院建立“动态反馈”机制,引入外部评估,定期举办用人单位、校外导师座谈会,了解讨论学生在企业的工作表现和思想动向,促进学校的思想教育工作方式不断完善。形成一套了综合学生素质能力评价与思想道德评价的体系。 经过7年的工程硕士人才培养改革和探索,北京交通大学软件学院为国家培养了一大批懂管理、具有较强研发能力和很强英语能力的高素质软件人才,取得了不少用人单位的高度评价。正是在软件工程硕士管理环节中加强思想教育引导,始终将德育放在关键环节,不断探索和实践学生思想教育新模式,才使培养出的高端人才能够科学发展,获得社会及行业的认可。全日制专业学位硕士的管理和思想教育目前尚处于起步阶段,只有不断吸收、借鉴、实践国际上专业学位硕士研究生教育的先进做法,更新教育理念,创新工作思路、提高辅导水平,积极思考长期规划,为学生提供良好的管理环境,为专业学位硕士的职业发展创造有利条件。
软件毕业设计论文:Solidworks软件在高职机械类毕业设计中的应用 摘要:本文介绍了多个高职机械类学生应用Solidworks软件进行毕业设计的实例,说明了Solidworks软件的应用对提高学生的学习积极性、促进学生对先进制造技术的理解和掌握、培养学生的现代工程素养和创新能力,起到了良好的教学效果。 关键词:Solidworks;毕业设计;三维造型 现代制造业日趋国际化,缩短产品开发周期,减少开发新产品投资风险,已成为企业赖以生存的关键。[1]制造企业运用先进的设计模式,采用先进的制造技术,从而在激烈的市场竞争中立于不败之地。为了适应现代制造业对人才的需求,培养掌握先进制造技术、具有现代工程素养和创新能力的技能型人才,是高职院校刻不容缓的重任。 毕业设计是高职学生三年学习的重要总结,是最重要的一次集中性实践环节,它要求学生综合运用相关知识,结合实际课题进行设计和创新,从而培养学生的动手能力和创新能力,全面提高学生运用知识的水平。[2]笔者所在的教学团队根据高职学生的知识特点,设计了多个富有创意和挑战性的实际课题,由学生选作,要求采用三维机械设计软件的主流产品Solidworks完成。主要是基于以下考虑:①学生在相关专业课程中已经学习了Pro/E软件的应用。有一定三维CAD软件应用经验者都知道,各三维CAD软件的应用思路大体相同,学习一种三维CAD软件作为基础,再学习其它三维CAD软件将很容易上手。但学生在学习阶段并没有这样的认识,因此希望他们在校学习阶段即积累一定的三维CAD软件应用的经验。②通过企业调研,我们发现目前Solidworks软件在国内外中小企业中已经得到了广泛的应用,受到广大设计人员的欢迎,为了使学生免除进入企业后,缩短适应期,减少再培训等环节,在校学习阶段即提供机会让学生深入学习Solidworks软件,为实现与工作岗位的无缝对接打下良好的基础。 一、举一反三,拓展思路 大部分的高职机械类专业都开有机械基础或机械设计基础课程,在该课程的教学环节中,有两周左右的课程设计内容,要求学生根据给定条件完成一个减速器的设计,包括设计计算、二维装配图绘制及部分零件图绘制。但在两周的时间里,学生并没有利用这一机会完成减速器三维造型。因此,在毕业设计阶段选择减速器设计课题的学生,第一个任务就是利用Solidworks软件完成减速器的三维造型,由此学习Solidworks软件的零件造型、装配、工程图及文件管理等方面的功能。 上述减速器作为经典的案例在教学中广泛采用,其设计过程已经程序化,有大量可供参考的资料,为了拓展学生的思路,提高其综合应用课本知识的能力,要求进一步独立完成其它类型减速器的设计。例如下图所示的同向三螺杆挤出机减速器、异向三螺杆挤出机减速器等。 要求学生通过查阅资料,制定设计方案,完成设计计算并利用Solidworks软件完成三维图及工程图的绘制,使他们懂得怎样将所学的知识融会贯通,灵活应用于解决实际问题。 二、从设计到加工,体验真实的生产过程 在技术进步的大背景下,产品的设计和加工工艺越来越精细,产品的成品品质越来越精致、优良。[3]机械制造类工作岗位越来越离不开计算机辅助设计与制造软件的应用。Solidworks是一款综合性的创新平台,利用它可以设计多样化的产品。下图是利用Solidwork软件设计的玩具小车,可以实现其精美的造型,如同真实的产品一样。在完成造型后,进一步制定各零件的数控加工方案,利用CAM软件编制数控加工刀路,生成NC程序,并在数控机床上实际加工出产品。 学生在此过程中可以完成机械制造业中的设计、工艺、编程、机床操作等典型工作任务,体验设计员、工艺员、编程员、操作工、检验员等岗位角色,使学生熟悉零件从设计到加工的整个过程,掌握零件的基本设计方法与数控加工的基本技能,进一步巩固与扩充以前所学的《机械设计基础》、《机械制造基础》、《数控加工工艺》、《数控编程与操作》等课程的知识。同时鼓励学生充分发挥其创新能力,设计出具有自身特色的产品。学生要利用三维软件实现自己的构想,必须钻研Solidworks软件的各种造型功能,从而提高软件应用能力。通过反复的交流与修改,设计并最终加工出属于自己的作品,培养了创新意识,加强了实际操作技能。 三、整机设计,综合能力的培养 该课题要求学生利用Solidworks设计和装配一种单螺杆膨化机。首先由教师提供设计指导书,包括膨化机原理、产量计算方法、螺杆设计方法等等资料,在充分熟悉基本资料的情况下,鼓励学生扩散思维,采用不同的结构实现所需要的功能,学生综合运用以往知识,先拟定各自的设计方案。最后集中进行各种方案展示、小组互评、指导教师点评,通过比较、筛选和组合,确定出最为合理的设计方案。 小组成员分工合作,从膨化机的功能入手,通过产量、功率等要求确定基本尺寸,还要考虑密封、润滑、加热、定位、拆装及标准件的选择等一系列问题,并进行强度验算。最终完成三维装配图和二维零件图。 在完成毕业设计的过程中,学生以独立的主体身份从事一定的、相对独立的具体工作,大大激发了他们的求知欲望。以往的毕业设计中,二维图纸的绘制和修改工作量很大,占用了学生大量的精力和时间。而三维设计软件的应用可将毕业设计的重点由二维图纸的绘制转化到不同方案的设计和创新上,突出了设计创新,培养了学生运用现代化手段解决工程实际问题的能力。对增强学生的综合分析问题、解决问题能力,建立机械设计的整体思维大有帮助。 四、理论联系实际,实现与工作岗位的顺利对接 传统的毕业设计中设计出的产品由于没有得到制造、装配以至样机试验的验证,许多不合理的设计,甚至是错误的设计很难被发现。输送机设计课题即来自真实的产品。该课题是与输送机生产厂家合作设计制造一台计量输送机,学生与指导教师一起参与到该项目中。首先由用户提出使用要求,包括输送材料、输送能力、输送距离等基本要求,然后学生与指导教师一起讨论结构设计、基本尺寸的确定、电机的选择等。确定方案后,由学生利用Solidworks完成该输送机的三维绘制,再交给用户确认。由于SolidWorks软件可以完成复杂零件的三维造型,并可根据需要生成各种剖视图,有助于了解产品复杂的内部结构,对设计方案的表达更加简单明了,与用户的交流也更加顺畅。同时,由于界面友好、造型方便、图形质量好等特点,也使得产品设计和造型的时间缩短,效率大大提高。 用户确认后,由学生输出二维工程图交由工厂进行生产。由于设计、生产、用户各方都没有该种物料计量输送机的经验,生产后出现物料架桥等问题,需要对原方案进行改进。每次改进都是首先在三维图上修改,再在实物上完成。经过不断改进,最终满足了用户的要求。整个过程由于SolidWorks软件的应用,大大缩短了试制周期,降低了成本。学生自始至终参与了该计量输送机的设计与生产,参与了各种问题的解决,其在毕业设计中所做的工作即是实际工作岗位上一名结构设计人员需要完成的工作,真正实现了与工作岗位的顺利对接。 实践证明,将SolidWorks三维设计软件引入毕业设计,可取得良好的教学效果,极大地调动学生毕业设计的积极性和创造性,由此提高了学生对先进制造技术的理解和掌握,锻炼了学生解决实际问题的能力,对学生创新能力的培养起到了积极的促进作用,毕业设计的效率和质量大大提高。 软件毕业设计论文:软件工程学在毕业设计中应用研究 摘要:毕业设计是一个十分重要的教学环节,是一个系统工程,应使用工程化的方法、步骤统筹安排以取得良好的效果。软件工程学是指导计算机应用专业软件类学生进行毕业设计的重要工具之一。将毕业生设计过程、文档书写与软件工程学紧密结合起来是提高学生毕业设计论文质量的一个重要途径。结合软件工程的基本知识,通过对软件类学生毕业设计过程存在的常见问题的研究,提出了应用软件工程学去指导学生毕业设计的方法。 关键词:软件工程;毕业设计 0引言 毕业设计是高等院校应届类毕业生在毕业前接受课题型任务,在教师指导下进行科学研究或工程实践并取得成果的过程,是高校实现人才培养目标的综合性实践教学环节,是一次理论与实践相结合的的锻炼机会。如何在新形势下改革毕业设计, 提高学生软件类毕业设计的质量,进一步规范毕业设计中的软件开发过程,抓好高校毕业设计这一实践环节,加强对毕业设计过程的管理与监控, 切实提高毕业设计的质量,对于软件类学生在毕业设计中实施合适的软件设计具有重的指导意义。 1毕业设计的必要性 高等职业教育应该是以能力为本位、以学生为主体、以实践为导向的教育。毕业设计是高等教育培养学生综合运用所学理论知识和技能解决实际问题能力的重要环节之一,是衡量毕业生是否达到相应学历层次的重要依据。毕业设计将总结专业基础和专业技术的学习成果,锻炼和开发学生的综合运用能力。 高职院校软件相关专业组织毕业设计应该符合新的人才培养标准,对培养学生的职业技能和素质要具有积极的意义。而对于即将毕业离校的应届毕业生来说,毕业设计无疑是计算机软件各相关专业理论教学、实验、实训等有机结合的途径之一。 通过毕业设计能锻炼学生的能力: (1)实践软件工程的相关原理能力。毕业设计的过程,是一个课题小组从接到开发任务到提交产品和文档的过程,其中涉及到需求分析、概要设计、详细设计、编码、测试、程序打包、编写文档等软件工程具体的各个方面。经过锻炼,学生们对软件工程学思想和方法的理解会大大加深。 (2)解决具体问题能力。在毕业设计的进行过程中,学生一定会遇到平时在课堂的理论学习中碰不到的困难和挑战, 而克服这些困难、解决实际问题的过程就是软件技术和心理素质逐步提高的过程。 (3)团结协作的意识、能力。通过毕业设计这一过程,学生就会产生团结协作的意识和能力。 2软件工程学的基本思想 软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科,包括两方面内容:软件开发技术和软件项目管理。其中,软件开发技术包括软件开发方法学、软件工具和软件工程环境,软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划。 3高职类学生毕业设计现状 毕业设计的主要目的是培养学生综合运用所学的基础理论、基本知识和基本技能,用以分析、解决工程、科研、社会实际问题的能力,使学生得到工程设计方法和科研能力的初步训练。毕业设计中存在的问题主要表现在以下几个方面。 3.1选题的盲目性 只是把毕业设计环节作为大学生活的必经环节, 纯粹是为了完成学业而去做毕业设计, 造成选题的盲目性、有的选题则是陈旧。 3.2可行性分析与需求分析重视程度不够 绝大多数毕业生在确定了毕业设计的题目后,几乎不进行调查研究工作就立即投入到整个系统的设计中, 一旦遇到了与实际不符的地方, 又重新返回, 对已经做好的设计进行修改。最终导致设计的系统杂乱无章, 甚至到了最后只能马马虎虎地仓促交工。 3.3系统开发过程中的文档不够正规,不够完备 完整的设计不仅包括所完成的可操作的系统,一般的操作帮助,还包括在开发系统的过程中所产生的各个文档等一些文字的东西,比如解释清晰、内容全面的数据字典和使用手册也是必不可少的,否则用户会感到使用起来不方便,觉得难于操作。 3.4模糊的评价标准 导致毕业设计质量下降的一个非常重要的原因就是没有建立精确细致的评价体系。 这严重影响了项目的进度和质量,并且使学生没有真正得到必要的锻炼。我们通过对这些问题进行详细深入的分析,提出一个软件过程框架,这个框架主要从需求、测试、集成这3个方面给出工作要点和规范。 4利用软件工程学思想指导学生进行毕业设计 毕业设计本身是个工程,要用工程的方法去处理。从软件工程的角度去指导学生进行毕业设计,在毕业设计过程中,要系统地将所学知识应用于实际问题,按软件工程学思想展开工作。 图1软件生命周期与毕业设计各阶段之间的映射 4.1以可行性研究指导选题目 可行性研究,应该从技术可行性、经济可行性、操作可行性三个方面去研究,在毕业设计题目的选择过程中,应立足于解决实际问题,注重发现问题、分析研究问题和开发创新的能力。选题原则上,可以参考以下几点:①毕业设计的课题应该能使计算机专业所学的理论知识进一步理解并深化,也就是说,毕业设计应尽可能包括多门专业基础课和专业课的综合运用,并且要紧密结合工程实际,以有利于学生的全面训练;②选择难度适中的课题, 保证课题的完成质量;③课题要适合于各个模块独立进行,并便于最后统一调试;④课题规模应大小适合,难易程度适中。 4.2需求分析是关键 需求分析的基本任务是准确地回答“系统必须做什么”, 也就是对目标系统提出完整、准确、清晰、具体的要求。系统分析员可以通过多种形式来获取用户需求,对用户提出的需求进行分析,以此来确定其中要实现系统的功能。对需求划分优先等级,找出核心需求和重要需求,以保证系统构建的正确性。 在进行软件类毕业设计时,为了保证需求获取的准确性和全面性,可以让项目组的所有学生都参与到用户需求的获取的工作中来,发挥集体的能力,并由指导教师进行最终的确认。 4.3规范设计过程 需求分析完成后的下一个阶段就是系统设计,包括概要设计和详细设计。 详细设计阶段的任务就是深入每个函数内部,以伪代码或注释的形式实现整个函数,设计出程序的详细规格说明。 从系统设计开始,学生要按照软件工程的要求,画出DFD图,对输入、输出数据流进行详细的说明,建立符合软件工程规范的数据字典,根据DFD 图设计出模块结构图。 4.4重视文档写作 在毕业设计的过程中,要严格遵照软件文档的思想,记载设计过程的每一阶段完成了哪些设计,下一阶段的任务、目标及技术手段,这样,把文档作为整个设计的指挥棒,使设计有条不紊地进行。 4.5重视测试工作、撰写毕业设计说明书 软件测试工作也是软件开发的重要组成部分。通过实际应用效果和测试数据,毕业设计的成效就可一目了然。 毕业设计说明书的撰写是最后一个阶段,要求学生回顾设计过程,总结劳动成果,这时学生就会对软件开发及必须经历的几个步骤都有更深刻的认识。最后,要求学生对毕业设计进行系统的总结,写出毕业论文。 5加强对学生综合能力的培养 通过实践的练习,不仅能加深对理论的理解,同时也能锻炼运用知识分析问题、解决问题的能力。毕业设计这一实践环节是高等学校培养学生实际能力的主要手段,也是高等教育的重要组成部分。充分、有效地设置软、硬件的毕业设计对学生能力的培养至关重要,可以缩短学校教育与社会流行技术、工具的差距,满足学生毕业后的工作需要。通过毕业设计必须达到培养学生以下方面能力的目的。 5.1工程实践能力 学生能够准确把握选题的逻辑重心和学术思路,能够运用丰富的专业知识进行处理,具有严谨的理论思辨过程,以锻炼毕业生的工程实践能力,使毕业论文具有一定的应用和学术探讨价值。 5.2书写和表达能力 毕业设计论文是毕业设计工作的总结和提高,和做科研开发工作一样,要有严谨求实的科学态度。在毕业设计期间,尽可能多地阅读文献资料是很重要的,毕业设计大多数是技术开发型的,其论文的主体部分应包括:总体设计、模块划分、算法描述、编程模型、数据结构、实现技术、实例测试及性能分析。这些内容根据任务所处的阶段不同,可以有所侧重。 5.3创新能力 提出创新要求后,带领学生认真复习或补学过去没学过、没有学好的课程,并在此基础上结合实际工作中出现的问题孕育出一些新的思路,将毕业设计推上一个新台阶的方式,与为每个人专门分配某一特定的作业来锻炼学生基本技能的方式相比,更能扩展学生的视野,培养创新能力。 5.4协作能力和团队精神 通过集体活动和成员沟通培养成员的团体情感,增强团队的凝聚力。毕业设计将一个学生从入学初到毕业前的软件专业课程的学习内容链接成线,实现了课程的真正衔接,也使学生在毕业前对软件方面所学的知识进行了比较完整的概括与总结,达到了良好的理论联系实际的教学效果。毕业设计弥补了课堂教学的不足,加深了对理论的理解,促使学生深入思考,敢于创新,同时使学生的动手能力、分析和解决问题的能力、书写和表达能力、协作能力等各项能力都得到了培养和提高。 6结束语 软件工程作为软件开发工程化、规范化的具体实施方法,在将其应用到毕业设计中之后,学生在软件设计的文档书写规范化等方面均有了很大的改善与提高。将软件工程应用于毕业设计中不仅仅完成了一门课程从理论到实践的过程,而且将一个学生从入学到毕业前软件专业课程的学习内容链接成线,完成了前导后续课程的真正衔接,也使学生在毕业前对软件方面所学的知识进行了比较完整的概括与总结,因此,软件工程学在计算机专业学生毕业设计中的应用具有重要的现实意义。 软件毕业设计论文:软件工程专业毕业设计论文 1概述 在应用型本科院校中,尤其是软件工程专业,毕业设计作为教学计划的重要组成部分,是实践教学中的最后一个环节,也是对学生在校期间所学知识的一次综合、全面的总结、应用和提高。由于毕业生数量的不断增加和软件行业的迅猛发展,导致就业门槛越来越高,就业压力也越来越大,通过毕业设计过程中的训练,能有效提高学生的工程应用能力,使学生得到一定的实践经验,有利于学生从学校向工作岗位的平稳过度。因此,毕业设计质量的好坏,不仅反映了一所高校的教学质量,也会直接影响到学生的就业竞争力和就业后的职场适应能力。 2存在的问题 1)思想认识上不够重视学生方面:有些学生存在完成任务式的应付心里,避重就轻,能简就简,敷衍了事。有些学生则只重视找工作而轻视毕业设计,不愿在毕业设计上花费太多时间和精力,甚至有些学生还以找工作为由,完全依赖于导师,向导师索要源代码,甚至花钱在网上购买来交差。已经找到工作的学生,更是认为毕业设计做的好与不好对自己没什么影响,对待毕业设计也更加心不在焉。导师方面:大多数指导教师除了要指导学生毕业设计之外,还要承担大量的教学和科研任务,在毕业设计指导工作上能够投入的精力和时间非常有限,致使有些导师对毕业设计的指导工作不太重视,对学生放任自流,不管不问,或者是直接将相关源代码发给学生,以“简化”指导工作。由于思想上的不重视,学生学习态度不认真,导师指导工作不到位,造成毕业设计流于形式,疏于管理,效果较差,使得学生白白浪费了毕业前的一次综合训练机会。因此,如何充分认识毕业设计的重要性,并进行相应的教学改革是软件工程专业毕业设计必须要面对并解决的问题。 2)时间安排上不够科学毕业设计一般安排在第八学期,这期间刚好是学生求职和考研的黄金时间段,由于目前就业形势的日益严峻,学生就业压力越来越大,当求职和考研时间与毕业设计时间发生冲突时,学生都会选择将主要精力投入到求职和考研上,有些还要去外地求职、应聘考试、面试等,毕业设计自然是无暇顾及。而且,学校方面,为了保证就业率,往往对学生毕业设计的质量也是睁一只眼闭一只眼,这又在无形中鼓励了学生消极对待毕业设计的态度,毕业设计质量下降也就成为必然结果。 3)题目设置上不够合理由于毕业设计在高校各类教学活动中是最具综合性和独立性的,相对于常规课程而言,对指导教师要求也就更高,尤其软件工程专业,工程实践性比较强,但每年真正来源于实际工程项目的题目所占的比例较小,很多题目都是虚构出来的,导致有些题目不是理论性太强,就是缺乏具体需求的支撑,使学生很难从毕业设计过程中真正领悟到真实的软件工程方法。而有些指导教师自己都没参与过实际的工程项目,本身就缺乏实践经验,对学生毕业设计的指导只是凭着自己的感觉来进行,缺乏系统性、整体性、科学性和严谨性,学生遇到问题后,难以得到及时的解决,导致抄袭现象时有发生,甚至有些学生直接照搬往届毕业生的设计成果。毕业设计的主要目的在于通过毕业设计的训练来提升学生对所学知识的综合应用能力以及创新能力,从而实现学生从学校到工作岗位的平稳过度。但由于题目设置上的不合理,题量太少,层次不清,导致选题匹配效果差。在选题时,部分能力差的学生所选题目难度太大,造成毕业设计很难完成,而有些能力强的学生所选题目难度过小,达不到能力提升的目的。 4)过程监管上不够到位众所周知,对于软件工程项目而言,过程控制与管理是项目执行的关注点,毕业设计也当如此。虽然学校也会在毕业设计过程中组织对各阶段的工作情况进行检查,但执行检查工作的不一定是专业教师,使得这种检查大多只是对指导老师所填写的各种表格和文档等表面内容进行检查,对毕业设计的过程起不到实际的监督作用,再加之有些学生在校外求职或实习等原因造成指导教师与学生无法定期见面和沟通不畅等问题,使得指导教师难以用软件工程方法对学生进行指导。毕业设计虽然启动较早,但实际上很多学生前期在毕业设计上很少投入时间和精力,只是在答辩前为了完成任务而赶工应付,这样的毕业设计质量自然也就不佳。 5)量化考核上不够严格毕业设计成绩一般由平时成绩+论文成绩+答辩成绩三部分按一定比例构成,平时成绩由指导教师自行把握,论文成绩则由其他有经验的教师进行评阅,答辩成绩由答辩委员会老师按照相关评分标准打分并取平均分,这样虽然基本可以保证成绩的公正性,但成绩构成太简单,未显示地将开题报告、文献翻译、分析和设计过程以及总结等纳入到考核范围,对毕业设计的前期和中期工作没有约束力。在成绩评定时,有些导师要求不严,采取宽容迁就的态度。答辩时,通过门槛较低,造成大部分学生仅以答辩及格为目标,在思想上不重视,答辩准备工作不扎实。同时,学校为了提高学生毕业率,在最终答辩时,对毕业设计的质量要求也有所放松,这也是导致毕业设计质量难以保证的一个重要原因。 3采取的对策 时间安排上,可以提前启动毕业设计工作,将原来的第八学期开始提前到第六学期中后期,此时学生已经学完大部分课程,具有了一定的知识基础,而且学生都在校,可以随时与导师见面,指导教师也有充分的时间对毕业设计项目随时跟进,随时指导。导师资格审查上,对于软件工程专业来说,学生毕业设计的导师,应该由长期从事实际工程实践或者有较好科研成果的“双师型”(双师即“教师”、“工程师”)教师来担任,也可以聘请校外科研单位或企业中水平较高的工程师来担任企业导师,这样不仅可以减轻指导教师短缺的压力,也能促进指导教师队伍多元化模式的形成。题目设置上,要求题量要充分,使得水平层次不同的学生都能选到合适的题目;难度和工作量要适中,且要有一定的创意,使学生通过毕业设计的训练,在综合应用能力和创新能力上都能够得到有效的提高。有课题的指导教师要尽量结合自己的课题来设计题目,没课题的指导教师可以从与学校有合作的企事业单位中获取有实际意义的题目。鼓励学生根据自己的兴趣点和就业取向自拟题目,允许学生到实习企业中根据企业的实际工程需要选题和实施毕业设计,这样既能解决实际问题又可完成毕业设计。过程监管上,首先要在指导教师和学生之间建立有效的沟通联系机制和问题讨论的例会制度,充分发挥指导教师的引导作用,在毕业设计过程中,坚持每周师生沟通一次。学生提出问题,指导教师引导和总结,鼓励学生发挥主观能动性和创造力。同时,学校要成立由领导牵头、具有一定工程实践经验的专业技术人员组成的督导组,对毕业设计过程包括选题、开题、中期检查、答辩和成绩评定等各个环节实施有效的监控和督导,加强管理学生的同时也要加强对指导教师工作质量的检查,确保毕业设计工作能够有序、有效的实施。量化考核上,要对毕业设计从前期的开题、文献查阅,到中期的分析、设计、实现,再到后期的总结等各个阶段的进行量化考核,前一阶段的成绩考核不合格者,不能进行下一阶段工作,必须加以整改,直到整改合格后才能进入下一阶段。对于未能按要求如期完成毕业设计的可以推迟答辩,对于首次答辩不合格的可以进行二次答辩,仍不合格的,可以缓发毕业证。只有建立严格的考核制度,才能对学生有约束力,让学生从思想上重视毕业设计,进而保证毕业设计的质量。 4结束语 软件工程是一个实践性很强的专业,软件工程专业的毕业设计作为大学四年学习的总结,是学生从学校跨入社会前仅有的一次大检验,它不仅检验了学生对所学知识的综合应用能力和学生的综合素质,同时也检验了学校的培养模式和教学质量。毕业设计质量的好坏,不仅关系到软件工程专业的培养目标,也关系到学生的就业率与就业质量。因此,在就业形势日趋严峻的情况下,软件工程专业毕业设计的教学改革也要适应就业市场需求,紧跟行业发展变化,与时俱进。 作者:张华 单位:南阳理工学院 软件毕业设计论文:软件工程毕业设计改革实践 一、软件工程专业毕业设计存在的主要问题 (一)毕业设计题目设置与选题方面 题目设置不合理,类别与层次不清晰,选题匹配效果差[2]。学生的毕业设计课题一般都按照指导老师的研究方向和实际工程项目提供,但每年真正来源于工程实践题目比例较少。部分题目理论性强,学生根据所学知识不能很好理解;部分题目开发工具复杂,占用了毕业设计的大部分时间。在选题时可能导致学生想选的题目选不上,能力差的学生所选题目难度大,影响学生的积极性,导致选题效果差,造成毕业设计很难完成。 (二)毕业设计过程监控方面 毕业设计监控工作实施困难,效果较差。软件工程专业毕业设计一般包含选题、开题、中期检查、程序测试、撰写毕业论文、答辩、成绩评定。但对这些环节的监控有时候会形成空白带,毕业设计不在实验室进行,有的学生在实习单位实习,有的学生在外地找工作,老师不能定时与学生见面,老师无法了解学生的具体情况,且学生提交的各阶段文档流于形式,只有指导教师在进行监控,未形成完善的监控体系,导致监控不到位,监控效果较差[3]。 (三)毕业设计论文答辩方面 答辩考核方法单一,答辩仅由学生的讲解和老师的提问两个环节组成,考核准确度低。答辩通过门槛较低,答辩只对学生的毕业设计进行排名,一般排名在最后的学生才可能不及格,不利于提高学生毕业设计积极性,造成大部分同学仅以答辩及格为目标,思想上不重视,答辩准备工作不扎实。再由于软件工程专业特点,毕业设计软件作品评分标准难于量化,考核具有一定难度,也造成答辩效果不好。同时为了提高学生毕业率和就业率,毕业答辩的质量控制有所放松,直接导致了软件工程专业毕业设计质量难以保障。 二、软件工程专业毕业设计的教学改革 针对上述各项实际问题,主要进行的相关工作具体如下: (一)合理设置毕业设计题目,动态选题 依照软件工程专业的以市场需求为导向,培养应用型软件工程人才的培养目标,在毕业设计题目设置环节,紧紧围绕工程实际型、创新项目型、竞赛题目型、科研项目型等类型进行题目设置,以适应市场动态需求。同时着力避免在毕业设计题目中设置虚拟型题目、理论研究型题目、综述型题目、分析设计型题目等。在选题过程中,通过毕业设计管理系统(如图1所示)进行多轮双向动态选择,动态调整题目各项技术参数以保证学生能选择一个适合自己能力且能有利于自己以后工作的题目[4]。这样,在选题之后,每个指导老师就可以根据学生不同能力进行分别指导,使不同能力的学生都能够运用其所学知识解决工程实际问题,都能够通过毕业设计增强工程实践能力、工程设计能力与创新能力。近四学年软件工程专业毕业设计各类题目汇总。 (二)毕业设计过程实行三级监控管理机制 学校成立以主管副校长为组长的毕业设计工作领导小组以加强毕业设计宏观调控,学院成立以教学副院长为组长的毕业设计工作领导小组以加强毕业设计协调与监控工作,软件工程专业成立以专业负责人为组长的毕业设计工作小组落实并实施毕业设计各环节具体工作[2]。具体参见下图2。在实现毕业设计过程管理的三级管理机制的同时,为保障毕业设计工作质量,软件工程专业要求所有指导教师必须具有中级以上技术职称或硕士以上学位且有一定工程实践经验,具有较高教学、科研水平和创新能力,师德良好,工作态度认真负责。在每年的毕业设计指导工作开始前都对指导教师进行资格审查,择优任用,且每位教师指导的学生不超过6人,以保证指导教师对学生的充分指导[5]。 (三)毕业设计过程量化考核 以往软件工程专业毕业设计成绩通常由三部分组成:一是学生的平时表现由指导老师把握;二是学生的毕业论文成绩。由专业其他指导老师进行评阅;三是现场答辩成绩。由所在组的指导教师按照相关评分标准打分并取平均分。这样基本能够保证毕业设计成绩的公正,但是由于只有毕业答辩环节具有约束力即答辩未通过则总成绩不及格,其他环节不具约束力,因此造成毕业设计前期、中期工作流于形式,前期、中期阶段提交的文档趋于应付、质量不高,最终导致毕业论文质量较低[6,7]。为此,软件工程专业经过几年的探索与实践,实施了毕业设计各阶段的软件工程生命周期量化考核法即各个阶段量化考核,且考核成绩不合格者不能进行下阶段毕业设计工作,必须加以整改,整改通过后才能进入下一阶段毕业设计工作。经过几年的实践证明该考核方法切实可行,能够保证毕业设计各个环节的质量,最终提高毕业设计总体质量。 (四)在毕业设计过程中进一步提高学生工程能力与创新能力 辽宁工业大学于2011年制定并实施了大学生创新团队机制,建立了大学生创新项目申报机制引导大学生开展创新活动;引导学生每年都参加校级、省级、国家级软件设计大赛等各类各级比赛[8]。随着学校和学院创新教育活动多年持续深入开展,软件工程专业学生的创新与创业活动取得了显著成果。超过1/4的软件工程专业学生能够独立主持创新性项目,并以该项目为原型申报毕业设计题目[9],同时参加省级、国家级计算机竞赛并获得奖项。通过主持校级及省级创新项目既毕业设计题目,学生工程能力、创新能力得到极大锻炼与提高,本专业毕业生就业率与就业质量明显提高。软件工程专业学生主持参加创新项目既毕业设计题目情况见表3。 三、结束语 软件工程专业毕业设计是一个极具综合性、实践性的重要环节,是对学生大学四年学习后面向社会与企业前的有且仅有的一次大检验,它不仅检验了学生所学知识、能力与综合素质,还检验了软件工程专业的培养目标、培养模式、课程体系、实践体系、创新体系等相关环节[10]。经过几年的探索与实践证明,软件工程专业所做的系列教学改革工作中的毕业设计教学改革工作有利于进一步增强学生的工程实践能力和创新能力,有利于提高软件工程专业毕业设计质量,有利于提高软件工程专业学生就业率与就业质量。虽然软件工程专业毕业设计教学改革工作取得了一定的成绩,社会认可度逐年稳步提高,但如何动态调整教学计划以跟进市场需求变化;如何深入开展大学生创新创业教育活动以进一步增强更多软件工程专业学生的实践能力及创新能力;如何进一步加强专业教师工程实践能力、工程设计能力与工程创新能力以提高毕业设计指导效力;如何提高毕业设计过程管理效率等问题仍然是软件工程专业所面临的严肃课题[11]。因此,软件工程专业的毕业设计教学改革工作也一定会紧跟时代变化,与时俱进。 作者:佟玉军谢文阁王恩喜刘鸿沈姜悦岭工作单位:辽宁工业大学电子与信息工程学院 软件毕业设计论文:软件开发类毕业设计中敏捷软件技术的应用 摘 要:提出了在软件开发类毕业设计中采用敏捷技术进行过程控制的方法,从实际效果中可以看出,这种方法较好地解决了软件开发类毕业设计中遇到的各种问题,能够有效提高软件开发类毕业设计的质量,使学生在毕业设计中得到充分的锻炼和提高。 关键词:毕业设计;敏捷软件开发;极限编程;软件质量 0 引言 毕业设计是本科教学中非常重要的一个教学环节,是对学生所学知识的检验和总结,是培养学生独立分析和解决问题能力的重要手段,也是学生进入工作岗位前的最后一次实战演习;并且,它是本科教学水平评估指标体系的重要指标之一,是考核学校本科教学水平和质量的重要内容。 软件开发是计算机专业毕业设计中一个重要组成部分。学生开发的软件质量直接反映出毕业设计质量,而指导教师的指导和监控对学生开发软件的质量高低有很大影响。本文首先介绍了软件类毕业设计的特点、遇到的问题及其原因分析,然后将敏捷软件开发技术应用于指导和监控软件类毕业设计,最后通过具体的实践对其进行总结。 1 目前状况及问题 1.1 软件开发类毕业设计的特点 本科计算机专业毕业设计中,软件开发占很大比重。而软件开发类毕业设计与其他专业的毕业设计以及商业化软件开发又有很大不同,主要体现在: (1)设计的最终目的是要生成可运行的、实现一定功能的、错误率较低的实际软件产品,而不仅仅是提交一份文档报告。 (2)设计小组成员分工合作,要将各人的成果整合,形成完整的软件;小组每个成员不是完全孤立的,每个人的工作都与其他人息息相关。 (3)项目小组一般只包括一个人或几个人,人数较少,远少于一般商业化软件开发项目小组的人数。 (4)小组成员没有足够的团队意识,没有足够的软件工程经验,一般没有作为一个团队的成员共同开发过软件产品。 (5)项目开发过程不完全,编码的结束即意味着项目的结束。项目不要求有完整的工程化的分析和设计文档。 (6)有些软件开发没有与商业项目挂钩,也就没有真实客户的需求对其进行功能和性能上的监控。 1.2 遇到的问题及原因分析 根据上面的特点可以看出,普通毕业设计的指导方式或是工程化的控制手段,并不能适应软件开发类毕业设计,最终会导致毕业设计质量低下,学生得不到真正锻炼。比较突出的问题主要表现在以下几个方面: (1)项目组成员各人任务不明确,能力参差不齐,并且有时没有充分地交流设计思想,最后导致软件各个功能模块无法有效整合。 (2)项目需求因为各种原因不断改变,软件不断修改,最终完成的软件产品达不到设计要求。 (3)编码开始后,软件的错误和缺陷不断涌现、不断累积,最终无法控制。 这些问题的产生,固然与设计选题、学生能力、实验环境以及教师的指导力度分不开,最重要的还是与教师的指导和监控方式有关。应当采用恰当的指导和监控方式,最大化地促进学生能力的提高,最有效地根据各个学生的特点,推动学生逐步达到毕业设计软件质量和功能的要求。 2 敏捷软件开发技术的应用 采用适当的指导和监控方式,实际就是要求教师对学生软件开发应用适当的软件过程模型,也就是软件开发的工程化控制手段。 2.1 敏捷软件开发简介 传统的软件工程方法中的架构设计与程序开发在时间上是先后分离的,这种分离常常导致一些脱离实际的设计和脱离设计构想的编程,导致最终软件开发的不理想甚至是失败。鉴于以上问题,敏捷软件开发技术应运而生。 敏捷软件开发以交付而不是以构造为核心,它强调的是交付对客户有价值的软件,而不是用户需求中所描述的软件。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷软件开发方法提倡采用先进的技术和高水平的小型团队,并辅以人性化的管理,充分发挥软件开发者的才华,建立畅通的交流机制,使软件开发团队水平和软件质量共同提高。 敏捷式开发采用适应性方法,而传统的软件工程学采用的是预测性方法。敏捷式开发是以人为主的,而传统的工程学是以过程为主的。二者的主要区别存在于它们对软件开发过程的描述中,也就是说,敏捷开发实现当前最需要的功能,然后根据变化来修正和改进;而传统软件工程学一开始就将软件的各种架构预测好,然后采用固定的过程来实现这种架构。软件开发中的变化是不可避免的(通常传统软件开发的失败主要原因就是不能很好适应这种不可预知的变化),因此就要找到一种新的方法能够更有效地适应变化,这其实也就是敏捷式开发方法所要达到的效果。 可以看出,上述的敏捷软件开发的许多特点正是与软件开发类毕业设计的许多特点不谋而合,例如,小型的开发小组,适应性(适应不可预测变化)的开发机制,短期的交付(毕业设计一般都在半年甚至更短时间内完成软件的交付),充分发挥小组成员的特点,建立畅通的交流机制等等。因此,将敏捷开发思想引入毕业设计中的软件开发,不失为解决后者诸多问题的很好尝试。 2.2 敏捷软件开发应用 敏捷软件开发技术包含若干的价值观、原则和实践方法。将其用于毕业设计的指导和监控,主要应包含如下原则的应用: 2.2.1 增量式开发 传统软件类毕业设计采用传统软件工程学指导方法,先进行需求分析,然后根据需求进行功能模块划分,接着开始编程。如果最初阶段不能很好地完成分析和设计任务,后面的软件开发将出现严重问题。 而在敏捷软件中,采用的是增量式开发,对于难度较大的软件设计,不是一步吃透功能,而是逐步添加功能,在改进的过程中促进学生能力的提高。在笔者指导的一项毕业设计中,要求学生用Java编制网络实时通讯软件。采用增量式开发方法,先要求学生实现基本功能,即发送字符串到另外一台计算机,使用Windows的超级终端作为接收机进行测试;接下来要求学生实现程序互相发送和接收字符信息;然后,实现聊天室的多人聊天的线程控制;进一步可以实现数据库存储登录用户信息,并进行验证;最后,实现其他功能,例如网络硬盘,文件传输等等。在开发过程中,增量式设计能够让学生逐步进入高层次的内容,而不是一开始就进行高难度的开发。并且,通过逐步修改代码,可以提高学生阅读代码和优化代码的能力,学生的编程水平得到很好的提高。 2.2.2 可持续的开发速度 敏捷开发技术不要求团队一开始就尽全力完成任务,而是尽量保持一种稳定的、可持续的开发速度;团队的成员必须始终保持旺盛的精力和警觉的思想。 在很多毕业设计中,一开始学生就以极高的热情和全力以赴的状态去工作,然而随着进度的延缓,错误不断增多,以及越来越复杂的需求变化,学生的热情迅速减退,最终影响设计成果。因此,指导老师必须充分调动学生的积极性,又不能让学生 的精力过早地消耗,要保持一个稳定的进度。 2.2.3 简单 敏捷软件开发方法采用最简单的方式实现当前最需要的功能。在毕业设计中,针对某一个功能,采用尽量简单的方式去实现,不需要考虑为了将来的功能而进行“提前的准备”。因为这种“提前的准备”往往会让学生考虑问题过多,反而忽略了当前最重要的内容。 然而,简单并不代表着功能的缩减,当某些功能的实现成为必须的时候,敏捷软件开发方法采用在代码上改进的方式来完成,并且以此为机遇,充分进行反省,让学生在改进中得到进一步提高。 2.2.4 结对编程 结对编程是敏捷开发和极限编程(XP)的重要实践,它是指两个程序员结对使用同一台计算机完成编码――其中一位控制键盘并输入代码,另一位观察输入的代码并寻找着代码中的错误和可以改进的地方。这种方式能极大地促进知识在团队中的传播,并有效降低代码的错误率。 在毕业设计中,根据学生的特点,采用结对编程方式,可以让学生充分交流,互补所短,互用所长,互相学习。例如,在网页制作类的软件开发中,ASP脚本编程人员和界面设计人员结对,能够充分利用二者的特点,将脚本程序和网页界面元素有机地结合起来,形成功能完善,界面美观的动态网页。 2.2.5 适应改变 敏捷开发的一个重要特点就是它能够很好地适应改变,并且欢迎改变。这里的改变主要是指功能需求方面的改变。而敏捷开发对改变的适应,主要是通过增量开发,持续交付以及不断地改进与反省来实现的。 在毕业设计中,设计题目一经给出,主要方向不能变。然而选择题目的学生是变化的,个体能力有时候有很大差别,并且在开发中会碰到很多不能预知的技术问题。采用敏捷开发中的过程控制手段,可以有效地让毕业设计小组更好地应对各种变化,不会因为突发因素导致软件开发的失败。 2.2.6 个体激励和交流 毕业设计的重要目的是促进学生各方面能力的提高,采用的手段可以有很多。在敏捷设计中,强调个人能力在团队中的充分展示。把这种思想应用于毕业设计指导中,可以采取定期召开小型交流会议的方式,让每一个组员充分发挥自己的能力,以“头脑风暴”的形式对系统当前状态和改进方式进行畅所欲言的交谈。通过这种形式的交流,能够充分调动整个小组成员的积极性,及时发现系统开发过程中的各种问题,增强整个小组的凝聚力,有效提高学生的团队协作能力。 2.2.7 反省 好的团队并不只是埋头工作,他们会思考如何工作和为什么工作。在毕业设计指导过程中,指导教师应当在适当的时机提醒学生对开发工作中各项内容进行反省,让学生能够有机会去辨别可能或已经发生的错误。反省不仅仅是简单的思考过程,反省的后面应该紧跟着行动,学习是反省的行为,要能够将错误造成的危害尽早地阻止,并从中学习,以免同样错误的再次发生。 2.2.8 其他原则 敏捷软件开发技术还包含其他一些原则,在设计中包含了面向对象设计的一些基本原则,例如单一职责原则(SRP)、开放一封闭原则(OCP)等等。要将这些设计原则应用到具体的软件开发中,需要学生熟悉面向对象程序设计的相关概念和技术。 将敏捷软件开发技术应用到毕业设计的指导过程中,需要指导教师本身对它有较为深刻的理解,并且勇于进行大胆的尝试一毕竟敏捷开发的很多实践是与传统软件工程学方法相悖的。指导教师可以先在某一门程序设计课的课程设计中采用这种思想,然后进行相应的调整,再将其应用于毕业设计的指导工作。 3 结束语 将敏捷软件开发技术应用于指导毕业设计,能够充分适应软件类毕业设计的特点。在实际采用这种方法对我校的两组毕业设计小组进行指导的过程中,可以看出,这两组同学在对语言工具和相关知识不是很熟悉的情况下,采用渐进的方式,逐步实现设计要求的功能,并且不断对代码进行改进,软件完成的质量比其他小组明显要高。毕业答辩中,小组成员能够很清晰地阐述其软件开发进程以及相关知识的学习过程。并且,小组成员通过毕业设计加深了交流,团队协作能力有了大幅度的提高,小组成员个人的精神面貌也有了较大的改变。 软件毕业设计论文:软件工程思想在应用型高校毕业设计中的应用研究 摘要:针对地方应用型本科高校计算机软件类毕业设计质量不高的问题,对毕业设计中存在的问题进行分析,并结合软件工程的基础理论,提出利用软件工程思想对计算机软件类毕业设计进行指导,以提高地方应用型普通本科高校毕业设计的质量。 关键词:软件工程;毕业设计;应用 一、引言 毕业设计是本科毕业生在校期间的最后实践和综合实训阶段,是实现本科教育培养目标的重要组成部分,是深化、拓展、综合应用所学理论知识的重要过程;也是综合素质与工程实践能力培养效果的全面检验;是学生毕业及学位资格认定的重要依据;是衡量高等教育质量和办学效益的重要评价,是对专业理论知识和专业技术综合应用能力的强化训练和提升[1]。在毕业设计的过程中,学生利用所学专业理论知识,通过了解社会,分析社会需求,深入实践,完成毕业设计的任务和撰写毕业论文(设计)报告等各个环节的工作。对于地方应用型普通本科高校而言,毕业设计就相当于一般高等学校的毕业论文,但是毕业设计不同于毕业论文,它的组成部分不只是一篇学术论文。应用型高校的毕业设计注重的是“应用性”和“实践性”,学生毕业设计要求学生针对某一课题,综合运用本专业有关课程的理论和技术,自己动手动脑做出解决实际问题的设计。目的是总结、检查学生在校期间的学习成果,是评定毕业成绩的重要依据。同时,通过毕业设计,可培养学生开发项目的基本综合能力,为学生就业能力中的专业能力奠定坚实的基础;培养综合运用已有知识独立解决问题的能力,从而加强学生应用能力的培养,使学生能够学以致用。 二、地方应用型普通高校计算机相关专业学生毕业设计的现状 近几年来,由于学校对毕业设计要求不断提高,学生从选题到设计再到写出毕业设计报告的过程中总存在这样那样的问题,最终有个别同学没有顺利通过毕业设计,没有拿到毕业证和学位证的情况时有发生,并且大多数毕业设计的水平不高,达不到培养学生独立解决问题和提高学生应用能力的目的。因此,如何指导学生做好毕业设计,提高学生毕业设计水平和质量,是地方应用型普通高校面临的一个重要问题。 (一)毕业设计选题现状 最近几年,我校计算机相关专业毕业生自进入大四秋季学期开始,在进行毕业实习的同时,也进入了毕业设计准备阶段:毕业设计选题,虽然毕业设计选题过程中,各级领导、指导教师和学生在态度是都很重视,但是在选题时也会存在很多的问题,主要有以下三个方面。 1.选题不够准确。部分学生选题未经深思熟虑,所选毕业设计题目要实现的功能太多,在规定时间内不能独立完成,而最终只能实现部分功能,或部分模块。 2.题目相似或重复雷同。学生选题存在浑水摸鱼的思想,在毕业设计选题过程中不是根据自己的兴趣爱好、专业知识学习情况等确定研究选题,而是选择与他人类似或雷同的选题,甚至同一批毕业的许多学生选题一致。比如:“XX管理系统”等,除了可能冠以的系统名称不同之外,其余基本相同。 3.应用价值低。部分学生的选题是当前十分成熟的项目,没有研究的必要;有些选题已经被淘汰,在实际生活和工作中没有多大用途。 (二)毕业设计需求分析阶段现状 通过调查,许多学生选题完成后,没有对自己所做毕业设计选题进行仔细了解、分析,他们认为在毕业设计中最重要的就是编程,其他方面一带而过[2],从而造成毕业设计过程中主题经常进行修改,最终使得整个系统杂乱无章,无法继续进行下去。因此学生在毕业设计的需求分析阶段主要有以下三个方面的问题。 1.选题后未进行实际调查研究,甚至未查找相应的参考文献。 2.需求分析进行得不彻底、不准确,即使选题后查找了参考文献和资料的,也未做充分了解和分析。 3.在需求分析阶段没有写出需求规格说明书或系统分析报告就匆忙进入系统设计阶段,导致随着系统设计的逐步深入,原来确定的需求不能满足毕业设计的需要,正在进行的设计与开始的期望和设想又不相符。 (三)毕业设计系统设计阶段现状 在系统设计阶段,普遍存在以下两个方面问题。 1.由于需求的不明确,在进行系统设计时,修改随意,没有严格按照软件开发的步骤进行。好多学生在进行系统设计时并没有建出相应的功能模型,不管是用例图还是DFD图都没有,而且系统设计过程中功能随意变换,并且各功能模块的层次结构不清晰,使得整个系统的功能模块划分凌乱,不符合软件设计中“高内聚,低耦合”的原则。 2.在软件设计过程中,不先进行概要设计、详细设计和模块设计,没有软件的过程性描述,直接进行编码,存在想到哪里就做到哪里,走到哪儿算哪儿的随意思想[3],当前内容没有做完便开始其他内容,使得整个系统设计杂乱无章。在这样的一种研究状态下,即使完成了设计,效率也非常低下,软件结构混乱,功能实现不完全,降低了软件设计的质量。 (四)毕业设计实现阶段现状 通常把编码和测试统称为实现。在进行软件设计后,就可以根据设计结果来实现,将软件的过程性描述编码,得到计算机可以运行的源代码。在实现阶段主要有以下几方面的问题。 1.编码随意。学生在编码的过程中,不注意编程风格的把握,导致程序的可读性、可理解性、可修改性等较差,在答辨的过程中,要求指出某个功能模块的代码时,经常要花费很多时间才找得到。 2.测试和调试可有可无。大部分学生在毕业设计的软件编码完成以后,从没有想过进行完整的系统测试,或者只对个别功能进行测试或是随意测试,没有按照测试步骤逐步进行;基本没有单元测试和集成测试,一般只是最终随便输入几个数据简单检测一下,如果有错,修改了就算完了;也没有进行回归测试,没有测试计划,没有想过用什么测试技术来检测某一类型的错识,没有相应的测试用例,也没有测试结果分析。由于学生毕业设计都是一人一题,基本上是一个人完成所有步骤,就算有测试,在测试阶段也是自己进行测试,从心理学的角度来说,自己对自己开发的软件进行测试是不可取的。 由于前面阶段的文档不完善,也不重视测试过程,不清楚是否实现了系统最初设计的功能,是否达到相应的性能要求,总以为程序做出来后毕业设计就完成了,使得毕业设计经常在更换运行环境或答辩时发生错误和问题,从而使得设计得不到好评甚至无法通过。 (五)毕业设计应用现状 最近几年,我校计算机相关专业毕业设计投入使用数量接近于零。究其原因主要是由于设计不完全,未进行测试和调试,存在的错误和缺陷较多,文档和数据不完整,导致所开发的系统或软件不能方便地转让、变更、修正、扩充和使用,也没有为后期培训、维护留下完备的资料;因此,不能投入到真正的使用过程中,也不能实现系统或软件产品的效益。 三、软件工程思想的应用 软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。软件工程中的软件生命周期是一个软件从软件定义、开发、运行和维护,直到最终被废弃的整个过程[2]。地方应用型普通高校计算机相关专业学生毕业设计基本都是开发一些中、小型应用系统或软件,因此,学生毕业设计也要经历软件生命周期各个阶段,严格遵守软件工程的各个原则,这样有助于解决毕业设计中存在的问题,提高毕业设计的质量。通过对应用型普通本科高校计算机相关专业的学生在进行毕业设计的过程中存在的问题进行分析,在毕业设计的过程中,必须运用软件工程的观点、技术和方法来指导毕业设计,这样既节约了毕业设计的时间和学生的精力,也能做出最优质的毕业设计。 1.选题过程中的应用。毕业设计选题就是软件生命周期的问题定义中的问题提出阶段,选好题目是进行深入研究的基础,也是写出高质量毕业论文的前提。地方应用型普通本科高校计算机相关专业的毕业设计选题必须做到以下几点:(1)必须在对选题做了充分调查、分析,对检索的参考文献、资料有了整体把握的基础上提出。(2)必须符合本专业培养方案规定的培养目标的要求。(3)以选择工程性较强的课题为主,确保有足够的工程性训练。(4)要有明确的设计成果,对于较大型任务的课题要明确阶段性成果。(5)要达到规定的工作量,难易度适中,确保能在规定的时间内完成整个课题工作。(6)要围绕生产生活实际,所选题目一定具有一定的理论意义和实践意义,具有一定的价值。(7)原则上一人一题,对于较大型任务的课题,每个学生必须有独立子课题。结合以上几点,分别从专业基础、现实意义等方面进行全面分析,进行取舍,最终得出选题。 2.开题过程中的应用。在毕业设计的开题过程中,需要明确所选题目的选题依据(包括选择课题的背景、选题研究的理论及实践意义)、选题研究现状(包括目前国内外对本选题的研究情况和有待解决的问题)、研究内容与方法,而这些就是软件工程中需求分析阶段应该做的事情。 需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作[3]。因此开题过程中最重要的是进行需求分析,需求分析具有决策性、方向性、策略性的作用,在软件开发的过程中具有举足轻重的地位。需求分析完成的好坏直接影响后续软件开发的质量。开题过程中需要指导学生大量地阅读相关的研究资料,同时根据资料进行分析研究,对当前毕业设计的研究进度做到心中有数,明确毕业设计的具体方向,写出毕业设计的研究内容与方法,得到相应的设计提纲,解决好设计什么,如何设计的问题。因此,应用好软件工程的思想来指导毕业设计的开题是至关重要的。根据学校对学生毕业论文的要求,在计算机相关专业的毕业设计报告中,要求要有数据流图、数据字典等相应内容,而软件工程中的数据流图(Data Flow Diagram,简称DFD),它是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。它是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理[3]。因此,在这个阶段,要指导学生按照DFD图的要求,确定设计的功能,然后根据系统分析结果写出分析报告,就得出毕业论文中系统分析阶段的初始文档。 3.在实践研究环节的应用。根据需求分析(开题阶段)的结果进行软件的概要设计和详细设计,注意在设计过程中要严格按照软件工程对于设计阶段的指导原则来进行设计。将概要设计阶段需求分析得到的DFD转换为软件结构和数据结构,即是根据需求确定软件和数据的总体框架,设计出软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。然后再进行详细设计,设计出每个模块的实现算法、所需的局部数据结构,并且对每个模块写出过程性描述;为每个模块设计出一组测试用例,在进行测试时就以此测试用例来进行测试。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后将根据这个“蓝图”写出实际的程序代码。因此,指导教师要对学生的设计过程进行监督和指导,防止学生盲目的进行编码。 4.在实现阶段的应用。在编码的过程中,要注意编程风格的把握,编程的风格在很大程度上影响程序的可读性、可测试性和可维护性。 在测试阶段,可以进行交叉测试,即学生之间可以两两交叉,相互测试,以更好的达到测试效果,同时也培养了学生的团队意识和合作意识。 在测试过程中要注意运用软件工程的测试原则和测试思想,严格按照单元测试集成测试确认测试系统测试验收测试的测试步骤进行,利用白盒测试技术进行单元测试,黑盒测试技术进行其他测试,并且在找出错误并修改后要进行相应的回归测试,确认修改了错误并且没有引入新的错误,这样有利于找到软件中的各类错误,提高软件的质量。因此,在软件的测试过程中,一定要严格按照软件工程中的测试原则来进行,不可随意进行测试,并且要注意测试文档资料的收集整理,要有相应的测试计划和测试报告。对学生的创造性的思维和想法,指导教师要给予支持,积极引导,鼓励学生大胆创新,用应用型人才培养目标来要求学生,保证高质量的毕业设计的完成。 5.在毕业论文(设计)报告方面的应用。对于应用型普通本科高校计算机相关专业的毕业设计而言,不单单是完成了一个系统的设计,还要有相应的设计报告,而设计报告的编写过程中,很多学生存在文字表达能力不强的现象,为了完成报告,就有可能会抄袭,特别是在软件开发的各个阶段文档材料不全的情况下更为严重。因此,在学生进行软件开发的各个环节中,指导教师都应该按照软件工程的观点来进行指导,并要求学生在各个阶段都完成相应的文档。这样在毕业设计报告撰写的过程中,只要将各个阶段的文档进行合并、整理就得到相应的设计报告,并且是一篇重复率不高的高质量的设计报告。 6.在毕业设计实际应用方面的应用。因为学生在整个系统或软件过程中均按软件设计规范准备了文档和进行了完整的系统测试,从而为系统或软件的专利申请提供了充分必要的资料,并为毕业设计的实际应用打下良好的基础。 四、结语 计算机相关专业学生的毕业设计在学生的整个大学生活中具有极其重要的地位和作用,根据应用型普通本科高校人才培养的定位,主要是培养学生的独立思考能力、动手能力和应用能力。通过对软件工程思想在计算机相关专业学生毕业设计的过程及方法中的应用研究,逐步实现学生毕业设计的实际成果转化,从而为应用型计算机相关专业人才培养提供相应的借鉴。 软件毕业设计论文:采用Protel软件提高高职应电专业毕业设计质量的研究与实践 【摘要】高职院校的毕业设计是高职教育教学的一个重要环节,是高职人才培养计划的重要组成部分。做好毕业设计,对高职培养高素质技术技能人才,具有十分重要的作用。在应用电子技术专业毕业设计中,引入Protel软件,极大地提高了学生毕业设计质量。 【关键词】高职 应用电子技术专业 毕业设计质量 电子线路CAD 高职院校毕业设计是高职教育教学的一个重要环节,是高职人才培养计划的重要组成部分,也是高职实现人才培养目标的最后一个阶段[1]。它既是对学生在大学期间所学知识、技术与能力的检验,也是对高职院校教育教学质量的全面、综合的检查[2]。它既是学生对理论知识综合运用的过程,也是学生理论结合实践分析解决实际问题和培养初步科学研究能力的重要阶段,又是对学生团队协作能力、创新思维能力等综合素质的全面检验。做好毕业设计,对高职培养高素质技术技能人才,具有十分重要的作用。对以培养面向现代电子产品生产企业从事电子产品的生产及组织管理的应用电子技术专业来说,在毕业设计中引入Protel软件开展“基于产品研发过程”的课题研究,意义重大。本人在指导应电专业学生开展毕业设计中积极进行了这方面的探索,取得了良好的效果。 1.将Protel软件引入应电专业毕业设计的可行性 Protel软件最早是Altium公司在80年代末推出的,经过了Protel DOS版,Protel 98,Protel 99 SE,Protel DXP等多个版本,目前最高版本是altium designer。在电子行业众多的CAD软件中,它当之无愧地排在众多EDA软件的前面,是电子设计者的首选软件。该软件具有电路原理图SCH绘制、原理图元件制作、电路仿真、PCB印制电路板设计、元件封装制作、可编程逻辑器件设计、图表生成、电子表格生成等强大的电子产品开发的功能。 应用电子技术专业毕业设计内容涉及电子电路的设计,包括运用电路基础、模拟电子、数字电子、单片机、可编程逻辑器件等相关知识与理论,同时还要在万能电路板上进行元器件的安装和电路板的焊接。在这个过程中往往还需要加一个面包板的环节,就是学生要先在面包板上对所设计的电路进行验证,若电路验证成功,则再到万能电路板上进行。在毕业设计中运用Protel软件,将极大缩减电路验证的流程,并大幅提高电路的可靠性。Protel软件起到了很好的桥梁作用,有效衔接了电路设计与电子工艺制作,电路设计的合理性与否得以较可靠验证,而PCB板的制作使得电路连接简单轻松,焊接的工作也简便了不少。对学生来说,毕业设计的过程,成为检验和巩固并提高其系统专业知识的过程,同时还锻炼了逻辑思维、整体意识和时间管理能力。 2.引入Protel软件后应电专业毕业设计的步骤 学生选定毕业设计课题后,一般需经过以下七个步骤完成最终的毕业设计作品。 2.1 确定电路设计方案 根据所选课题的设计要求,结合专业已学的电子线路、单片机、PLC技术、CPLD可编程技术等相关知识,确定可实现的几个方案,通过在经济上、电路可靠性上、电路性能方面等比较各方案,选择出最佳的电路设计方案。 2.2 绘制电路原理图 根据电路设计方案,打开Protel软件,进入原理图编辑器,先设置图纸参数,后查找或制作所需元件,并把它有序放置到原理图上来,调整元器件之间的位置和间隔,再放置接插件、电源、接地符号等。然后,对电路进行连线,连线完毕放置网络标号。生成材料清单,检验所用元器件的Designator、Value、Footprint、Simulation等重要参数是否设置合理;生成网络表,检查电路信息,若发现错误及时纠正。最后,对整个电路进行编译ERC校验,确保电路正确。 2.3 电路仿真及方案修正 Protel DXP提供了10 种分析仿真方式,包括直流工作点、直流扫描、交流小信号、瞬态过程、Fourier、噪声、传输函数、温度扫描、参数扫描以及蒙特卡罗分析等。电路原理图绘制完毕后,设置仿真方式并指定要显示的数据节点,系统进行电路仿真,生成sdf 文件,同时打开窗口显示分析结果。观察电路仿真结果,分析仿真波形是否符合电路设计要求,如果不符合,则重新调整电路参数进行仿真,直到满意为止。 2.4 设计PCB板并打印图纸 电路仿真达到满意结果后,就可以进入PCB印制电路板的设计了。一般的步骤是先进入PCB编辑环境,定义PCB印制电路板,可自定义板框大小,也可以采用软件自带的PCB板制板向导来实现;接着从原理图导入网络表信息;再是对元件封装进行合理美观布局;然后进行布线规则的设置,线宽大小建议在12mil以上;最后是自动布线,布线成功后就可以使用热转印纸按1:1的比例依次选择不同层进行打印。 2.5 制作PCB板 PCB图纸打印好后,分五步完成。第一步是曝光,选择合适大小的曝光覆铜板,打开多功能制板系统抽屉式曝光机,将图和覆铜板放入,曝光约90秒左右后完成;第二步是显影,调制好一定浓度的溶液,并加热到50摄氏度左右,将线路板放入显影槽进行显影;第三步是蚀刻,蚀刻时间一般需要十几分钟;第四步是钻孔,根据焊盘大小选择不同的钻头进行钻孔;第五步是表面处理;若为双面板,还要进行第六步,过孔。线路板经过以上步骤后,可用万用表检测电路是否均连通,以保证后面的步骤顺畅进行。 2.6 元器件接插并焊接 把选用好的元器件接插到合适的位置,用电烙铁、松香等对元器件进行焊接,这里要注意不要出现虚焊、假焊和漏焊现象,要尽可能做到焊点表面完整、连续和圆滑。 2.7 电路调试 电路焊接完毕,则需要用万用表、示波器等工具对电路进行调试,发现故障,进行电路分析并排故,直到电路功能正常为止。一般来说,毕业设计的电路相对简单,在前面几个步骤都顺利的情况下,电路调试基本都能成功。有出现问题的,往往都是电路设计方案本身存在问题,并在仿真阶段也是含含糊糊过去的。 3.引入Protel软件后应电专业毕业设计的实效 将Protel软件引入到应用电子技术专业毕业设计后,总体来讲,学生毕业设计的质量大大提高。具体体现在以下四个方面。 一是学生对专业的自信加强了。毕业设计系统地考验了学生对所学专业知识的掌握和运用能力。引入Protel软件后的毕业设计里,学生既有对专业理论知识的提取、运用和消化,又有基于产品研发过程的专业实践的锻炼,理论与实践相结合,学生的专业自信明显提升。 二是学生的综合素质增强了。毕业设计过程中,碰到的可能是对某个元器件用法和功能的不熟悉,也有可能是对电路参数大小比较模糊,这些都需要学生去查找文献,提高自学能力;另外,在电路设计、电路仿真过程中,可能会出现参数不符合要求,需要修正和调整,这个过程可能是反复的,考验的是学生对某项任务的坚持不懈和百折不挠的精神;此外,还培养学生的严谨和细致。 三是学生毕业论文的内容充实了。学生对毕业设计的整个过程进行梳理和笔录的内容就可构成毕业论文的核心内容了。学生经过毕业设计的亲身实践,有过程,有感触,必然言之有物。 四是学生毕业就业的专业对口率提高了。引入Protel软件后毕业设计,不仅让学生对专业更有自信,同时学生对Protel软件的掌握也加深了,对制板的流程也熟悉了,在就业过程中,Protel绘图员工、制板工等相关岗位的工作也能承担了。 4.结束语 在应用电子技术专业毕业设计中引人Protel软件,改变了过去毕业设计只注重理论设计的纯教学性的做法,采取理论设计与实践制作相结合,动手能力与创新精神相结合[3],充分发挥学生主体性作用的方式相比,取得了良好的效果。 软件毕业设计论文:本科毕业设计中FLUENT软件相关课题可行性及问题探讨 【摘要】本文探讨了在本科毕业设计中加入运用FLUENT软件进行工程计算分析的相关课题的可行性。实践证明,学生通过运用FLUENT软件进行工程计算,夯实了理论基础,增强了解决本领域传热和流动问题的能力,提高了学生的学习兴趣和未来的专业竞争力。在做好本文所提及的三点问题(学生和课题的选择、指导过程中的问题)的前提下,在毕业设计中加入FLUENT软件工程计算相关课题不仅可行,还值得在一定范围内推广。 【关键词】FLUENT 计算流体力学 计算传热学 毕业设计 1.引言 本科毕业设计是在本科教学过程的最后阶段进行的总结性的实践教学环节。在毕业设计环节中,学生应当综合运用本科阶段所学的各科知识和技能,对所需解决的课题进行思考、分析、设计和研究,从而全面、系统地完成课题交给的任务。可见,毕业设计是对学生本科阶段学习质量的全面性的检验,也对学生能否顺利拿到毕业证书和学位证书起到直接和决定性的作用。 计算传热学又称数值传热学,是研究用数值方法求解传热问题的一门科学。它可以理解为:根据所需求解的实际问题建立合理的数学模型,利用离散化处理的数值方法,再通过用计算机高级语言编制的程序,以计算机作为工具来求解传热问题的、与工程实践密切结合的一门应用基础科学[1]。而市场占有率高达40%[2]的数值计算软件FLUENT是解决传热领域数值计算问题的较好的通用软件之一[3]。 运用FLUENT等CFD软件,可以在不具备实验条件或暂不需要对研究对象进行实验的情况下,借助计算的方法进行相关工程分析,从而极大地节约人力、物力、财力和时间成本。因此,在本科学习最后的毕业设计阶段,若能让部分学生学习并基本掌握FLUENT软件对本领域问题的计算过程,将会在很大程度上促进学生今后对相关问题的建模和分析等工作。 2.毕业设计指导工作应注意的问题 由于FLUENT软件的专业性,在指导与FLUENT软件工程计算相关课题的时候,应注意以下几个问题: (1)学生的选择 要能较好地掌握FLUENT软件相关计算过程,首先需要具有较为过硬的微积分、流体力学、传热学、计算传热学(也称数值传热学)等相关学科的基础知识。这不仅要求学生较好地理解课堂所讲知识,还要能够灵活运用课内外相关知识。有的学生学习能力和成绩相对较弱,并不具备过硬的知识储备和学习能力;有的学生未来从事的工作与本专业距离较远,或者对相关的数值计算兴趣不大,因此缺乏从事相关课题毕业设计工作的原动力;这些因素都会影响整个毕业设计工作的正常进行。因此,对于与FLUENT软件工程计算相关联的毕业设计课题,并不是所有学生都适合来做。为了有效地开展相关的毕业设计课题,在学生的选择上往往优先推荐让学习相对努力的、有兴趣和求知欲的以及未来将继续深造或从事相关科研工作的学生来进行。 (2)课题的选择 在本科教学阶段,由于受限于书本和教学大纲的安排,教师在对流体力学、传热学等课程的讲授中往往较少涉及数值计算相关知识,书本上只有一章内容与之相关,课堂上一般只传授数值计算的基本概念、简单情况下的离散方法、离散方程的建立等较为浅显的知识,这与FLUENT软件中对相应问题处理方法的深度和难度相去甚远;然而,在毕业设计的短短一学期时间内,要让学生完全掌握相关知识是比较牵强的。因此,在FLUENT软件工程计算相关课题的选择上,应选择相对基础性的、与实践结合紧密的、具有科研应用前景的课题作为毕业设计课题。这样既可保证毕业设计工作的正常开展,也能使学生在软件方面得到基本训练,为后续科研工作以及研究生阶段的学习打下良好的基础。 (3)指导过程中的问题 在毕业设计的指导过程中,笔者发现有部分学生在使用软件进行计算时,较为注重结果的可视化,而恰恰对计算中关键参数的设置、计算方法的选择等关键问题较为忽视。造成该现象的原因可能是,无论在软件中设置怎样的参数、选择怎样的计算方法,总能通过软件的计算得到一个可视化的结果,即使参数设置或计算方法的选择欠妥或有误,只要计算过程没有脱离现实太远,计算结果看上去都有一定的可信度,再加上学生对具体计算过程的“不求甚解”、不仔细推敲,往往易使人误认为该计算过程是正确的。因此,在指导过程中,应对学生使用软件的具体计算过程进行仔细地把关,确保计算过程和结果的正确性。 3.毕业设计算例 算例一:建筑空心砌块传热问题 图1a为所需计算的典型建筑空心砌块的尺寸标注图。该砌块是某典型普通混凝土空心砌块,三排孔结构,每排均由大小相等的两个孔组成,孔厚30mm。热量由室外侧(左侧)传向室内侧(右侧),室外侧为稳态或非稳态热边界条件,室内侧为稳态热边界条件。 图1b为数值计算得到的该砌块传热的某时刻温度分布图。可以看到,温度从左到右大体上呈现由高到低的分布状况。由于空心砌块为非均质构件,砌块材料的热导率与空气层的当量热导率不相等,造成了内部等温线的非均匀分布。 (a)空心砌块结构俯视图(单位:mm) (b)典型砌块温度分布图 图1 空心砌块结构俯视图 算例二:加气混凝土墙体结露问题判断 待计算的房屋的加气混凝土自保温墙体结构类型如图2所示,图中的B05表示型号为B05的加气混凝土砌块。计算中,加气混凝土砌块可以认为是热均质结构,这样导热系数相对较高的混凝土柱或梁便成为了结构体系中的热桥。由图3、图4可以看到,加气混凝土自保温墙体内表面温度最低点均发生在热桥部位室内表面宽度的中心处或阴角处。将该处的温度与当地室内空气的露点温度相比较,既可判断是否会产生结露现象。 图2 框架结构房屋自保温墙体结构 图3 B05厚度为50 mm墙体的温度场 图4 B05厚度为100 mm墙体的温度场 4.总结 利用FLUENT软件对实际工程问题进行数值计算,大大节约了经济开支和时间成本,也为学生对本领域的传热和流动问题的解决提供了有效手段,夯实了学生的理论基础,增强了其解决问题的能力。通过与从事相关毕业设计课题的学生的交流得知,学习FLUENT软件的工程计算对学生更好地掌握相关物理过程起到了很好的帮助作用,拓宽了学生的视野,也提高了学生对相关问题的兴趣,有助于提高他们的专业竞争力。由于兴趣的作用,采用FLUENT软件进行工程计算的学生的毕业设计得分总体较进行其它课题的学生的得分高约15%。由此可见,在做好本文所提及的三点问题(学生和课题的选择、指导过程中的问题)的前提下,在毕业设计中加入FLUENT软件工程计算相关课题不仅可行,还值得在一定范围内推广。 软件毕业设计论文:高职院校软件专业毕业设计 问题分析与改进建议 摘 要:高职院校毕业设计中存在着一些问题,例如,课题质量不高、学生在校外实习、课题与就业方向不符等。这些问题的产生是因为学生不重视毕业设计,进而导致设计质量下滑。针对毕业设计中出现的问题,笔者以高校管理者与指导教师的视角,对毕业设计制、学生及指导教师进行了深入调研,并且提出了改进方法。 关键词:高职院校 毕业设计 不重视 改进 1 前言 毕业设计是学生综合运用所学知识解决实际问题的环节,其质量直接关系到本专业人才培养水平。大多数高职院校的毕业设计放在最后一个学期,导师基本由校内教师担任。但最后一年学生把重心放到对自己未来更有影响的就业上,或是参加专升本寻求深造机会,校内导师被迫远程指导,缺乏监督力度。同时,设计课题内涵良莠不齐,部分课题不符合社会需求,让学生感觉实用性不强,学生不重视,进而质量下滑,降低了教学水平。因此,我们有必要通过调研发现问题、分析问题,进而解决问题。 2 现状调查 对重庆5所高职院校部分教师及所带学生进行了问卷调查。样本中包含200名毕业生、50名指导教师。数据如下: 3 调研问题分析 影响质量的主要因素有学生不重视,学生不能在校设计。需要分析学生为什么会不重视,并剖析其不能在校设计的原因。 3.1 课题内涵与需求有偏差 如表1所示,课题与学生工作方向是否吻合,以及是否一志愿选题,对成绩影响较大。调研中发现:部分学生毕业后从事Java开发,而选题时选了C#开发(选题先于实习);部分学生毕业后从事非IT工作,从而对所选课题丧失兴趣;部分学生单位实习后技能提升,回过头发现课题内涵与商业开发存在差距。此外,部分学生未能选中一志愿课题,调配课题与期望不一致,所以就抱着对付一下的心态。综上,课题本身质量是影响学生最后设计成绩的重要因素。 3.2 设计时间安排不合理 表1及表2的数据充分证明,不合理的时间安排,是导致质量下滑的重要原因。最后一个学期是找工作的关键期,在就业压力下学生忙于参加招聘会和面试。找到工作后,用人单位往往还要求到岗实习。同时,最后一学期也是专升本的关键期,寻求深造的学生亦会忙于复习参考;另有学生为提高竞争力,会选择参加推荐工作的技能培训;这都是造成学生不重视以及不能在校实习的重要原因。 3.3 自拟课题质量偏低 表3数据分证明,对外承接工程,或教师科研需要课题,具有充分驱动力可让教师在课题建设中投入更多精力,进而提高了课题与社会生产的适应性,提升课题的科学性和实践性。自拟课题往往是为了毕业设计而设定的课题,教师缺乏动力对课题进行改进,易与社会脱节。表3的统计数据也证明了选择自拟题目的学生,其优良成绩的比率显著低于其他学生。 3.4 其他因素 沟通不畅:师生双方无法面对面地沟通,存在着教师因工作忙碌疏于督促,或学生缺乏主动性的情况。(1)教师经验缺乏,高校中具有丰富项目经验的教师本来就比较少,近年又引入了大批年轻教师,这些教师毕业后直接从事教学,更缺乏项目开发经验,在指导中明显表现出不足。(2)优秀教师任务重,优秀指导教师既要承担毕业设计指导工作,又要进行繁重的教学任务,容易顾此失彼。 4 问题整改建议 4.1 加强课题库建设 课题分为对外承接工程、科研需要、自拟等几个类别。对自拟课题,须经学校专家组评审及指导,以增强与生产实践的联动性。增大来自对外承接工程及科研需要类课题,这类课题具有较强实践性,教师出于自身利益,也会对课题投入更多精力,对学生的要求也会严格,这必然提高设计质量。另外,考虑到学生未来就业不同,宜对课题难度适当分档。对不同档次的课题,设置起评成绩;有志于投身IT行业的,可选中高难度;其他学生可针对性地选择适合自己的课题。 4.2 改进设计模式,消除时间冲突 在设置课题时,要确定本专业所针对的主要就业岗位,以及岗位所需技能,再结合实际选择对应实训项目,作为本专业学生大学期间不同实践课程教学项目。学生在专业课教师的系统指导下,逐渐完成毕业设计的雏形,在最后一个学期里,再根据学生就业实际情况,予以整合,就成为了一篇具有一定质量的毕业设计。如此,不仅降低了最后一个学期的工作压力,还提升了学生在校期间教学质量。 4.3 加强指导教师能力建设 在毕业设计中,教师要加强对学生的监督与管理,可采用如定期开见面会、网上探讨等方式,学生将设计中遇到的问题、取得的成果等汇报给教师以便教师对学生情况进行分析指导。组织教师参加校内外专业培训,提高教师理论水平和实践能力。招聘教师时,倾向于在企业从事过一线工作、既有学历又有工作经验的人员,更好地将学校的理论知识与企业所需要的专业技能相结合。 5 总结与展望 毕业设计是十分重要的环节,应注重课题的针对性与适用性,使毕业设计内容与学生毕业后所从事的技术岗位相一致。同时,我们也需要加强毕业设计的机制建设,让设计贯穿整个大学教育,减少最后一学期压力。注重对教师的培养,提升指导技巧和技能。只有这样才能培养出符合社会发展、受用人单位欢迎的人才。 软件毕业设计论文:应用型本科软件专业毕业设计(论文) 质量保证体系的研究 [摘要]毕业设计是本科生培养中最重要的实践教学环节。本文针对“卓越工程师培养计划”中工程和创新的培养目标,结合“卓越计划”的“3+1”的“1”的实施,对毕业设计进行改革,通过2级毕业设计的实践,毕业设计的改革效果较好。 [关键词]毕业设计质量保证体系卓越工程师 一、前言 本科院校在对学生整个教育教学计划中,应用性本科软件专业毕业设计(论文)是学生大学生活的总结,也是在实践教育方面的最后一个环节。 目前,本科毕业设计中大学生对自己的毕业设计能够自主把握的空间十分有限,设计主体部分严重脱离工程实际情况,依靠以往经验、书本知识、网络信息等方式获得的信息量占据了信息总量的大部分,这不仅仅是因为学生或者导师愿意去投机取巧,也跟毕业设计活动经费的短缺和时间的不充足有着直接关系。纵观高校的工程教师队伍,他们自身的实践经验也很难保证做到将现实生活的实际问题引用到本科毕业设计中并展开工作。这就产生了一种很不好的现象,毕业设计的题目往往都是重复使用多次的,好一点的可能也只是简单的变化。本科毕业设计对于学生能力的培养和综合素质的提高帮助不大,在毕业后的工作实践中,学生的创新工程能力单薄的缺陷就会凸显出来,没有办法满足现代工业发展对人才的需求。高校的这种与社会需求严重脱节的现象必须要尽快解决,校内教育与科研、社会实践要在整个高校学习教育中相结合展开进行,才能满足社会新的需求。 二、卓越视野下软件工程专业毕业设计(论文)质量保证体系的构建 (一)加强校外实习基地的建设 卓越工程师的“3+1”培养方案中,“1”年的实践环节完成的好坏,很大程度取决于实习基地的建设。为了卓越工程的顺利设施,计算机学院已经与企业建立了广泛的联系,目前已经建成的实习基地有:塔塔信息技术(上海)有限公司、上海启明软件股份有限公司、上海京颐信息科技有限公司和上海文思信息技术有限公司;上海屹为信息技术有限公司;谷儒(上海)网络技术有限公司;曼恒蔚图软件技术有限公司;用友软件公司等。这些实习基地的建设,为毕业设计的课题来自生产第一线,提供了强有力的保证。 (二)建设高水平的“双师型”的毕业设计指导队伍 我们采取两种模式共同进行:一是坚持教师队伍“专任和非专任”结合。专任教师主要是以长期在工程现场实践或者有较好科研成果的教师组成;非专任教师主要是从合作单位企业聘任高水平工程师来校做兼职教师。二是加强“双师型”师资队伍建设。双师即“教师”、“工程师”,首先要加强对一线教师的工程能力素养和工程实践能力的培养,以满足在毕业设计指导过程中对教师综合能力的需求。另一方面,我们在聘请教师方面有侧重点,优先录取有企业工作经验的兼职教师,来提升有工程实践经历的教师在整个专业课教师中的比例。为了最大化地为毕业设计服务,学校还从企业聘请工程师或者让一线教师到企业参加工程实践活动等手段,致力于打造为毕业设计服务的精锐之师。 (三)严把选题关 毕业设计的题目,一般来自企业。由企业指导教师提出,经企业指导教师和学校指导教师共同商量后确定。选题要结合学生在企业实习的项目,注重实践性和创新能力的培养,同时题目应难易适中,切实可行,工作量适宜。 (四)注重教师的指导过程 选题完成后,企业指导教师下达任务书、指导学生确定毕业设计方案。在学生做毕业设计的过程中,企业教师负责具体的技术指导,学校指导教师负责时间节点的把握,协助企业教师完成对学生的共同指导。 (五)建立有效的沟通联系制度 由于本科生初次接触整体性和设计性较强的工作,肯定会遇到这样那样的问题。这时,建立有效的沟通制度,发挥指导教师的引导作用就显得非常重要。学生把毕业设计中遇到的问题,向指导教师提出,由企业指导教师和学校指导教师共同商量解决的办法。在毕业设计的过程中,应建立指导教师与学生讨论的例会制度,坚持每周师生沟通一次。每位学生总结前一阶段的工作,提出毕业设计中遇到的问题,指导教师要进行引导和总结,鼓励学生发挥主观能动性和创造力。这样,指导教师可以及时掌握学生毕业设计的进展情况。 (六)做好毕业设计的过程检查与中期检查 对本科生的毕业设计工作的中期检查,要坚持中前期和中后期两次检查。检查的形式是学生以PPT方式汇报自己目前毕业设计的进展情况,并回答老师的提问。对中期检查发现的问题,企业和学校的指导教师共同商量解决的方法。 (七)毕业设计(论文)答辩 答辩的地点一般设置在学生的实习企业,答辩委员会由企业指导老师和学校指导教师共同组成。每位学生的毕业设计答辩采用PPT形式进行汇报,对一些条件许可的企业,要有毕业设计的演示。 (八)以过程管理思想为指导,构建“方法-时间-层次”三维毕业设计质量监控体系 通过健全机构、合理资源配置、完善工作机制、强化毕业设计质量监控体系的毕业设计运行监控、毕业设计指导决策、毕业设计质量考核评价、毕业设计信息反馈功能,见图1。 三、结语 软件专业是一门实践性很强的专业。要想在短时间内较高质量地完成毕业设计,选题是一个很重要的环节。为了提高学生的做毕业设计的兴趣,高质量完成毕业设计,课题选择来自一线企业,显得非常重要。同时,建立一个毕业设计的保障体系,使得毕业设计在进行的过程中,质量能够得到保证。经过两届的毕业设计实践探索,学生做来自一线企业的毕业设计题目的兴趣很大,而且毕业设计的质量得到很大的提高。 软件毕业设计论文:《软件工程》思想在毕业设计(论文)中的应用 【摘要】主要分析了毕业设计(论文)的现状,介绍了软件生命周期的各个阶段与毕业设计(论文)各阶段的对应关系、软件生命周期各阶段应完成的任务以及在毕业设计(论文)中应注意的问题。 【关键词】软件工程 毕业设计(论文) 实践教学 一、引言 毕业设计(论文)(以下简称毕业设计)是计算机及相关专业教学计划中的一个重要环节,是培养学生对所学基本理论及基本操作技能综合运用的训练过程,是提高学生分析和解决问题能力的重要实践环节,是实现理论与实践相结合的重要途径,是对教育教学质量的全面检查。目前,计算机及相关专业的毕业设计质量正在逐年下降:学生急于找工作或考研,毕业设计得不到应有的重视;需求分析不到位,设计成果不符合实际需求;软件开发流程混乱;缺乏文档写作训练,等等。 针对上述问题,笔者认为,除了应当从管理角度严格进行过程监控外,还应当使学生通过《软件工程》课程的学习,提高毕业设计的质量。 二、软件生命周期与毕业设计过程的对应关系 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件的生命周期。软件生命周期可以划分成若干个时期与阶段,它与毕业设计各个环节的对应关系如图1所示。 三、软件生存周期各阶段应完成的任务 1.可行性研究与计划阶段、需求分析阶段 可行性研究与计划阶段主要完成问题的定义、可行性论证以及初步计划的制定;需求分析阶段主要完成需求调查,进行功能、性能与环境约束分析;编制软件需求规格说明、制定软件系统的确认测试准则和用户手册概要。这两个阶段对应于毕业设计的课题论证、选题、调研、查资料,通过对设计题目的深刻理解,完成开题报告的撰写工作。 2.概要设计阶段和详细设计阶段 概要设计阶段主要完成软件系统总体结构的建立、定义功能模块的接口、设计全局数据库和数据结构、规定设计约束、编制概要设计文档等工作;详细设计阶段主要完成模块详细设计及编制模块的详细规格说明工作。包括模块的详细功能、算法、数据结构和模块间的接口信息等设计,拟定模块测试方案;把模块详细设计的结果汇总,形成模块详细规格说明书。这两个阶段对应于毕业设计的系统设计阶段。 3.实现阶段与组装测试阶段 实现阶段主要完成编码及单元测试工作。根据模块详细规格说明书,将详细设计转化为程序代码、对模块程序进行测试,验证模块功能及接口与详细设计文档的一致性,并形成单元测试报告;组装测试阶段主要完成模块程序组装与测试及组装测试报告的编写。 4.确认测试阶段 该阶段主要完成软件系统测试、确认测试文档编制及软件评审工作。根据软件需求规格说明定义的全部功能和性能要求及软件确认测试准则对软件系统进行总测试;向用户提供以确认测试报告为主的有关文档,包括系统操作手册、源程序清单和项目开发总结报告等;由专家、用户、软件开发人员组成的软件评审小组对软件确认报告、测试结果和软件进行评审,并将得到确认的软件产品交付用户使用。这个阶段主要对应于毕业设计(论文)中的论文评审、结题验收及毕业设计的答辨准备阶段。 5.软件运行与维护阶段 主要进入软件的使用阶段,并完成软件的维护工作。它主要对应于毕业设计中的答辩阶段。 四、毕业设计应注意的几个问题 1.摘要 摘要是对文章主要内容的摘录,要求精、短、完整。以几十字至三百字左右为宜。摘要应具有独立性和自明性,从摘要中即应获得必要的信息;摘要中只能使用第三人称;要客观如实地反应原文的内容,要着重反映论文的最新内容和作者特别强调的观点;要求结构严谨、语义确切、表述简明,一般不分段落、不进行自我评价。 2.关键词 关键词主要用于论文检索,它是从论文的题名、摘要和正文中选出的,是对表述论文的中心内容有实质意义的词汇,关键词一般以3~5个为宜。 3.结论 结论写作的内容应主要考虑本文研究结果是什么?研究结果说明了什么?对前人有关的看法作了哪些修正、补充、发展、证实或否定?本文研究的不足之处或遗留未予解决的问题以及对解决这些问题的可能的关键点和方向等。结论应该准确、完整、明确、精练。 4.需求分析 在毕业设计中,学生往往不能对所做题目进行充分的调研,需求不明确,随意想象的成分较多。特别是在数据表的建立上,大部分同学随意设置字段的类型,而字段长度基本上采用默认置。而在实际项目开发中,数据项的设置应主要注意以用户的需求和满足系统要求为准,而不应设计冗余的字段;数据的类型要依据实际需求,当某些字段可以是选择某几种类型之一,应考虑哪一种更有利于本系统或哪种更易于用户操作和维护。 5.详细设计 许多同学把详细设计阶段的任务理解为代码实现,因此,在概要设计之后就着手进行代码的编写而忽略了算法的表达及测试用例的编写环节,由此造成的结果是随意编程,大量的时间浪费在程序的修改和调试上。 6.软件测试 测试做得不够全面,大部分同学只选择了有效的测试用例,而没有进行无效的测试用例的设计,因此所做的软件BUG较多。 7.团队合作 在毕业设计中,应有意识地锻炼学生们的团队协作精神,因此,在布置毕业设计题目时,应尽量选择规模大一点的题目,然后由4~5名同学共同协作,每人完成一个子题目。这样,可以使学生们分析问题和解决问题的能力、沟通和表达能力得到充分锻炼,为今后的工作奠定基础。 软件毕业设计论文:软件工程专业本科毕业设计过程管理 摘要:分析软件工程专业本科毕业设计管理中存在的主要问题,针对软件企业对软件工程专业的人才培养要求,提出软件工程专业本科毕业设计过程管理措施,强调通过建立和完善毕业设计的管理制度,加强毕业设计过程的监控;构建完善的毕业设计管理平台,提高本科毕业设计管理水平;改革毕业论文形式,建立毕业设计过程管理评价体系,提高学生工程实践能力。 关键词:软件工程;本科毕业设计;过程管理 软件学院软件工程专业的设立是国家教育部、国家发展计划委员会为满足国家软件产业发展对人才的迫切需求于2001年批准成立的。重庆大学软件学院是国家首批示范性软件学院之一,其人才培养目标是培养“面向应用、遵循标准、适应团队、把握技术、熟知领域、外语优良”的软件工程人才。10年来,软件学院十分重视软件工程专业的工程化教学改革,采取多项政策和措施促进工程型软件实用人才的培养。本科毕业设计是实现高等学校人才培养目标的重要教学环节,是培养学生创新意识和创新能力的重要手段,是理论学习与社会实践相结合的重要体现。因此,对软件工程专业本科毕业设计进行改革,培养具有工程实践能力的软件实用人才具有重要意义。 1 软件企业对软件工程专业培养人才的要求 软件产业的迅速发展对该行业从业人员提出更高要求,不仅要求学生掌握理论知识,还要求学生具备较强的工程实践能力与创新能力。国内计算机相关专业的教学基本上仍使用传统的理工科人才培养模式,注重基础理论知识,缺少对学生工程能力和职业素质的训练,因此培养既有扎实的专业基础知识和较强工程实践能力,又能迅速适应业界环境的高素质创新型软件人才,是软件企业对软件工程专业人才培养的要求。 2 目前本科毕业设计管理中存在的问题 1)毕业设计阶段缺乏全过程的管理与监控。 毕业设计全过程的管理与监控不够规范,缺乏专门的组织机构。毕业设计的一些主要环节疏于检查和监督,因此存在影响毕业设计质量的问题,如选题陈旧、重复率高、与软件产业发展需求不适合等。 教师指导水平有限且精力投入不足,同时没有对教师指导工作的有效绩效考核,使得教师对学生的毕业设计不够重视;某些学生由于有就业压力,便将主要精力放在人才市场和各类招聘会上,没有意识到毕业设计的重要性,最后只能通过拼凑和抄袭完成毕业设计。 2)毕业设计阶段缺乏规范化的指导性文件。 毕业设计工作持续时间长,涉及所有毕业生和教师,如果没有规范化的指导性文件能够让指导教师和学生了解毕业设计工作的意义、目标、计划、流程、论文规范化格式、质量评价标准、成绩考核等具体实施细则,明确自己在该项工作中扮演的角色以及整个毕业设计流程对自身承担工作的质量要求,那么很难提高毕业设计质量。 3)毕业设计文档资料缺乏有效管理。 毕业设计成果是学校的重要知识和信息资源,完善的文档资料管理有助于毕业设计工作的传承和创新。长久以来,毕业设计作品和论文主要采用人工管理。学生答辩后提交资料袋,资料袋中包括毕业设计相关文档和设计作品的刻录光盘,但由于管理人员对毕业设计资料的重视程度不够或人员不够,导致毕业设计资料管理不善,出现查询困难、答辩记录丢失等情况,为以后查阅、成果展示及下届毕业生的论文指导工作带来不便。 3 本科毕业设计管理改革措施 1)成立毕业设计管理小组。 为了加强本科毕业设计工作的组织、管理和监督,软件学院专门成立毕业设计管理小组,小组成员由教学副院长、正副系主任及学生助管组成,负责整个毕业设计过程的管理监督工作,包括从选题、审题、任务书下达到开题、中期检查、答辩、成绩评定、推优的全过程。 2)建立和完善毕业设计的管理制度。 为了提高毕业设计质量,毕业设计管理小组根据软件工程专业特点建立学院的具体工作规范和有效的毕业设计管理模式和监控制度,加强毕业设计制度建设,使得从选题、下达任务书到学生的开题报告,从每周汇报、中期检查到设计文档撰写、论文撰写、论文重复率监测、论文评阅及论文答辩,都有切实可行的实施细则及管理规章制度;构建集中管理与跟踪管理、周报提交、外出请假、抄袭检测、讲座出勤等平时成绩评定标准;完善从平时表现、系统设计实现质量、论文或设计文档质量、答辩水平等多方面衡量的客观、公正的综合成绩评定标准和推优程序。在毕业设计全过程管理中,力求做到有章可循及有据可查。 3)多元化的毕业论文形式。 多元化的毕业论文形式有利于培养大学生创新实践能力。根据软件工程专业特点,软件学院对毕业论文形式进行改革。毕业设计形式包括传统方式和新方式,学生可以选择其中一种方式,具体采用哪种方式则由指导老师负责。 传统方式是指毕业生完成开题报告并翻译一篇相关课题的英文文献,然后对软件系统进行需求分析、设计和编码实现,或者对相应算法进行研究、分析和编码实现,最后完成毕业设计论文。 为了面向软件企业需求,培养学生的软件设计能力,新方式注重提高学生的系统设计文档编写能力。毕业生前期仍然要完成开题报告、英文文献、系统分析设计和编码,最后提交系统设计相关文档。系统设计相关文档由以下文档构成:①项目开发计划;②软件需求说明;③系统设计说明;④数据库设计说明;⑤用户手册;⑥测试分析报告;⑦项目开发总结。根据软件工程学科特点及专业人才培养的要求,结合学校的毕业设计(论文)管理办法和软件设计文档国家标准,软件学院制定了符合专业人才培养目标的设计文档规范。 为提高学生科技论文写作水平和研究报告的演讲能力,软件学院面向软件工程专业所有应届毕业生,在其毕业设计阶段开设8学时的“科技论文写作规范”“研究报告演讲技巧”讲座,强调科技论文写作的规范性和可读性,锻炼学生演讲研究报告的能力。 4)加强毕业设计过程管理和监控。 毕业设计过程管理和监控面向的对象是学生和教师。软件学院毕业学生做毕业设计有不同情况,如有在校外软件公司做毕业设计的,更多的是在校内做毕业设计,因此需要有相应的不同管理模式。为加强学生培养质量和降低指导教师管理难度,软件学院提供集中管理与跟踪管理方式。 集中管理是指学院设置固定机房和机位并安排助教作为管理人员,由指导教师给学生安排机房,由管理人员负责学生的日常考勤,学生需及时向指导老师汇报学习情况,学生若有事必须请假。跟踪管理主要针对在校外进行毕业设计的学生,要求这类学生完成校外毕业设计申请,由管理小组协助指导教师对校外学生进行跟踪,为这些学生提供及时的毕业设计信息服务。这类学生必须每周与学校指导教师联系,以便教师详细了解并掌握学生毕业设计进度。这种具体的制度和规范,对在校内进行毕业设计和赴外进行毕业设计的学生进行了有效监控。 针对指导教师的管理,毕业设计管理小组采用不定期检查和周报提交的方式。毕业设计规范要求每位指导教师每周指导时间不少于2小时,指导教师需要检查学生毕业设计的进度和质量;解答学生提出的问题,进行下一阶段工作部署与指导,保证毕业设计的质量。 不定期检查指毕业设计管理小组根据指导教师在毕业设计系统中登记的指导时间和地点,不定期对教师的指导情况进行检查。周报提交是指学院建立的毕业设计定期报告制度,教师和学生每周均需要将周报提交到系统上,教师主要汇报每周对学生指导情况以及学生毕业设计进度和质量,学生主要汇报每周的毕业设计进度、毕业设计遇到的问题等。毕业设计管理小组每周对周报进行汇总分析并,及时了解毕业设计情况,对学生和教师提出的问题进行统一解答。 5)构建完善的毕业设计管理平台。 充分利用计算机技术,构建完善的毕业设计管理平台,提高毕业设计管理水平,使毕业设计管理更加规范化。软件学院在毕业设计过程中使用的管理系统包括:重庆大学本科毕业设计系统、重庆大学网络教学综合系统、重庆大学软件学院软件工程实践教学平台。 重庆大学本科毕业设计系统用来上传和管理毕业设计相关文档。系统涵盖毕业设计工作的全过程,实现选题提交、课题双向选择、毕业设计相关文档(包括开题报告、外文翻译和毕业论文)的提交与管理、文档模板的上传和下载、毕业答辩的自动分组、指导教师和交叉教师评分、答辩记录和成绩的上传、成绩册的打印、毕业成绩的统计分析等功能。 重庆大学网络教学综合系统。用于毕业设计的过程管理,主要进行信息、周报收集、校外学生实习申请、过程检查情况公告、问卷调查、学生成果提交和查询等。 重庆大学软件学院软件工程实践教学平台是软件人才培养创新平台,提供实践教学成果展示、实践案例资源库与实践教学管理功能。利用该平台可以举办毕业设计优秀作品展,展示软件学院学生的专业学习水平,激发学生的实践热情,对下一届学生起到示范作用。平台实践案例资源库可为学生提供实践学习参考资源,为教师提供实践教学案例素材。 6)建立毕业设计过程管理评价体系。 建立毕业设计过程管理评价体系,要求所有 一学生和指导老师每周都要将周报提交到EOL(重庆大学网络教学综合平台)平台。毕业设计管理小组每周对毕业设计情况进行检查和监督,并将检查情况告知所有指导老师。指导老师每周提交周报次数与毕业设计指导工作量挂钩;学生考勤情况、周报提交情况、平时检查情况会被记入平时成绩,平时成绩不合格将被取消答辩资格。 软件学院强调学生在毕业设计期间一定要进行软件系统设计和实现,毕业答辩包括系统演示、用PPT讲解毕业设计主要工作、答辩教师提问等多环节,答辩老师根据学生工作量、完成质量、论文或设计文档质量、答辩情况进行评分。学生毕业设计的最终成绩由平时成绩、指导教师成绩、交叉评阅成绩和答辩成绩构成,以保证评分的公平性。 7)加强诚信机制建设 为了提高本科毕业设计质量,加强学术道德和学风建设,营造学术诚信氛围,软件学院使用“大学生论文抄袭检测系统”对本科毕业论文进行防抄袭检测。抽检比例为应届毕业论文的50%,抽检名单由毕业论文管理系统随机抽取。另外,各答辩小组推荐的优秀毕业论文为必检对象。 软件学院制定论文抄袭的认定标准(建议文字复制比不超过25%)和处理办法,对有问题的论文,责成指导教师对检测结果予以认定和说明或督促学生修改,取消被认定抄袭论文学生的答辩资格;对各答辩小组推荐的优秀毕业论文进行,不合格的论文取消优秀。 4 结语 培养适应我国软件产业发展的软件工程人才,提高软件工程本科毕业设计质量,毕业设计的改革势在必行。通过2届学生的毕业设计改革证明,建立和完善毕业设计的管理制度,加强毕业设计过程的监控,充分利用毕业设计管理平台,实现多元化的毕业论文形式,建立合理的毕业设计过程管理评价体系,加强诚信机制建设,能极大地促进师生在毕业设计过程中投入热情和精力,提高本科毕业设计管理水平,有效保证毕业设计质量。 软件毕业设计论文:Ant在软件开发型毕业设计中的应用 [摘要]该文结合实际指导计算机专业毕业设计过程中的体会,提出如何利用Ant工具软件来为软件开发型毕业设计服务,以提高学生的实际动手能力。 [关键词]Ant 计算机 毕业设计 一、计算机专业毕业设计的性质 计算机专业毕业设计工作是高等院校计算机人才培养计划的重要组成部分,是对学生专业知识、综合素质和实际能力训练的重要阶段,是人才培养质量的重要体现,是学生学习、研究与实践成果的全面总结。 二、软件开发型毕业设计中存在的问题 计算机专业的毕业设计主要分为软件开发型毕业设计和基础研究型毕业设计两种类型,本文探讨的是第一种类型。在软件开发型毕业设计答辩过程中,学生需要结合自己的设计实现来讲述设计实现思路及过程,这要求学生需提前部署好自己的软件作品,而答辩时所用计算机一般而言是由答辩单位提供的,只具备软件的运行环境并不负责安装相应的集成开发工具,而学生平时主要是利用集成开发工具来进行开发,一旦脱离了开发工具往往不知所措,这就违背了毕业设计的宗旨。 三、Ant在软件开发型毕业设计中的应用 Ant是一款软件项目构建工具软件,能够让我们采用定制的方式对开发出来的项目进行编译、打包和测试,更重要的是这些工作可以脱离具体的开发工具来进行,这非常适合在毕业答辩时缺少开发工具的情况下进行应急处理。下面利用一个Java类毕业设计项目为例简述Ant的具体应用。 1.安装Ant软件 到Ant的官方网站下载最新版的Ant二进制版本,它是一个扩展名为zip的文件,本文使用的是Ant 1.8版。下载后解压到某个文件夹中,例如c:\\ant_1.8,并创建一个名为ANT_HOME的环境变量,变量值设为刚才解压到的目的文件夹名,本例中即为c:\\ant_1.8(后面用%ANT_HOME%指代该文件夹),同时将%ANT_HOME%/bin文件夹加入到Path环境变量中。以上步骤需要提前安装配置好JDK环境后再进行,JDK环境安装配置在这里略过。 2.创建构建文件 构建文件相当于一个计划书,整个构建活动是严格按照构建文件的内容来进行的,所以构建文件的创建是整个构建活动的核心。构建文件是XML类型的,这不仅是因为该类型是一种通用的描述语言,更主要的是Java中提供了相当丰富的操作XML类型文件的API。创建的构建文件最好命名为build.xml,并将该文件放入工程所在文件夹中。下面阐述一下构建文件的书写规则。 首先,在构建文件中创建一个工程标签用来标识该构建项目,例如本文中构建的项目名称是TankWar ,则创建标签,其中name属性代表的就是项目名称;default指的是要执行的目标名称,所谓的目标就是要完成的任务,在这里任务名为compile,这个任务的定义在后面会有说明;basedir代表工程的根文件夹,一般设为.即当前文件夹即可。 其次,定义属性标签,定义属性其实就是定义在构建文件中要使用的变量,例如该项目要构建的项目源码位于src文件夹中,构建后的文件保存到build/class文件夹中,这时我们就可以定义“src.dir”和“build.class”两个属性变量来指代这两个文件夹,以后假设更改了文件夹名只需修改属性名即可,对应的标签如下所示: 上面${ }中括起来的是已定义的属性名,该使用方式相当于引用变量。 然后创建目标标签,目标即我们要执行的具体任务,一个工程中可以包含多个任务。假设我们执行三项任务分别是创建文件夹、清除文件夹中已有内容及编译源代码,则定义的标签如下所示: 创建文件夹 清除文件夹中已有内容 编译源代码 //name属性所指明的任务即是前面工程标签中default属性的设定值,depends属性指明一种依赖关系,表示此任务必须等待第一个任务完成后才能进行。 3.运行Ant 在命令提示符下输入ant,系统将自动执行build.xml构建文件并完成构建文件中所定义的任务。 四、总结 以上是利用Ant工具软件在软件开发型毕业设计中的应用实例,除了在Java开发平台中有Ant工具外,另一个重要的开发平台,Net平台也有相应Ant工具。由于学生在利用Ant进行软件构建时是脱离了软件开发工具的帮助,所以需要了解更多深层的知识,这无形之中也加深了学生对软件开发型毕业设计的理解,同时在配置Ant环境时需要自己不断地尝试,也锻炼了学生的动手能力,因此将Ant应用到软件开发型毕业设计中对于学生而言是非常有益的。 软件毕业设计论文:计算机软件专业毕业设计探析 提要毕业设计是高职计算机软件专业培养就业型高技能“蓝领”人才的关键环节之一。本文就毕业设计的选题、毕业设计的管理、毕业设计各环节的把握等方面,探讨如何加强和改进高职院校计算机软件专业的毕业设计,以培养出社会所需的计算机软件开发高技能型人才。 关键词:高职院校;毕业设计;软件开发 毕业设计是高职学生由在校学习到参加工作之间的、十分关键的综合教学环节,是毕业前的一次重要的系统实践训练,也是对高职院校的教学管理、师资水平和学生综合素质的集中体现和检验。这个环节把握得好,对学生就业有很大的帮助。实践证明,毕业设计是计算机软件各相关专业理论教学、实验、实训等有机结合的最佳途径之一。笔者多年来一直从事高职计算机软件专业的毕业设计指导工作,经过长期的实践和探索,同时吸取他人经验,对毕业设计工作有如下的认识。 一、毕业设计的选题 选题是毕业设计的第一步,也是非常重要的一步,包括教师选题和学生自选题两种。高职计算机软件专业实现毕业设计的途径和空间是多种多样的,只要有研究开发的环境即可。可以在学校内部组织开展,也可以走出去,到企业、到社会中去完成。例如,校企合作、产学研结合是高职毕业设计实现开放性的有效途径。一是学生到企业、公司实际工作中去,运用所学知识和单位的短期培养,按规定格式和要求写出总结报告或毕业论文,或在参与实际项目设计中完成设计,采取校内指导老师和企业指导人员共同指导学生的毕业设计,在我院的软件专业这种形式的设计占到了近1/3;二是充分挖掘校内资源,寻求多种途径开展毕业设计。例如,参与教师的科研项目,承担部分任务;主动与学校各部门联系,帮助设计各种中小型信息管理系统,如学生档案管理系统、教务管理系统、后勤水电管理系统、学校图书管理系统等,由各部门根据使用情况进行评价。 选题时的原则主要有:(1)符合专业或大类培养目标、满足教学基本要求,使学生得到比较全面的训练,要尽可能进行有软件工程背景的毕业设计;(2)应尽可能结合生产、科研和实验室建设的实际任务,促进教学、科研和生产进行选题。也可是模拟真实的软件项目课题;(3)应有一定的深度与宽度,工作量饱满,使学生在规定的时间内经过努力能按时完成,并鼓励学生有所创造;(4)毕业设计的选题应面对学院的实际情况,从培养目标出发,充分利用学院的计算机资源和人力资源,力求实现学生掌握知识的实际水平与市场经济的需求相符合。 二、毕业设计的管理 要完成高水平的毕业设计,除了要求毕业设计指导教师提供的选题应是新颖的、实用的、能适合当前社会的市场需求的外,还必须要有严格的毕业设计管理制度相匹配。 1、学生毕业前的上一个学期末,确定指导教师,并进行毕业设计动员。有关教师提供指定格式的、“毕业设计(论文)选题报告”、“毕业设计(论文)自选题目申请书”、“毕业设计(论文)格式、书写规范”等表格供学生填写或参考,其内容包括毕业设计的选题来源、要实施的技术方案、要完成的研究工作、需配备的硬件和软件环境、需要的资金等。其中,还给出近三届本专业学生做过的论文题目,防止重复或抄袭。表格填写后交由教研室集体讨论并提出修改意见,然后由计算机系部与有关指导教师统一审批。再将所有选题和指导教师名单提供给学生,由学生和指导教师进行双向选择,有关部门根据选择情况做适当调整后公布指导教师及学生的对应名单。 2、经统一审查后,指导教师给每一个学生下达“毕业设计(论文)任务书”。指导教师与学生见面时,要针对任务书向学生讲解课题目标、实施方案、需要收集的参考书目、需要自学的内容及应做社会实践活动等,并向学生提供相关网站,让学生自己上网学习有关预备知识。 3、指导教师根据系部的统一安排向学生提供“毕业设计工作进程安排表”。该表包括在毕业设计过程中,安排对学生完成毕业设计需补充的专业知识讲座的内容与时间、上机时间、教师辅导时间、检查时间、完成每一设计步骤的进度要求、毕业设计说明书初稿上交和举行毕业答辩的时间等。学生应根据毕业设计任务书的要求,在毕业设计工作开始一周内写出开题报告,内容主要包括:资料准备情况、设计的思路与期望成果、目标任务的分解、各阶段完成的内容计划等,交由指导教师审查后,再按计划开始设计。毕业设计的时间一般在12周左右。 三、毕业设计过程中的几个重点环节 1、资料查询和实地调查。任何一个课题都是有学科基础或技术基础的。学生在做毕业设计开始,通过进行资料查询,可以了解本选题在相应学科领域中的发展进程和研究方向,特别是近年来的发展趋势和最新成果,然后准备与该题目相关的参考资料。通过与对资料研究成果的比较说明自己的选题是符合当前的研究方向,或是否采用了当前的最新技术并有所改进,以进一步了解选题的意义。值得注意的是,要做好毕业设计,必须阅读一定量的近期中、外文资料,这不仅反映学生的外文阅读能力,而且有助于设计的先进性。高职学生在毕业设计之前进行必要的社会调查,是了解和加深题目理解的另一重要途径。以《企业仓储管理信息系统》这个题目为例,学生可以到实习工厂、中小企业等场所进行实地考察、了解管理信息系统的实际应用状况,通过系统现象的感性认识,逆向推测如何进行模块设计才能实现这些功能。另外,网络查询也是学习、资料查询的重要方式。指导教师要让学生按毕业设计任务书要求深入地了解本毕业设计课题,准备资料,写出文献综述并完成初步的外文翻译任务。 2、制定和论证技术方案。明确所要解决的问题后,就要提出自己解决问题的思路和方案。包括一般的程序设计、数据库设计和网站建设等,应选定编程语言、根据目标提出总体模块设计图、流程草图等,通过比较表明自己方案的价值、方案的创新之处或有新意的思路、算法和关键技术。学生阐述自己的设计方案时,要说明为什么要选择该方案,如何进一步优化数据,不足之处如何得到克服,最后完成的工作具有什么样的性能或达到什么样的水平。 3、充分发挥教师在毕业设计中的引导、辅导作用。教师在整个毕业设计工作中应该起到引导、辅导交流的作用,激励学生有足够的信心完成毕业设计工作,鼓励学生突破旧系统,展开思维的翅膀,尝试别人没有想过或没有做过的工作,注意对学生创新思维的培养。在毕业设计过程中,指导教师布置任务后,要进行具体指导和及时检查。指导教师要注重针对性与适用性,力争使毕业设计内容与学生毕业后所从事的技术岗位对口,使人才培养目标与社会的需求相一致。 4、毕业设计的先期总结和答辩准备。在毕业设计的后期,指导教师应及时进行总结,针对每个成员指出毕业设计过程中的改进之处,提出后期需要进行工作的重点和方向。并发放统一格式的编制设计说明书的有关文档,如毕业设计说明书的装订顺序、目录和正文的格式要求及正文基本结构及毕业答辩应当做的准备工作。指导教师检查资料是否齐全、是否符合规范要求、程序运行有无缺陷及答辩时要注意的问题等,然后做最后的答辩准备。毕业设计答辩开始前三天,学生需上交毕业设计的相关文档和程序资料。文档部分按规定格式装订成册,供答辩委员评阅。 5、毕业答辩、成绩评定。毕业答辩评分要做到客观、公正、公平。人员除本院教师外还聘请企业项目开发人员参与评阅和答辩工作。答辩分数可分为自述、回答问题、论文内容三部分。最后,通过答辩委员会及各位指导教师统一讨论,得出学生的答辩成绩。答辩后,答辩委员会及时总结答辩中遇到的问题,并组织部分同学参加座谈会,了解学生对毕业设计的反馈意见,以备下一届进行设计时加以改进。 四、结束语 高职学生理论基础相对较弱,但实际动手能力并不差。毕业设计给了他们一个良好的提升能力的机会。毕业 设计多选择一些项目单位的实际软件项目,让学生到公司、企业这些项目实际场合进行毕业设计,最好是在生产实际中选择那些真刀真枪的设计题目。经过我院近四届高职计算机软件专业毕业生采取以上方法和环节进行毕业设计实践,已取得较好的效果,学生适应性和实际能力有了很大提高。但也存在不完善的地方,只有通过不断地实践、研究、总结和改进方法,不断地进行毕业设计教学的改革,为培养出计算机软件专业应用型的高技能人才做贡献。 (作者单位:大连水产学院职业技术学院)
软件设计毕业论文:面向服务架构的ERP软件设计新思路 摘要:传统构架下的ERP软件,在实际应用中出现了许多问题。文章介绍了一种新的软件架构方法――面向服务架构(SOA)的理念及其特点,并对面向服务架构的ERP和面向对象架构的ERP分别在体系结构和开发方法上作比较,最后选取SAP公司的NetWeaver和ESA产品设计理念作为案例,进一步阐述了SOA思想在ERP设计中的应用特点和优势。 关键词:面向服务架构(SOA);面向对象架构(OOA);软件设计 0 引言 ERP由最初的财务软件逐渐发展起来,内容越来越丰富,功能也越来越齐全[1]。到目前为止,ERP的产品模式最常见的有两种:通用型ERP和专业型ERP。通用型ERP,顾名思义,是适用于多种行业的套装软件。通过对其进行二次开发、系统配置,达到满足不同行业的管理信息化需求。它的拓展性好、通用性高,成为目前的主流。专业型ERP,也称之为行业型软件,是专门针对某一特定(或相近)行业设计和定制的,便于满足目标行业的个性化管理需求。 但这两种ERP产品都存在各自的缺陷,从而导致了应用实施过程中出现了很多问题,最终以失败告终的案例也不在少数。如通用型ERP,它的优点也正是它缺点所在。通用代表了缺乏个性,流程固化,不能针对不同企业做出有效的变化,只能通过企业进行业务流程再造,来满足ERP产品的需求,忽视了企业的个性化需求;专业型ERP的最大缺陷是它的开发成本高,使企业望而却步,同时适用的企业并不多,所以这种专用型ERP,企业很少主动开发,往往是在目标企业提出某种需求的前提之下,进行定制开发,需要很高的成本。 传统ERP产品存在的这些缺陷,大部分原因是其架构理念的落后,开发方法的局限。现在,面向服务架构(SOA,Service Oriented Architecture)这种新的架构理念被引入到ERP软件的设计与开发中,为传统ERP产品走出困境带来了希望,为ERP领域的又一次革命性的飞跃奠定了基础。 1 面向服务架构SOA 早在1996 年,Gartner Group就已经明确地提出了SOA的理念,但目前尚未有一个统一的、业界广泛接受的定义[2]。IBM的高级软件工程师李珉先生说过,不同行业的人可以从不同的视角来理解SOA,从程序员的角度,SOA是一种全新的开发技术,新的组件模型,比如说Web Service;从架构设计师的角度,SOA就是一种新的设计模式,方法学;从业务分析人员的角度,SOA就是基于标准的业务应用服务。 一般认为:SOA――面向服务架构是一个组件模型,它将应用程序的不同功能单元――服务,通过服务间定义良好的接口和契约联系起来。接口采用中立的方式定义,独立于具体实现服务的硬件平台、操作系统和编程语言,使得构建在这样系统中的服务可以使用统一和标准的方式进行通信。其中服务,是指仅基于两个组件接口之间的契约,由一个组件提供其行为方法给另一个使用。 SOA中一般都包含三个角色:服务的提供者、服务的请求者、服务[3]。三个角色是根据对服务提出不同的需求和行使的不同功能来划分的。它们的关系可以简单理解为:服务的提供者将它提供服务的具体描述在服务,以方便服务的请求者查询;服务的请求者通过对服务搜索,查找到需要的服务及其提供者的地址;最后是服务的提供者与服务的请求者进行直接的绑定,完成服务(见图1)。 举个最简单的例子,我们若要在网上下载一首歌,先可以通过搜索引擎GOOGLE等,搜索可下载这首歌的网站,获知这首歌的免费下载的地址,最后我们直接链接这个地址下载歌。在这个过程,网站即相当于一个服务,我们是服务的请求者,而最后那个下载地址背后的服务器为服务的提供者。 图1SOA 三者关系图 SOA主要特征是将应用程序功能包装成服务,服务间彼此独立,可单独作为组件使用。它具备松散耦合,提供粗粒度的服务和标准化的接口等。SOA旨在提供一个通用的,可互操作的和有弹性的行业标准架构,可以在软件基础架构之上建立一系列可重复利用的服务,实现企业适应业务流程变化的需求。 2 基于SOA的ERP与传统架构下的ERP的比较分析 2.1 ERP传统体系结构和基于SOA的ERP体系结构的区别 传统的ERP软件在其体系结构上可以分为三层:表现层、业务逻辑层和数据库[4]。在这种体系结构下,其客户端访问存在很多的问题。如表现层在访问业务逻辑层的各个业务对象时,一个客户端可能同时访问多个业务对象,一个业务对象也可能同时被多个不同的客户端访问。因此它们之间关系杂乱、复杂,造成层与层之间的耦合性强;表现层与业务逻辑层相互依赖,访问接口不是公开标准的,而是依赖于特定的接口函数,一旦其中的某一层发生改变,其接口函数也要作相应的改变,导致系统地扩展性和维护性差(见图2)。 图2传统ERP体系结构 将SOA思想引入ERP软件的设计开发之后,其传统的三层体系结构,将会在概念上演变为四层结构,包括表现层、服务层、业务逻辑层和数据库。其中,服务层是抽象层,是独立的、由可重用的、基于标准的服务组成。每一个具体的服务包含了接口部分和实现部分,其接口部分定义了服务使用者和服务提供者进行程序访问的契约;实现部分包含了服务作用和商业逻辑等信息(见图3)。 由图3与图2比较可以清楚地看到两者的区别,SOA架构的四层体系结构,客户端并不像传统的体系结构直接调用业务对象实现最终目的,而是通过调用一个独立的服务,服务再调用相关的业务对象去实现最终目的。由于它调用服务的接口包含在服务层内,所以,各个层之间都是独立的、松耦合的,没有很强的依赖性。任何一层发生变化,只要接口不变,不会影响服务的实现,有利于系统地扩展和维护。 因此,设想以SOA思想实现的ERP软件,具备很强的弹性,可以根据不用企业的不同需求进行调整,符合企业的个性化需求,具体会在后面的实例中说明。 图3 SOA四层体系结构 2.2采用SOA和OOA进行ERP软件设计开发的区别 ERP软件发展至今,它的开发方法由最初的面向过程(POA)的开发方法,发展到面向对象(OOA),至现在提出的面向服务(SOA)的开发方法[5]。面向对象的开发方法是目前ERP软件开发中的主流技术,但它本身存在很多的缺陷。它对编程语言有很强的依赖性,封装粒度小,耦合度高,未形成标准的模型和概念,从而难以形成标准和开发规范,不能达到软件重用的可移植性和互操作性,产生了大量的“对象孤岛”。 相对于传统的面向对象体系结构的紧耦合,SOA是一个粗粒度、松耦合的面向服务架构,其服务之间通过公开、精确定义的接口进行通讯,不涉及底层具体编程接口和通讯模型,服务与服务之间是相互独立的,且服务可以被重复调用,也可以被任何潜在需求者调用。 以下是某公司针对订购产品这一实务做出的一系列数据处理的例子,分别从面向对象架构与面相服务架构这两种不同架构理念对软件设计开发的不同要求做出的比较(见图4)。 面向对象设计中,公司在生产和销售产品的时候,是根据收到的采购订单进行的。采购订单有很多属性,但它的订单编号是唯一的。根据其订单编号,编制公司的销售订单。根据其销售订单中产品清单编号主码,关系到产品清单。最后根据其具体产品编号关系到产品目录,一层一层的处理数据。以上过程,就是软件面向对象架构的最基本思路,对象之间继承关系的依赖性很强,层层相扣。因此,对象的分析与设计及编程实现,要求很高,也很复杂。 图4面向对象架构与面向服务架构 现采用面向服务架构思想对软件进行开发。可以把所有相关的主体分为三个层次,从基础的对象层,到由不同对象组成的组件层,至最终的服务层。关于这项订购实务,公司要处理的有四个基本对象,采购方信息处理,采购订单,产品清单,与产品目录;组件层包括采购方信息和单据两个实体;而它们都包含在订购产品这项服务中。那么公司在开发这项订购产品服务的时候,可以把它分为若干部分,从对象这个最小粒度开始,再组合成不同的组件,到最终完成一项服务。这样对开发人员技术的要求会低一点,且不同部门可同时进行软件开发。 这里需要说明的是,SOA并不是OOA的完全替代,如开发人员对单个对象,或组件乃至整个服务采用面向对象的架构设计,但在整体上是面向服务的,主要原因是接口的设计。 2.3 SAP的NetWeaver平台和ESA思想 目前,SOA的思想被越来越多的用于ERP产品的开发上,ERP产品的巨头SAP也不例外。企业服务架构ESA就是SAP基于SOA的思想提出的新产品的模式。提到ESA就不得不提到它的另一个产品NetWeaver,因为企业服务架构是建立在这个技术平台之上的。 NetWeaver是SAP于04年正式推出的一个产品,它是一个底层技术平台,SAP的很多新产品的应用都是跑在这个平台上,相当于一个中间件产品。它主要提供了以下四方面的功能,人员集成,信息集成,流程集成和应用平台。它是由交换架构XI,主数据管理MDM,解决管理Solution Manager等组件构成。它是目前支持所有SAP应用的基础产品,是企业应用软件的开发平台、同时又为企业搭建一个基于NetWeaver的面向服务的IT架构。 SAP的企业服务架构并不是简单的技术层面的SOA,而是面向企业层面的,它将原有的ERP、SCM、PLM等模块在NetWeaver这个技术平台上集成,组合成业务流程平台(见图5)。企业在这一个平台上可以共享很多组件,不同的企业也可以根据不同的需求,增加或选用不同的企业服务库,或自主开发部分功能,实现企业的个性化。 图5 SAP NetWeaver平台业务组件 SAP的一位主管曾作过这样一个比喻,将软件的企业服务架构化比作电路的集成化。集成块(IC)本身是功能模块化设计的,但它是更复杂电路的基本组件,设计一个个的集成块,把他们组成电子设备,而不再是从电阻、电容、电感、晶体管等基本元件来组建电路。以后软件业业一样,要设计这些“集成块”和利用这些“集成块”,这些“集成块”就是企业服务(Enterprise Service)。 这也是面向服务架构思想在ERP软件开发和产品发展中应用的最佳体现。 3 总结 面向服务架构(SOA)得到了各大软件公司的重视,如IBM、Oracle、SAP等,说明其理念是先进的,相对于传统的架构模式存在很大优势。本文也具体阐述了其存在的优势,但大部分也只存在于理论,因每个公司对SOA的理解各不相同,基于此理论设计开发出的产品也是各有特点,没有得到一致的公认。 本文分析了SAP基于SOA思想提出的ESA这个思想,其最终产品仍处于开发阶段,只能对其主导思想略为阐述。现在是SOA乱战时代,但可以预见,随着SOA思想的发展和完善,以及在软件业的广泛应用,它的优势会逐步显现出来,为传统的ERP软件带来革命性的转变。 软件设计毕业论文:如何利用嵌入式软件设计SoC 美国Globalpress公司举办的2007电子高峰会议上,举办了一场SoC(系统芯片)的专题讨论会:设计师如何利用嵌入式软件作为SoC器件设计的关键。会议上的专家各抒己见。 完整方案比单个硬件重要 主持人:Gartner公司的高级分析师JohnBarber 软件在嵌入式产品中的份量越来越重。自2000年来,价值观念发生了巨大的变化,2000年以前,主张是器件,即让我们的器件与竞争对手的性能、品质进行对比具有优势,这就是那时形成鲜明特色的关键。现今,制造商和客户需要的是解决方案,而不仅仅是器件。我的价值主张,我的鲜明特色,必须是完整的解决方案,包括与硬件一块推出的可以立即投入大批量制造的软件栈。 硬件与软件将设法整合到单个流程 Mentor Graphics系统级设计总监BillChown 我们过去所从事的是硬件设计,现在则还需要辅以软件应用方面的大量工作。但这两者的“婚姻”却并不幸福。在两者之间,我们需要填补在基础架构方面的鸿沟,如今的硬件小是从头设计的,需要进行基础架构的复用。需要复用的包括处理单元、内存、接口器件……许多基础设计事先已经被人们所了解、得到了分析和预先进行了配置。我们需要把它插入到系统中,提供针对硬件的软什能力,以及针对具体应用的软件能力。在用户对硬件和应用软件的使用目标的这两个空间之间,我们必,坝确保能让他们寻求到与他们的具体需求相应的问题所在,但是最大限度减小他们仡存两个空间之间的工作量。 EDA代表电子没计自动化,但我们有时候会迷失,而忘却了“自动化”一词正是我们在这个空间中应该完成的工作。我们应该回顾在这个流程中应该实现自动化的对象是什么?那并不仅仅意味着工具的改进,而且意味着我们能通过标准化来简化问题。 总结一下,我们能让人们去做的事情,是从一个任系统空间中的概念设计,一直到完成整个流程。慨念设计上的革新是关键,我们需要灵活多样;随着设计的进行,我们需要尝试不同的解决方案。如果我不知道我往做什么,就无法去尝试替代方案。所以良好的分析将告诉我,我所做的工作将会把我带向何方。这些不同的任务中的每一项,都对应着每一个团队所从事的领域。因此,这是一个复杂的世界,但我们将设法将其整合到一起。在实现整合的过程中,我们应该能加速、改动,并将来自于不同领域的软件与硬件、系统与验证集成到单个流程中。 软件的关键作用是保证批量 MIPS Technologies公司市场行销副总裁Jack Browne 在SoC设计时,我们所面临的挑战是多方面的。首先我们希望能向市场上推出种类多样的产品。以MIPS公司为例,有3种不同的微架构系列,10种不同的处理器内核。我们必须具有某种能让我们能投入制造的业务模式,因为本公司的业务模式是基于IP(知识产权)使用费的,我们的年收入的一半来自于授权和版权使用费。客户的产品要达到制造批量,交货则需要3-4年;他们拿到所设计出的芯片,要2年,然后他们再让OEM来设计出系统,而这又要花上2年。所以,该供应链有一个问题:如果我的收入严格取决于制造批量,你应该如何来支付这些开发的费用?费用的支付要延后4年,财经界是不能容忍战略性项目上的亏损的,你必须展示出业务的良好性。 另外一个挑战是,你希望进入不同的、类型各异的市场。其中每个市场的成功的临界数量(客户数量)是不同的。同时你还必须支持不同的OS(操作系统)。你必须有解决所有这些问题的方案。我们的做法是,承认人们有一个平台。软件,无论是Linux还是其他的实时操作系统,一直到应用层次。我们所追求的关键一点,是使用硬件抽象层。从根本上来说,如果我有两家不同的客户,他们决定购买不同的套装,或者甚至不同的USB控制器,则通过硬件抽象层,如你的PC中的BIOS,我可以实现不同的偏好,而不用移植操作系统。 你去考察供应链上的不同玩家的商业模式的话,就会发现,将操作系统移植到另一个硬件平台上的工作并不能提供多少余地。如果你所选择的应用不对路的化,则很难实现足够的产量。如果你考察如今的标准数字电视的话,就会发现其中有些采用了300万行的软件。而你将看到2年后的HDTV将采用500万行的软件,而且其中有16个处理器,用于处理不同的任务。 所以软件的关键作用就是保证批量。如何找到一个合理的财经运作模式,是EDA、IP公司、半导体公司、软件公司共同努力解决的挑战。 多处理器的软件设计法 Tensilica公司市场行销副总裁SteveRoddy 软件的重要性到底有多高?有人认为市场规模尚小,有些人认为它很重要,另一些人则主张我们处在一个临界阶段,许多软件都实现了移植。 3种现点也许都是正确的,具体取决于其市场。但我想退一步思考一下处理器也许倒也无妨。一个有趣的问题是,如今和未来的应用应该需要多少个处理器?这里借用ITRS(国际半导体技术发展路线图),来展示在每个工艺节点对应着的、每个SoC上平均使用的处理器的数量(图2)。当前,ITRS宣称每个SoC上平均有32个可编程器件。我们知道,有些可能数量会多些,有些则少些。Tensilica与Cisco合作,推出了基于130nm节点的、采用192个处理器的设计。所以处理器的数量会出现迅速增长。而软件正是在此之上运行的。 是的,软件的复杂程度和架构的复杂程度都正在增加。即便处理器的数量在增长,它们并不全都一模一样。这些器件上将出现多样化的处理器。 关于嵌入式的设计,很明显的一点是,软件的形式必然迥异于普通的通用型软件。事实上,嵌入式世界迥异于与通用型软件世界。在通用型应用的世界中,如Intel和AMD,在处理器上运行的软件在器件开始推出时尚不为人所知。因此一般采用通用型的计算,对于通用型的计算,人们采用通用的SMP Die Bucket架构。在嵌入式世界中,如果你设计用于路由器的芯片的话,它就是供路由器专用的。优点就在于你知道器件的用途,所以其设计会针对具体应用进行优化,让人们能利用专用的处理器,如可重构的和可扩展的处理器,以节省面积、成本和功耗。因此两者的设计之道大相径庭。拥有许多可重编程的处理器,并不意味着你有一个全新的世界。系统架构和硬件架构研发者努力解决这个问题已经有几十年了。他们将其称为SoC,现在人们以处理器为单位进行设计,而不是硬件模块,他们在系统中引入了许多软件的东西。但这并不意味着在设计这些东西的方式上会遇到什么危机。 设计这些系统的风格,仍然具有一个SoC 只有一个处理器的年代的SoC设计、架构所具备的那种多样性。你可以让处理器间具有一个看起来非常传统的联系,采用SMP通用型架构,你可以让处理器之间根据具体应用来建立互动关系,你可以在处理器间建立硬件风格的数据流。事实上,某些处理器甚至根本都不清楚芯片上有其他处理器的存在。这些东西的实现有多种多样的途径,成功的关键是功能划分,人们可以在功能模块中放入标准、API,事实上,在这些系统上运行的软件,可以造成复杂性极大增长,而我们在实现上仍然感受不到危机的存在,通过功能划分,经过优化的处理器、经过优化的API将通用型的程序与软件的所有复杂性隔离开来。 设计者完全可以利用直截了当的设计方法来掌握如此复杂的,设计数百万行程序的软件工作。 软件发挥至关重要的作用 Wipro公司半导体/消费事业单位副总裁Siby Abraham 今天,推动半导体业发展的仍然是摩尔定律。对我来说,在设计中如何放入更多的逻辑、在一定的芯片面积上能放入多少个晶体管这一问题所带来的痛苦和挑战一这是技术经理和工程师们关心的问题,倒还比不上呈指数化增长的IC设计成本。源程序的复杂性的日益增长,而成本的上涨幅度超过了硬件的。 如今,逻辑电路的80%都被复用。这意味着SoC上只有20%的逻辑是用来体现其不同之处的。这也就是利用软件来实现SoC鲜明特色的地方。我们所看到的趋势是,根据我们过去4年所从事的项目,我们在软件和半导体业摸爬滚打了多年,SoC的未来在于多核架构方面的改进,而这正是软件发挥其效用的地方。 如今,我们的软件还不能有效而自然地利用好多架构带来的优势。挑战在于,软件工程师如何能利用众多核架构带来的优点。我们已经看到了在SoC中对软件的多方面的应用。软件的挑战,可以认为与硬件工程师们所面临的挑战是一样的。 我们今天所看到的更重要的一点是,现在需要那些不仅仅把自己划入硬件工程师或软件工程师等类别的工程师们,他们了解更多的专业,从而能利用众多领域的知识。我们看到一个大挑战,有的客户要求在产品供货时就能提供软件。 我们所看到的技术上的挑战,价格、性能、功耗,而如今软件团队也将承担相应的责任。如果没有可调试性,硬件团队将困难重重。 软件设计毕业论文:虚拟心电监护系统软件设计 摘要:在LabVIEW图形化的编程环境下,利用MIT-BIH生理信号数据库和LabVIEW的各种控件,实现对心电信号的采集读取、滤波、保存和回放。通过改进普通阈值法,利用“双阈值+校正阈值”的方法实现自动实时计算心率,对异常心电给予报警提示。同时,本系统设置了众多交互按钮,使得此心电监护系统功能多样、人机界面简洁友好、操作方便。 关键词:心电信号;虚拟仪器;虚拟心电监护仪;LabVIEW 前言 当今心脏病已成为威胁人类健康最严重的疾病之一,因此需要一种能够连续记录或者智能记录并分析心脏活动的心电监护系统,对患者进行实时监护。至今心电监护技术经过40年的临床实践和技术发展,其监护内容和仪器技术有了相当的发展。目前国内外心电监护的发展呈现出模块化设计、长时数据保存、低功耗小型化、网络信息化趋势。理论和技术的不断发展也为心电监护的进一步研究创造了条件。 LabVIEW是一种基于图形编程语言-G语言的可视化开发平台,多被应用于仪器控制、数据采集、数据分析等领域。鉴于实际心电监护仪难以普及和虚拟仪器的强大优势,我们采用LabVIEW的开发环境、设计了虚拟心电监护仪系统,实现了对心电信号进行采集读取、滤波、保存和回放,自动计算心率并对异常心电给予报警。此心电监护仪可以实现长时间的数据保存,而且操作界面简洁友好,便于掌握。 心电监护系统 此心电监护系统采用模块化设计,包括读取模块、滤波模块、保存和回放模块、心率计算和异常报警模块,各模块间的关系如图1所示。我们采用的数据取自心电数据库、不需滤波,因此略去滤波模块;其中“双阈值+校正阈值”的设计方法包含在心率计算与异常报警模块中,引入校正阈值的目的是为了“放大”心电的某些波段,针对性的检测某些心脏疾病。 系统子模块的实现 读取模块 获取心电信号有三种主要方式:数据采集卡现场采集:软件仿真心电信号;从数据库中读取。鉴于开发成本和真实性,我们采用最后一种方法。 我们采用著名的MIT-BIH数据库,其心电数据由.atr.dat.hea三种文件描述。我们采用LabVIEW脚本接口控件MATLAB Script Node,利用读取心电数据的MatLab程序rddata.m,读取心电信号,输出心电波形。 滤波模块 心电信号总是存在各种干扰,如工频干扰、基线飘移、肌电干扰等,噪声严重时可完全淹没ECG(心电)信 号,因此必须消除噪声,对心电信号进行滤波处理。 由于本设计采用的心电数据基本不需滤波处理,故这里的滤波是为校正阈值而设计的特殊处理模块。我们选用的是平滑滤波器,它能很好地滤除心电信号中混杂的高频噪声信号。 保存和回放模块 本模块是以“写入测量文件”和“读取测量文件”控件为核心,辅以“数据转换”控件,可以实现心电异常时自动保存以及有选择地回放,可以在8道(可增删)心电通道间任意切换,也可以选择保存的文件类型。 这里,“数据转换”控件的运用体现了LabVIEw数据流编程的思想。即每个控件都是对数据流进行操作,但作用的数据类型不同,其间通信必须先转换数据类型。 心率计算和心电异常报警模块 此模块是虚拟心电监护仪的核心,也是用户最关心的功能模块。目前ECG自动检测技术的研究主要集中在QRS波,P波和T波检测,ST段检测等方面,QRS波检测是ECG检测中的首要问题。 QRs波群检测方法有阈值法、面积法、幅值法、神经网络法、模式匹配法等。面积法和幅值法易受到噪声干扰。后几种方法较为复杂,运算量大且计算速度较慢,不适用于实时处理系统的要求。本系统采用的是改进的阈值法,可以概括为“双阈值+校正阈值”。心电异常报警就是根据双阈值和校正阈值的检测数据,利用布尔运算判断分析,结果送前面板显示。 此方法的设计原理和思想与普通阈值法相似,即以检测QRs波波峰的个数作为计算心率的依据,不同的是,此法采用双阈值,利用“波峰峰值检测”控件,设置两个不同的波峰检测阈值,一个阈值较大,用于检测R波:一个阈值较小,用于检测过强的T波和R波(本系统的检测阈值可以在前面板中设置),得到两个检测心率,然后利用比较、布尔运算,分析心电信号的异常情况并适时报警。针对心电的某些特征信号、这里设计了校正阈值算法,用于特定心电异常的检测(如高频噪声干扰,可以选用平滑滤波器,设置合适阈值,校正检测心率)。 此算法优点是计算量小,实时性好,便于在线分析;开放性强,可以扩展检测阈值数量,提高分析的可信度;可以根据需要设置校正阈值。此法缺点是手动设定阈值,可以添加自学习模块加以改进,利用自学习算法可实现。 “双阈值”法可以解决普通阈值法中存在的幅度大的T波误检或低压的QRS波被漏检情况,而“校正阈值”能够解决噪声干扰造成的心率误检等(取决于校正算法)。总之,与普通阈值法相比,该算法极大地提高了系统的抗噪能力,并减低了误判率。当然,可以根据需要,增加阈值检测数目、以及采用其它校正算法,使其不仅仅局限于校正噪声干扰造成的心率误检。 该心电监护系统的前面板和程序框图分别见图2和图3。 结语 本文阐述了基于LabVIEW的虚拟心电监护系统的设计,该系统用户界面友好、使用方便,充分发挥了LabVIEW的优势;本心电监护仪实现了心电信号读取、滤波、保存和回放,并且可以自动保存异常数据,实时报警和简易的心电分析。 软件设计毕业论文:手机应用软件设计和开发的方法探讨 摘要:分析了手机应用运行环境的特点,并针对这些特点提出相应的对策;同时,针对手机中应用程序显示区域小,CPU处理速度和内存容量限制,应用程序的实时性要求和开发环境的封闭性等特点,提出了一些设计策略和解决方案。 关键词:手机;应用软件;设计;对策 0 引言 用户在使用手机中无时无刻不在和手机上的应用程序打交道,手机应用程序设计得好坏直接影响用户对该款手机的感受。手机的应用程序的好坏决定了一款手机的内在品质,从而在很大程序上决定了一款手机在市场上的命运。本文结合笔者开发手机应用程序的经验,探讨手机上应用软件的设计和开发方法。 1 手机应用软件的特点分析 目前市场上的手机分两类:功能手机(Feature Phone)和智能手机(Smart Phone)。虽然这两类手机还没有一个明确的界线,但是手机上运行的应用程序都有如下特点: 显示区域小为了方便携带和按键,大屏的像素点为128x160、160x24、240x320等。 CPU处理速度和内存容量比段小基于成本的考虑,手机上的处理器(MCU)的频率较低,一般只有几十M,智能手机稍高,一般200―400M。内存(RAM和FLASH)一般为8M,16M,智能手机一般32M,64M。 和移动网络的交互密切,实时性强能与移动网络随时随地通信,交换语音和数据信息。对于来自移动网络的来电,短消息,彩信,推消息(Push message)等,应用程序必须能及时提示用户,并能让用户方便地处理这些信息。这一点也是手机产品和其他的PDA,PMP等产品的最大区别,同时对这些信息的处理也是手机软件设计和开发的关键点和难点。 软件的开发环境千差万别,因而手机应用程序的运行环境相差甚远现在市场上的手机的开发环境要么是手机的芯片开发商提供,要么是独立的软件公司提供,还没有一个统一的开发标准。各个平台的软硬件环境差别很大,在一个平台上的应用程序根本不能在另外一个平台上运行。手机应用软件开发和平台紧紧地绑定在一起,软件的可移植性极差。 2 手机应用软件设计和开发的对策 针对上述手机应用软件的特点,在进行手机应用软件设计和开发的时候必须有清醒的认识,并预先有相应的解决方案,在项目进行到中间或者最后才发现或者考虑这些问题为时太晚。下面是笔者认为在手机应用软件设计和开发上总体需要把握好的关键点。 2.1怎样应对应用程序显示区域小 应用程序的界面风格应一致。好的做法是设计一个共用的应用程序的基类(接口),所有的应用程序都从这个基类(接口)继承;设计一组公共的显示控件,这些控件的显示风格可以通过配置文件进行设置。这样可以很方便地达到“换肤”的功能,从而满足用户界面上个性化的需求。 多用图标和简洁文字来表达界面的含义。由于显示区域的限制,手机很难像PC那样利用多重窗口,基本上是一个应用程序占用整个窗口。采用统一的图标和简洁的文字能达到界面意义明确,表达意义形象的目的,这比冗长的文字更能吸引人的注意,使人记忆深刻,从而给用户良好的使用体验。如果能结合富有表现力的动画图片更好。因此,必须设计的图形控件有:应用窗口类,图片类,动画类,图片标签类,进度条类,单行列表类,多行列表类,单选列表类,多选列表。在手机应用窗口中应该充分利用这些类来设计有特色的用户界面。 设计一个通用的合理的输入法接口。输入法的设计在手机应用程序中有重要的地位。输入法的设计在实现的时候要考虑的实际问题有: (1)怎么方便地切换各种输入。例如,可以考虑用#,*键来切换各类文字的输入。另外,标点字符和数字等由于使用的频率很高,可以考虑增加快捷菜单或者快捷键操作的输入方法。 (2)待选字符的安排是否合理,操作是否方便。例如图1所示界面是笔者设计的中文编辑界面。 说明:如果用户输入xyz所在的按键。则在区域1显示所有的待选拼音/笔画。在这个时候用户可以按左右方向按键来选择待选拼音/笔画。用户按OK键,在区域2,高亮(Highlight)显示的是第一个待选汉字。这时按左右按键高亮光标在待选汉字间移动。如果汉字太多,可以按上下按键来在前一页和后一页汉字之间切换。按OK键,高亮选定的汉字将被输入到编辑界面上。在区域3,是区域2高亮汉字的联想词组。用户可以长按1-9键将显示的词组直接输入到编辑界面(不需要高光选择)。短按一次取消键(C键)删除编辑界面的一个汉字,快速短按两次,删除编辑界面的一行汉字,长按取消键,全部删除编辑界面的汉字。 上面举的例子只是中文的输入,实际情况是还需要英文字母,英文单词,标点符号等字符的输入。所以,输入法的软件设计的细节问题很多,各个应用的需求千差万别,需要我们在开始设计软件时充分考虑输入法接口的可扩展性和灵活性。 2.2怎样应对CPU处理速度和内存容量的限制 设计或者选定一个合理而高效的系统架构。好的应用程序需要一个好的系统框架。针对手机的CPU和内存的特点,手机的应用程序的运行环境和PC上的程序运行环境有很大的不同,用表1总结如下: 通过上面的对比,可以看出,手机的设计应注意以下几点: (1)以当前手机的硬件为基准,采取适度超前的原则来定义系统架构。整个架构不必大而且全,要小而精,并尽量做到架构中的各个部件具有很好的可裁减性。这样的系统架构才能满足各种不同的硬件需要。 (2)精心设计架构中的每一个部件,消除系统冗余的代码;合理定义接口,系统的架构才能清晰容易被人理解,并且系统的可靠性也高。只有这样,整个系统架构的代码占用的内存少,应用程序在运行的时候占用的内存和CPU资源少。 (3)应用程序可以在PC上模拟运行。一般手机上调试应用程序的过程比较复杂,如果一个很小的改动都要到手机上去调试很浪费时间,同时,在PC上调试程序也比在手机上调试程序方便得多。一个好的程序架构的基本要求是绝大部分的应用都可以在PC机上模拟开发完成。 精心设计应用程序。应用程序的执行效率和应用程序的设计密切相关。对于手机上的应用程序,不同的设计策略有不同的结果。例如:对于一个电话本的应用程序,读取所有电话记录至少有两种方法:一种是在一开机的时候就读;另外一种是在电话本应用打开的时候才读。实际情况是前一种情况较好,因为,这样用户每次进入电话本的时候手机可以很快地显示所有的电话记录,后者则慢得多,在有些系统中可能是难以忍受,必须提前准备好数据。 在设计应用程序中着重考虑的问题有: (1)程序的处理效率是否高; (2)程序的内存占用和CPU是否太多; (3)用户的操作是否方便,应用的响应速度是否足够快; (4)界面的定义是否美观,和系统的总体风格相一致; 2.3怎样应对应用程序的实时性要求 手机最重要的功能是通话和通信。这些一般和无线网络都有密切的关系。对于来自无线网络的来电,短消息,推消息等,必须有一个应用来统一调度和处理这些消息和信息。笔者称之为待机管理应用。待机管理应用是底层软件和其他应用程序的调度员,同时它也负责待机界面下的界面显示和其他应用不方便处理的一些任务。如果用图来表示,那么它在整个系统中的位置如图2所示。 待机管理应用的特点是:(1)一开机就首先运行;(2)总是处于运行或者待命状态,不会退出。 因此,这个应用的稳定性要求就特别高。在软件设计的时候要特别注意功能划分,如果某项功能能在其它的应用中处理,该功能应尽量分到别的应用中去,以免待机管理过于复杂,影响系统的稳定性。 待机管理应用的功能一般如下: (1)处理与充电器和电池有关的消息。例如:插入充电器,如果是在开机,则在待机下显示充电动画;拔掉充电器,关闭充电动画的显示等; (2)处理开机动画或者问候语的显示; (3)如果底层协议报告SIM卡设置了PIN码,启动SIM卡的PIN码输入界面;如果还设置了手机密码,则启动手机的密码输入界面; (4)显示待机下面的各种状态图标,网络注册的信息,时间和日期信息,各种应用图标的排列; (5)显示屏幕保护的界面; (6)处理用户在待机状态下的各种按键操作,例如:如果用户短按了数字1所在的按键,则要启动号码编辑应用或者界面,如果用户在应用图标或者菜单中按或者点击了某一个应用,则要启动该应用; (7)显示各种系统状态,例如:未接来电和短消息的提示,电池电量不足的提示,闹钟的提示等; (8)转发底层的各种消息给相应的应用程序,为其他的上层应用提供统一、简洁的接口。这样做的原因是通过对底层消息的封装和转换,能简化其他应用处理。并且使待机管理应用能及时了解系统当前的状态,并及时通知给用户。 2.4怎样应对应用程序的开发环境的封闭性 正如上面提到的,现在市场上主流的手机开发平台很多,并且还不断有新的平台涌现,怎样开发能在各种不同的平台上有很强移植性的应用程序对程序设计和开发人员是一个艰巨的任务。笔者结合自己的经历认为可行的思路如下: (1)应用的用户界面和实际的处理逻辑尽量分开,将一些可以共用的处理逻辑提炼成共用的函数接口。例如:日程应用的阴阳历转换算法,电话本中的首字母查找算法等都可以放在一个单独文件或者库文件中,这样的代码可以很方便地移植到其他的平台上。 (2)编写代码的时候,数据结构的定义和函数的处理要考虑不同硬件平台的差别。一个好的做法是定义一个平台上通用的数据类型定义,而不是直接使用设计语言里面原始定义的数据类型。例如:如果是在C/C++的开发平台上,我们可以定义一个文件types.h,它里面包含如下通用类型的定义: typedef char BOOLEAN; typedef unsigned char BYTE; typedef char CHAR; typedef unsigned short WCHAR; typedef char INT8; typedef unsigned char UINT8; typedef shOrt INTl6; typedef unsigned short UINT16; typedef long INT32; typedef unsigned long UINT32; typedef long LONG; typedef unsigned long ULONG; 在程序中,所有数据结构的数据项,函数的参数和返回值,类的成员数据都用上面的这些通用类型,这样编写的软件的可移植性就可以大大提高。 如果可能,多采用成熟的第三方软件或者知名的开源代码库。 手机的应用经常碰到部分模块是自己开发还是采用第三方软件的问题。为了软件的可移植性,加快软件的开发速度,这些模块应该多采用专业公司开发的成熟软件或者采用稳定的开源软件。这比自己重新开发好、快捷方便得多,开发成本也比较少。例如:现在很多手机都支持MP4播放,这样就涉及音视频编解码的问题,如果可能,选择一个经过市场验证,可移植性强的第三方或者开源的音视频编解码库比自己进行开发要合算得多,这样的应用程序的可移植性比自己在特定平台上全部由自己开发的应用程序要好。 3 结束语 手机上的应用程序开发环境现在还是一个比较封闭,与应用程序耦合比较紧密的系统;应用程序的设计和开发相对复杂,对应用的稳定性,安全性,实时性要求也比较高。无论是对手机系统平台的设计人员还是开发人员,只有在了解其特点的基础上才能提出有针对性的方案。本文指出了这些特点并阐述了笔者的观点,希望能起到抛砖引玉的作用。 软件设计毕业论文:遥测文件截取器软件设计与实现 摘 要:为解决大容量遥测数据文件的快速分割,软件针对遥测文件以帧为基本单位且每帧头都含有时码的特点,设计按特征参数截取、按时间截取以及按帧序数截取等三种方法以满足不同的截取要求。遥测参数的解算调用已成熟的动态链接库,对于一些耗时的运算使用了二分搜索等优化算法。该软件操作方便、截取效率高,在型号应用中发挥了重要作用。 关键词:遥测; 文件截取; 软件设计; 二进制; 数据图形显示 0 引 言 随着科技的进步,空空导弹的研制越来越复杂。相应地就有越来越多的数据信息需要遥测传输,这必然导致遥测接收的数据文件较大。以3 Mb/s码率计,10 min的遥测数据就有214 MB之多。数据处理软件往往需要经过异步帧提取,有效位屏蔽,甚至经过费时的字符串处理[1]才能得到最终结果。所以当用户处理这种大文件时往往需要等待很长的时间。如果能够把这样大的文件分割成较小的几个文件然后分别处理,那么处理软件的运行时间就可以缩短到用户可以忍受的程度。 另一方面,空空导弹的发射试验往往比较短暂,从导弹离开载机直到导弹爆炸只有不到1 min的时间。数据分析人员最关心的也正是这段时间的数据。而实际遥测中,为了确保数据的可靠接收,会从发射前5 min开始记录直到遥测信号完全消失才停止记录。 这种情况下,如果能够根据导弹发射的特征信号(比如导弹与发射架分离的信号)来截取遥测数据文件也具有重要的实际意义。 本文通过对实际需求的分析,提出了按遥测帧数、时间和特征参数三种文件截取方法,并在VC 6.0平台上予以实现。 1 软件设计 1.1 功能设计 在空空导弹遥测中,待传输的信号都是先通过多路复用组装成一个N字节长的遥测帧然后调制传输。在接收端解调后先通过帧同步获得该N字节长的遥测帧,然后在帧头加入8 B的时码(又称为B码)来表示接收到该帧的时刻,如图1所示。这样存盘后的文件字节数是N+8的整数倍[2]。 图1 遥测帧发送接收过程 因为遥测数据按帧存放,所以有意义的最小分割单位是帧而不是字节,对文件的截取最后都要归结到按帧来截取。因此,软件的第一个功能同时也是最基本的功能就是按帧的起止序号进行分割。 由于文件中每一帧数据的帧头都有B码,所以将该B码换算成实际时间之后也可以根据时间进行截取。 数据分析人员一般要求提取导弹发射后到爆炸这一时间段的数据,所以利用导弹发射电气分离信号(ES)的跳变,截取跳变时刻前5 s直到跳变时刻后50 s的数据能够确保覆盖所需数据,同时尽量减小数据文件的大小。 典型的电气分离信号图形如图2所示。 图2 典型电气分离信号图形 (a) ES没有跳变 (b) ES有跳变(c) ES有跳变,信号有野点 (a)图导弹未发射,(b)图导弹发射,(c)图导弹正常发射但信号有野点 通过对图2的分析可以得出以下结论:ES跳变点需要通过计算的来判决,比如当前数据点与下一数据点之差超过信号范围的2/3,那么就认为当前点为跳变点。但是对于图2(c)中有野点的情况这种判决方法就有可能导致误判。所以最好的办法是让用户参与跳变点的判决。软件自动找到第一个跳变点,用户可以通过快捷键[3]找到下一个跳变点,直到正确的跳变点为止。 这种设计方法杜绝了跳变点的误判,同时又能直观快捷地辅助用户找到跳变点,另外还简化了软件的设计。 1.2 模块设计 分割一个文件的流程[4],如图3所示。 分析图3可以得出软件必须的几个模块: (1) 打开待分割文件并自动生成分割后文件; (2) 分割方式选择; (3) 特征参数数据绘制; (4) 起止帧序数选择; (5) 起止时间选择; (6) 是否需要剔除无效帧。 最终确定的软件界面[5-6]如图4所示。 图3 文件分割流程图 图4 软件界面 2 软件实现 2.1 按特征参数分割 按特征参数分割涉及到遥测参数解算。程序运行时首先加载动态链接库dbreader.dll,postpro.dll和eu.dll。在OnInitDialog中调用函数GetTMFrameFormatInfo来获取遥测帧格式,包括遥测帧的长度,码率,同步码位置等信息。然后调用函数GetTMParaAllRecord来获取所有参数在遥测帧中的位置信息,解算方法等。 当用户从程序界面的参数下拉列表框中选择一个参数时,触发CBN_SELCHANGE事件并调用消息函数[7]。在消息函数中根据参数是帧同步数据还是帧异步数据分别调用GetASyncParaValue函数或EUConvert函数解算出数据,同时从数据中找出跳变点,然后在图形控件上绘出曲线。 2.2 按B码时间分割 要想根据时间信息来查找对应的遥测帧就需要将该时间和文件中各遥测帧头的B码代表的时间进行比较。如果采用遍历查找的方法,对于总帧数为N的文件,理论上需要比较(N+1)/2次,要找到起、止两个时间对应的帧就要比较N+1次。这对于较大的文件来说消耗的时间会很长。 在遥测文件中,每帧数据都是按接收到的先后顺序从前往后依次存放。也就是说,搜索的目的序列是有序的。对于这种情况,可以采用折半查找法[8]进行搜索。理论证明,采用折半查找最多需要的比较次数为Иlog2(n+1),搜索起、止两个时间共需比较2*log2(n+1)次。 2.3 按帧序数分割 三种分割方式最后都归结到按帧分割。按帧分割惟一复杂的地方就是剔除无效帧。要剔除无效帧需要将每一帧数据的同步码取出来和标准的同步码进行比较。如果差异位数超过容许值就丢弃该帧,否则保留。很多程序都采用依次右移一位,看二者最低位是否相同,如果不同则计数加1,循环直到两个数都为零的方法。 这种方法效率非常低。本文采用了如图5所示的计算方法[9]。 图5 计算同步码错误位数 这种算法的关键在两处:首先对两个被比较数a和b按位异或,结果c的二进制数中为1的位置就是a和b不一致的位置。然后c不停地与c-1按位与[3]并将结果赋给c,直到c为0。通过归纳法可以证明c与c-1按位与可以消掉c的从低位往高位数的第一个1,所以c的二进制值有几个1就循环几次。 3 结 语 本遥测软件采用模块化设计,便于实现和测试。同时结合遥测文件的结构,实现了按帧序数、按时间和按特征参数三种分割方法,较好地满足了型号遥测数据处理的需求。从软件的设计可以看出,对于较复杂的软件采用自顶向下,逐渐细化的分析方法,分模块设计[10];对于影响程序性能的处理过程有针对性地进行优化,可以有效地提高程序的可靠性和性能并简化设计过程。 软件设计毕业论文:20kg级自主水下机器人控制软件设计与实现 (中国海洋大学 信息科学与工程学院, 山东 青岛266100) 摘要:介绍了用于对20 kg级便携式AUV的运行状态进行控制的软件设计以及实现。该软件是基于MFC对话框运行于Windows操作系统下的程序,使用了多线程编程技术和串口通信技术。串口操作线程用于向串口读取或写入数据,并且在处理后把最终结果发送给主线程和导航线程。在主线程中将数据显示到界面上,在导航线程根据导航算法计算出用于导航的数据并写入串口以控制AUV的运行状态,包括AUV上浮、下潜、前进、后退、左转弯、右转弯。实验结果表明,该软件达到了预定效果。 关键词:便携式AUV; 多线程; 串口通信; MFC 自主式水下机器人(Autonomous Underwater Vehicle,AUV)代表着未来水下机器人的发展方向,因而是世界各国研究的热点[1]。而便携式AUV由于使用方便,可执行环境评估、水文地理、辅助水道测量、港口安全、岩屑区域绘图等工作以及可以用在未来战争中[2],将是未来AUV发展的重点。 本文主要论述了便携式AUV控制软件的设计及其实现,该软件主要用于监视AUV在水下运行时的状态信息以及控制AUV的运行。AUV在水下运行时的状态信息包括位置信息、航向、舱内温湿度、推进器转速、舵的方向角以及在水面时GPS传感器数据等信息,该软件将这些信息显示到界面上最终实现对AUV的监控和导航。 1便携式AUV系统简介 该小型AUV由两个密封舱组成,前舱安置了传感器系统,后舱安置了AUV推进器以及方向舵的控制系统。两个密封舱中间放置的一个垂直推进器用来控制AUV的上下运动,后舱安放了用于控制AUV水平方向的水平推进器和方向舵。系统搭载了AHRS、数字罗盘、GPS等传感器,这些传感器采集到的数据用于AUV的导航。AHRS传感器用来测量AUV的航向角、俯仰角、横滚角、3个方向的速度、加速度;数字罗盘测量AUV的航向角等信息控制软件对一串口进行操作,该串口连接与AUV进行通信的无线模块。将从无线模块接收到的数据经过惯性导航算法处理,根据协议将惯性导航算法处理结果发送到AUV,最终实现对AUV的控制。 2串口通信 串口在做文件处理时,简单的应用可以采用查询方式或定时方式,复杂的可以采用事件驱动的方式。所谓事件驱动,即当串口有数据进入输入缓冲区时,自动执行接收程序。利用WinAPI读/写串口操作可以有同步方式与异步方式。所谓同步方式是指发出写命令时,直到有数据写入到输出缓冲区写函数才返回。异步方式的重叠方式是指发出写操作命令后,不管写操作是否完成,写函数马上返回,写操作在后台继续进行,写操作完成后通过某种方式通知调用写操作的线程。这样避免了主线程被挂起,提高了程序的工作效率[34]。 2.1串口通信设置 在实现串口通信时,首先在界面上设置串口号、波特率、校验等信息。单击按钮打开串口,进入命令响应函数OnBtnOpen(),利用API函数打开并对串口进行配置[56]。最后使用API函数CreateThread创建一个线程。由于软件工作过程中需要传送的数据量不大,所以仅仅打开一个串口。 主线程打开串口具体流程图如图1所示。 图1打开串口、创建线程流程图在主线程中打开串口的代码如下: m_hCom=CreateFile(m_port,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL) 在串口操作线程中使用API函数ReadFile用于读取串口数据ReadFile(hCom,buf,19, Length, Eol);而在该线程中向AUV发送控制指令时使用: fState=WriteFile(m_hCom,buf,19, m_bytes, m_osWrite) 2.2串口通信协议 串口通信必须遵守一定的通信协议,才可实现该控制软件与AUV的正常通信。串口通信数据格式如图2所示,图中Data0,Data1,Data2…代表一个字(2 B)。 图2串口通信数据格式发送或接收的一帧数据最长为19 B,Data0中第1个字节代表指令(0xA1)、请求(0xB2)或者正常应答(0xC3)等含义;Data0中第2个字节代表具体指令、请求何种信息或者某种信息的应答。Data1,Data2,…代表发送或者接收到的数据。开关机指令长度为19 B,第19字节控制8个继电器,1,0分别表示开、关第零位控制总电源。开机、关机指令前18 B分别是: ~A16613579BDF02468ACE13579BDF02468A ~A166DF9B5713CE8A4602DF9B5713CE8A46 开机指令的第19个字节根据需要选择相应的继电器开启或关闭;关闭指令第19个字节为0x00,所有的继电器关闭。 3软件实现 3.1多线程实现 一个进程可有多个线程,使用多线程可提高软件的执行效率。该控制软件共有3个线程组成,包括一个主线程、一个导航线程和在成功打开串口后利用API函数CreateThread[78]创建的一个串口操作线程(如图3所示)。 图3多线程组织结构串口操作线程读取串口数据,并提取有效数据,接着利用函数PostMessage将有效数据分别传送到主线程和导航线程。主线程将有效数据根据协议进行解包并把数据包中包含的AHRS、数字罗盘、GPS等传感器和推进器、前舱环境参数等数据显示到界面上。当使用摇杆控制AUV的运行时主线程每隔0.5 s从USB接口接收数据,并转换成推进器转速以及方向舵的方向角信息,且将这些信息发送到串口操作线程写入串口。 在主线程中创建串口操作线程的代码如下: hThread=CreateThread(NULL,0,ThreadProc, (LPVOID)this,0,NULL); 在串口操作线程中将有效数据发送到主线程的代码如下: PostMessage(*pDlg,WM_MYMSG1, (WPARAM)buf,(LPARAM)Length); 3.2关键算法 由于惯性导航系统提供的位置估计精度会随时间而漂移,所以导航线程采用基于GPS/INS的组合导航[9]算法,用GPS辅助导航,即用GPS信息辅助修正惯导系统的输出,包括航向角和速度。对AUV的航向角信息修正是通过经典的PID控制算法来实现的,如图4所示。 图4AUV PID航向角闭环控制算法设Ji-1,Ji为AUV的2个节点,AUV即A点从Ji-1到Ji 点运行。设正北方向矢量为k=(1,0),根据图5按照下式可计算出角度θ。角度θ计算公式为: θ=AJie北|AJi|•|e北| =(Jix-Ax,Jiy-Ay)•(0,1)(Jix-Ax)2+(Jiy-Ay)2•02+12 =Jiy-Ay(Jix-Ax)2+(Jiy-Ay)2 在AUV进行Ji-1~Ji段的航行时,AUV根据导航算法不断算出坐标并判断是否到达指定区域,当离指定区域为R时(R很小),即可判定到达指定区域。在到达指定区域之前不断利用AUV PID航向角闭环控制算法修正航向角θ,最终实现AUV的GPS/INS组合导航。 图5航向角计算图解4控制软件界面及实验结果 4.1软件界面 本文设计的软件界面左侧上半部分和右侧主要实现对AUV的控制,界面左侧中下部分的3个仪表盘和TAB页控件显示AUV的各个状态信息。 单击开机、关机按钮将实现AUV的开启与关闭;单击询问AUV按钮,此时应答情况为AUV存在,表示监控软件与AUV的通信正常,否则应该检查无线模块和AUV。单击前舱参数、GPS经纬度、GPS时间、推进器状态、AUV航向角等按钮将持续获得AUV相应的信息;步进电机控制按钮用于实现方向舵的调整,进而实现AUV方向的调整。为了防止步进电机失步,这里还特意设计了步进电机的微调按钮,目的是在步进电机失步时将方向舵调整回原位置。 该控制软件还以仪表盘的方式显示推进转速、罗盘、温、湿度等信息。 以速度仪表盘为例,当从串口接收到的数据中提取出水平推进器或垂直推进器速度信息时,将速度信息存放到成员变量m_Spd1或者m_Spd2。利用API函数得到控件IDC_STATIC_SPD的区域坐标rect2,调用API函数InvalidateRect( rect2)重绘,将进入函数CDspsockDlg::OnPaint()重绘。利用MFC中的函数Pie,Ellipse,SetBkColor,TextOut[10]画出仪表盘背景。最后通过下列两个公式将速度值转换成对话框上的坐标值,调用函数画一条连接该区域中心位置到该点(a1,b1)的直线[11],最终实现仪表指针随速度值的变化。坐标(a1,b1)计算公式如下:b1=60sin((m_Spd1×3/25+150)π/180) a1=60cos((m_Spd1×3/25+150)π/180)4.2实验结果 软件运行期间界面显示如下。图6显示了温、湿度分别是32°,51.5°;单击复位按钮、温湿度指针将分别指向-30°,20°位置处;图6还显示了2个推进器的速度信息,其中水平推进器速度为1 180 r/min,垂直推进器速度为0,此时AUV在水平方向运动垂直方向静止。 软件设计毕业论文:软件设计类课程实践性教学的研究与实践 摘要:本文深入分析了计算机实践性教学的内涵,探讨了软件设计类课程实践环节的组织模式,研究了这一方案的可行性。 关键词:实践性教学;软件设计;课程改革;计算机专业;项目实训 0引言 从1956年哈尔滨工业大学率先开办“计算装置与仪器”专业算起,到现在普遍采用的“计算机科学与技术”专业,计算机专业教育在中国的大学里已经走过了50年的历程。70%以上的本科学校开设了计算机专业,在校学生近30万[1],其规模居所有本科专业的首位。加上专科、高职、中职在内,其数量还要大得多。计算机专业人才在信息化建设过程起着举足轻重的作用。然而,企业面对十里挑一的大好形势,却经常会找不到合适的人才,造成这种局面的主要原因是学校培养与单位需要存在一定的脱节现象,主要表现为重理论轻实践,动手能力差,因而改革实践环节提高学生的操作技能成为高校计算机类专业的必经之路。 1软件设计类课程实践性教学的内涵 实践性教学是指为配合理论教学,培养学生分析问题和解决问题的能力,加强专业训练和锻炼学生实践能力而设置的教学环节,通常有两种落实途径:一是随堂实践,即课程作业、实验、上机操作等;二是集中实践,即社会调查、各类实习及见习、课程设计以及毕业论文或毕业设计。教学计划中规定的作业、实验、实习等环节和集中实践环节是学生必修的内容,在课程和专业学习中具有突出的地位。不同专业的实践性教学方式,教学管理和考核办法也不相同,但都是以专业培养目标作为前提。对于计算机(包括软件工程)专业的软件设计类课程,其教学目的就是培养合格的软件工程师,适应软件设计和项目管理岗位的需要。 1.1软件工程师岗位需求 任何一个软件企业,开发团队都需要这样三类人才:一是既懂技术又懂管理的软件人才即系统分析师(高级),二是软件工程师(中级),三是程序员(初级),这三类人员在软件企业的正常比例应该是呈金字塔结构,根据国际经验,高、中、初级软件专业人才的比例应基本维持在1:4:8。通常系统分析师由研究生承担,软件工程师由本科生承担,程序员则由大专生以及专门培训机构的学员完成。如图1所示。 从图1可以看出,计算机专业的本科生对应软件工程师岗位,在软件开发团队中处于中间层,优秀者可以上升到系统分析员层次。同时,软件工程师也要兼任程序员角色,因为不少软件企业规模较小,难以按照软件工程的规范细化分工,需要能做分析、能写代码、能做实施甚至用户培训的“多面手”。作为高校,必须充分考虑这种情况,以培养软件工程师为主线,也要提高系统分析能力,同时还应该加强代码编写的训练。 1.2软件设计类课程实践性教学的内涵 软件设计类课程主要包括计算机语言类、开发类、设计类、制作类和工程类课程,共同的特点都是经过系统学习,既能够按照规范独立设计小型软件,组成团队后又能够设计出具有实用价值的中大型软件。 软件设计类课程实践性教学标目的是培养学生两个方面的能力:即独立编程能力和项目合作开发能力。一方面,能够利用所学语言和平台设计小型软件,同时能够按照项目分工,在项目经理(负责人)的统一安排下,在技术上服从既定的设计方案完成模块的开发,并做好相应的文档。良好的责任心、解决问题的独立编程能力和分工合作制的团结协作精神是必须重点培养的内容。软件设计类课程实践性教学的内涵如图2所示: 2软件设计类课程实践性教学的组织 按照软件设计类课程实践性教学的内涵,一般应包括3个环节:课堂实验实训、课程设计、项目实践,分阶段实施。其具体安排如图3所示: 2.1课堂实验实训环节 如果一门课程的教学任务规定在一个学期内完成,课堂实验实训环节应该安排在学期的前半部分进行,以讲授语法、数据类型、常用类库、开发平台为主。学生所学知识和编程技术有限,难以形成完整的程序思路,实践环节只能是练习基本功单独完成,以每一次堂或者每一个章节为单位安排学生进行相关的训练,以熟练掌握语法的基本用法,为后一阶段的课程设计做准备。老师指导时,要注意培养学生良好的编程习惯,包括标识符的规范化命名、注释语句的广泛运用、编程语句的缩进格式、帮助文档的使用方法,逐渐形成编程思想。 为了配合实践性教学,教材的选择也十分关键,最好是采用基于案例教学法或者项目驱动教学法的教材,这种教材往往会通过一些典型的实例或企业项目组织内容,大部分章节的主题相对集中,围绕项目展开讲述,特别适合于实践性教学。如果采用实践性较弱的教材,老师需要自行补充一些实习实训内容让学生当场消化吸收。 2.2课程设计环节 这一阶段十分关键,完全模拟软件企业的开发流程组成小组共同完成一个中小型项目的设计,一般安排在后半学期进行。这时要求学生停止其它课程的学习,每天八小时工作制,甚至晚上可以加班加点,专心设计项目,其最终成果包括软件和文档以及用户操作手册。以每班30人为例,可以考虑分为5个小组,每组6人,每个小组安排组长(项目负责人或称项目经理)一人,组长的职责是:组织成员实地项目调研、模块划分与任务分工、接口的确定、进度的监督与协调、集成测试等,组长直接接受指导老师的安排。鉴于组长在在项目设计过程所处的重要地位,老师在确定组长时,至少考虑三个方面:一是组织能力,二是专业技能的基本功,三是责任心。 这一过程通常安排两周到三周集中在校内机房(实训中心)进行,老师每天针对总体要求及当天的任务进行讲解,然后分小组实施。选择课题时,不宜太复杂,应尽可能让大多数课题组可以在规定的时间内做完。一般选取学生们比较熟悉的内容,如学生成绩管理系统、班级管理系统、教材管理系统、仓库管理系统、工资管理系统、就业反馈跟踪系统、水电费管理系统等,这些课题的要求大家都比较清楚,在校内即可进行客户调研和需求分析,同时也具有较强的推广价值,为将来的职业奠定基础。这时每个人同学都应该至少准备一本项目开发类指导书作为参考,因为涉及到数据库、界面、网络通信、硬件编程等方面的知识,仅仅靠教材还不够。 2.3项目实践环节 项目实践环节是学生到软件研发企业(校外实训基地)全程参与项目开发的过程,一般应安排在学期的最后一到两周或者利用假期顶岗实习,因为经过了课程设计,学生基本掌握了软件企业的开发流程和一般方法,进入软件公司后就能够较快地进入程序员角色,而不至于胆怯,也不会无所适从。完成本部分实践内容要做好以下三个方面的工作: 确定好项目指导老师:企业开发与在学校进行课程设计并不尽相同,软件公司具有自己的风格,往往更加愿意采用自己熟悉的开发工具,以达到客户的需求作为目标,并不一定会使用最新技术,这点与教学理念不同。理想的方案是由任课老师带队进入软件企业(校外实训基地),并选择目前正在开发的项目经理担任总负责人(校外实践指导老师),任课老师也参与项目实践并组织学生实施,因为一个优秀的项目经理不一定是优秀的老师,能做软件不见得会上课,项目负责人与任课老师共同配合更能发挥各自的优势,便于学生理解项目思想和相互沟通。经过简短的培训后,由模块责任人指导学生设计或者由学生独立完成,一切按照企业的开发规范进行。考虑到软件企业一次难以容纳过多实习生的特点,也可考虑将项目拿到学校来做,或者将项目经理请到学校现场指导,以节省时间和费用。 确定项目指导方法:开发应用项目没有现成的教材,需求分析、概要设计说明书、详细设计说明书、数据库和数据字典就是设计的依据,老师必须严格按照这些文档指导学生进行设计,定期检查学生的进度及过程,一旦发现偏差,及时纠正,将错误消灭在萌芽状态。 及时组织项目总结:每天规定一个时间,将同组学生集中起来,针对当天完成的任务进行总结,交流自己的想法,提出存在的问题,集体讨论,这样就能够做到日日有收获,天天有提高,从而锻炼自己的实战水平和组织经验。 3软件设计类课程实践性教学效果的考核 软件设计类课程实践性教学效果的考核也是一个较难把握的环节,既要考核学生的独立编程能力,也要考查其团队协作精神,同时还要考虑其组织能力、表达能力、文档编写能力、纪律性等内容。为了客观科学地评价学生的实际效果,最好是分阶段考核,各部分按照一定的比例综合得到总成绩,可以等级表示,也可以用分数反映。 在课堂实验实训阶段,可以由任课老师根据每一次操作任务的完成情况进行登记评分,重点考察其规范程度,对于具有创新性的作品,可以适当加分,并在全班展示,让设计者讲解思路,为其它同学提供启示。 课程设计阶段的考核由指导老师和项目组长组织学生共同进行,首先由组长汇报课题的设计思想、主要技术、任务分工等情况,并演示软件,大家可以相互提问。老师根据项目完成效果确定这个组的等级,然后由各位成员介绍自己所设计的模块,老师重点检查此模块的功能、难易程度、技术含量、界面美观等因素,再确定其成绩或者等级,这时还要充分考虑组长对成员在设计阶段各方面的综合表现。 项目实践阶段的考核由校外指导老师和校内老师组成考核小组,利用项目汇报加平时表现的形式评定,既要考察项目的完成情况,也要考察各位学生在企业实习期间的领悟能力、工作主动性、团队合作情况、算法的复杂性、程序的规范性等方面,其主要依据是提交的软件(包括源代码)以及各种文档。 实际上,对于实践性教学的考核可以采用灵活的方式进行,不拘一格,比如聘请行业专家、现场答辩、随机抽题、项目论文等形式,只要能够检查学生的真实技能即可。 4我们的实践 我们学校十分重视实践性教学,长期坚持强化学生的动手操作能力和实战水平、力争与企业零距离接轨的做法。为了提高程序设计类课程的实践性教学效果,主要采取了以下措施: 4.1严把教师关 教师是实践性教学效果的基本保证,学生的水平在一定程度上反映了教师的水平,既具有扎实的理论功底,也拥有丰富的项目经验是优秀教师的标准。一方面,我们积极将已有教师定期送到企业实地参加项目开发实践,积累经验,另一方面,不断从软件企业引进专业技术人才,将他们的成功案例带回学校,同时,每年组织专业教师进行实践性教学能力考核,通过考核者才能承担课程设计和项目实践的教学任务,并频发相应证书,作为教师晋升职称和评先评优的重要指标。 4.2实践性教学环节流程化 改革原来的学期一贯制,将一个学期分为两个阶段,前一阶段以学习基础理论为主,随堂考试,在学期的最后几个礼拜专门安排做课程设计,一般开设两门小课,专心实践,在项目指导老师的统一安排下,综合运用本学期所学的程序设计工具,结合前面所学内容,以项目小组的形式,完成一个小型软件的设计,成绩计入学生档案,完成者才能获得相应的学分。暑假或者寒假以及最后一个学期,老师分批带领学生前往校外实训基地或软件企业从事项目开发,作为社会实践或毕业设计的成绩,并要求撰写项目总结或论文。 4.3实验室环境企业化 聘请软件企业技术人员设计实验室(实训中心)建设方案,将原来的布局改造成软件研发中心或者工作室模式,服务器、网络设备、数据库完全仿真企业的环境,将开发流程和软件文档国家标准打印并悬挂在墙上,并购置专业书籍存放在实验室,让学生一旦进入实验室,就能迅速感受到真实的企业氛围,还能方便查阅相关资料。 4.4实践项目规范化 教师和软件企业合作开发一整套实践教材,采用项目驱动、案例教学作为主要方法,将常用软件项目的全部开发过程编写到教材中,源程序存放在服务器,供学生编程参考。每次课程设计或者项目实践后都要评比出优秀作品,将其全部程序及文档资料保存下来,供以后教学和低年级学生使用。 经过近几年学生的反馈情况,我们的改革收到了良好的效果,学生在校期间已经具备了一定的经验,走入社会即可迅速融入开发团队,胜任软件工程师职责,深受单位的好评,不少毕业生特别是原来担任过项目小组长的学生很快即可成为业务骨干或者项目经理。 5结束语 高校教学与行业脱节是普遍存在的现象,程序设计类课程实践性教学更是一个永恒的话题。所幸的是,学校和企业都充分意识到了这一点,各高校正在采取积极的举措消除这一段距离,企业已变得越来越务实,不断细化岗位职责。随着校企合作的深入,订单培养方式的持续,相信在不远的将来,这种差距会越来越小,直到完全消失,那时学校、企业、学生三方都能成为实实在在的受益者。 软件设计毕业论文:PBL的改进及在“软件设计模式”课程教学中的应用研究 摘要:本文讨论了软件设计模式课程教学中的几个问题,介绍了经典的PBL教学法及其不足,对其教学过程设计进行了改进并给出了一个教学案例,另外本文还就应用PBL教学法的注意事项进行了讨论。 关键词:PBL;软件设计模式;计算机教学;面向对象;教学方法 “软件设计模式”是一门理论性和实践性都非常强的课程,内容抽象难懂,目前的大部分教材仅仅在一般意义上给出了各种模式的定义、结构、代码框架,授课时容易出现内容空泛、言之无物的情形,学生感觉这门课程比较困难。如何根据学生的特点,选用合适的教材,采用适当的教学方法是提高软件设计模式教学效果所必须要解决的问题。本科学生的特点我们很难改变,教材问题可以通过授课教师的主观努力,以讲义和补充材料的方式加以解决,而本文则主要讨论软件设计模式的教学方法问题,即在软件设计模式课程的教学中如何使用PBL教学方法来提高教学效果。 1PBL及改进的教学过程设计 PBL(Problem-based Learning)是一种行之有效的“做中学”教学方法,最初是由Barrows在加拿大McMaster大学提出来的一种教学策略和课程设计思想,符合以学生为中心的自我引导学习的建构主义学习理论。有效的PBL可以提高学生下面这几方面的能力和素质:解决问题的技能;思维能力;团队合作能力,包括赏识和包容异类学习同伴的精神;组织利用时间的技能;获取和评价信息的能力;传播信息的技能;计算机运用能力等。 在教学中引进PBL教学法后我们发现该方法的不足之处,主要问题是:时间消耗量大,学生学习的效率不高;在班级规模较大时,教师对教学的组织和教学过程的控制也存在很大的困难;以小组为单位,容易造成学生能力发展不均衡,出现小组内某些学生成为主导,另一些学生则滥竽充数的情况。为此我们对PBL方法作了一些修改,教学过程设计如下: (1) 提出一个与本次课程要学习的设计模式相关的设计问题。这一步非常关键,提出的设计问题必须与学生已有的基础较接近,规模适中,是学生可能完成的任务。这样可以激发学生的学习兴趣。 (2) 讲授与该设计模式相关的面向对象的设计原则。对这些原则的讲授可以贯穿在该门课程的整个教学过程中,适当的重复和强调可以加深学生的印象,促使学生在其今后的设计中自觉运用设计原则,即使不套用设计模式,也能产生良好的设计方案。 (3) 给学生留出时间,让学生设计前面问题的解决方案。要求每个学生自己进行设计,但允许和同学讨论。 (4) 抽取并公布学生的设计方案,组织同学讨论其优劣,对比与事先提出的设计目标的差距并分析原因。 (5) 以相应设计模式的思路,对学生的方案进行改进,并给出其简单实现。 (6) 从上述实例中提炼出要讲授的设计模式,总结其意图、结构、角色、示意性代码,分析其可能的变化。 (7) 布置一个类似的设计问题作为课偶作业,要求学生给出完整的设计和实现。 我校“软件设计模式”课程只有32个学时,在这么短的学时内让学生完整深入地掌握23个设计模式是不现实的。 我们在制定教学大纲时充分考虑到了这个问题,选取了其中一部分作为课堂教学的内容,选取的准则是:①是常用模式;②在模式分类中具有代表性。其余的设计模式则留给学生课后自学。 2一个基于PBL的设计模式教学案例 Strategy Pattern(策略模式)是一种常用的重要的设计模式,下面以该设计模式的教学为例,说明PBL教学方法的应用。 (1) 提出问题。某公司销售打印机时有一定的折扣让利给顾客,但折扣计算的方法有很多种,如不打折、每台减扣固定的金额、按售价的5%打折等。现在要为该公司开发销售系统,实现打印机销售时的折扣计算,要能够灵活地选用折扣计算方法,并且可以很容易地增加或修改折扣计算方法,而不至于对整个系统的维护造成困难。 (2) 相关设计原则的讲授。本设计模式主要涉及三个面向对象的设计原则:针对接口编程,而不是针对实现编程;优先选用对象组合,而不是类继承的软件复用方式;分离变化,并对变化进行单独封装以使得今后对软件的维护局部化。在讲授这三个原则时,各举简单的例子加以说明。 (3) 让学生解决第一步提出的问题,给出设计方案。设计时尽量运用前面讲授的三个设计原则。要求每个学生自己动手,但鼓励讨论。 (4) 抽取学生的设计方案,并比照第一步提出的设计目标进行分析讨论。由于时间关系,不可能对每个学生的方案进行讨论,一般鼓励学生主动提交,主动提交的学生一般认为自己的设计方案较好,此外也可以选一个不理想的设计方案进行讨论。 学生的设计方案五花八门,图1是其中的一种。 图1 学生的一个设计方案 该设计方案部分运用了讲授的设计原则,如PrinterSaler使用抽象类Printer而不是直接使用具体类HPPrinter等,这体现出学生试图运用针对接口编程的原则;该方案将计算折扣的方法单独抽象成一个接口,但却是用打印机的具体类来实现该接口的,说明了设计者意识到计算折扣是变化的部分,试图将其分离出来,但却没有将它进行独立的封装,因此对改善系统的可维护性和折扣方法的灵活选用并无多大帮助,而且由于抽象类Printer没有实现该接口,使得PrinterSaler通过使用Prinetr来计算折扣难以实现。 通过分析和讨论(这一过程要鼓励学生参与发言,而不是教师唱独角戏)学生的方案,指出其不足,并一步步加以优化,最后可以得到基于Strategey模式的设计方案,如图2所示。 图2 基于Strategy Pattern的设计方案 在此强调由于折扣计算方法的分离和单独封装,就可以通过实例化不同的具体折扣计算类ConcreteDiscount并赋值给Printer的引用变量(假定为Discount),然后通过调用discount.calcDiscount()灵活选用相应的折扣计算方法;折扣计算方法可以被所有打印机类复用,甚至可以被其他类复用;而且修改或增加新的折扣计算方法也不会影响其他打印机类的代码。 (5) 为了使学生有更为切身的体验,给出上述设计方案的实现代码,编译并演示运行结果。 (6) 从上述实例中提炼出要讲授的设计模式,总结其意图、结构、角色、示意性代码,分析其可能的变化。 (7) 布置一个类似的设计问题,作为作业,要求学生给出完整的设计和实现,提交实验报告。 软件设计毕业论文:面向财务应用的软件设计课程教学模式 摘要:为了培养既懂财务又懂软件开发技术的复合型人才,根据金融财务类应用的需要,本文提出了一个面向软件课程设计的教学模型。融合计算机基础理论、软件开发技术、软件工程学原理以及CMM软件过程体系,构建了教学模式框架。该模型具有良好的课程总体结构以及动态适应新技术发展的能力,该模型适合财务类院校软件复合性人才培养的需要。 关键词:软件课程设计;财务应用;复合型人才;教学模式 1引言 目前,中国软件产业计划以超常规的发展速度在世界上占有一席之地。 软件产业近年来已成为中国电子信息产业中增长最快的部分之一。在新一轮的国际分工中,高附加值、低成本、智力密集型的软件与信息服务业正逐步向亚太地区转移,这给中国和印度等国的软件产业带来巨大的发展机遇。尽管中国软件产业已从初始阶段进入成长阶段,一些软件企业正在一步步正规化;但是软件企业和软件人才结构不合理:几乎没有从事个人消费者软件的企业;大部分软件人才为编程工程师,缺少软件架构师、项目经理、测试员等。另一方面,随着IT技术的飞速发展和日新月异,特别是互联网技术的发展和应用,企业能够在一个全新的、统一的高科技信息技术的环境支撑下来建立和实施现代企业管理。财务软件系统的应用已经普及,但我国财务软件的发展前景却不容乐观,财务管理人员队伍普遍存在知识老化,不能适应网络经济时代对财务管理工作的需求,也不能很好地理解和使用财务软件和信息系统,直接影响了财务软件的使用效果和财务软件产业的发展。会计制度体系的变革和会计理论研究的滞后是制约财务软件和财务信息系统的模型进行创新设计的重要瓶颈,影响了财务软件产业的发展。 财务软件设计的复合型人才在财务软件产业发展中处于最重要的地位。财务软件设计的复合型人才必须在财务和计算机软件设计两个领域都非常有专长,成为这两个领域里的行家里手。所以,培养高级的、现代化的财务软件设计的复合型人才势在必行。目前我国财经高等院校和大部分综合类高等院校、成人高校和新兴的职业技术学院都开设有计算机专业和财会专业。但从横向上看,这两个专业在课程的设置上还存在着“单打一”的现象;从纵向上看,课程的深度,尤其是计算机网络知识和财会知识的结合程度比较肤浅,学财会的学生仅仅掌握数据库的操作和简单的凭证输入及报表编制是远远不够的。从将来培养高级会计软件工程人员的角度出发,计算机和财会专业应互相渗透、互相兼容,让学生“两条腿”跑步,对于这类学校的计算机专业更要调整软件课程设计模式, 使学生能够迎接当今财务软件产业的挑战,获得更多的工作机遇。 软件设计课程是一门综合性的实践课程,其通过合理的软件项目,来锻炼学生的分析、设计、编程、测试、维护等多方面的综合能力,既要学生掌握应用领域的专业知识,又要学会应用计算机软件的专业理论来解决应用领域的实际问题。如何通过软件课程设计来提高学生在未来工作中的适应能力,是目前软件教育业普遍关注的核心问题。如何使软件课程设计具备灵活的面向财务应用的适应能力,也成为金融财务类院校探讨的热点[1、2]。本文针对培养财务软件设计开发的复合型人才的需要、结合计算机基础理论、软件开发技术、软件工程学原理[3]以及软件过程模型[4~6]的特点,提出了一个软件课程设计动态模型。其可以根据学生的不同层次、不同的培养目标,定制裁剪,该模型适合财务类院校软件复合性人才培养的需要。 2面向财务应用的软件设计课程教学模式 2.1 课程目的 面向财务应用的软件设计课程教学目的如下: 1) 锻炼学生综合分析、设计、开发软件产品的能力; 2) 融合学生已经学过的计算机课程、财务会计课程的内容,使理论与实践相结合; 3) 根据当前的技术发展水平和社会财务软件行业的需求,适当扩充学生的新技术的容量; 4) 掌握规范的软件开发过程、管理过程,与国际软件界接轨; 5) 财务管理系统对软件设计的要求。 2.2教学模式的框架 面向财务应用的软件设计课程教学模式应该根据财务复合型人才培养的需要,结合现有的计算机基础理论的教育,同时融合现代软件工程学的思想,制定相应的教学框架。该教学模式的框架结构如图1所示。 图1中的有向边表示各个部分之间的依赖关系,各个组成部分描述如下: (1) 软件、财务基础课程 该部分是“软件课程设计”的必要基础条件,应在开设“软件课程设计”之前完成。主要有:离散数学、数据结构、数据库原理、过程程序设计、面向对象的程序设计原理、计算机系统结构、计算机网络、操作系统、会计学、财务管理、会计信息化。 (2) 各类应用模型 主要探讨与企业应用相关的领域模型,不仅仅限于财务软件系统。其可以包括如下内容: 1) 电子商务; 2) 企业资源管理; 3) 客户关系管理; 4) 供应链管理模型; 5) Internet多媒体应用; 6) 财务管理等等。 (3) 研究的软件课题集 根据(2)所描述的应用领域,根据学生的不同层次和培养目标,抽象领域应用模型,形成供软件课程设计所需的软件课题集。每个软件课题既要包括该软件所需的应用领域背景、领域知识、领域模型,又要包含该软件系统开发的所有文档、过程文档、以及学生实际开发过程文档、评测文档、改进文档等等。该部分是该模型的核心,其的构建需要若干周期的软件开发和学生实践才能获得,同时还要考虑软件应用领域和软件技术变化发展的因素。 (4) 当前流行的软件技术 主要包括当前业界盛行的开发技术。这些技术不仅是学生完成该课程所需要,而且也是当前主流的软件开发技术和工具;学生掌握这些技术后,在就业的竞争中,可以发挥重要作用。并且这些技术应该随着产业的发展而变化发展。目前主流的技术有: 1) 基于微软.net技术的应用开发模式,如Windows OS、C++、C#、VB、ASP、SQL SERVER等; 2) 基于SUN公司的JAVA2(EJB)、SUNOne技术的应用开发模式,如LINUX、JAVA Bean、JAVA2 EJB、JSP、ORACLE等; 3) 基于OMG的CORABA技术的应用开发模式,如C++、ORACLE、UNIX等。 (5) CMM体系 CMM模型已经在业界得到公认,并且如果软件企业要想获得美国的软件开发资格,必须要通过CMM认证。如果学生在学校能够了解CMM体系,那么其在今后的企业工作过程中就可以很好地适应企业认证的需要,同时也增加了学生的就业竞争力。CMM体系分为三个层次:1)PSP(The Personal Software Process)规范;2)TSP(The Team Software Process)规范;3)CMM(Capability Maturity Model)规范。由于该体系过于庞大、抽象,学生掌握比较困难,所以可以重点培训PSP和TSP过程规范。 (6) 课程过程文档集 课程过程文档是掌握学生学习情况的重要依据。学生的学习过程的记载可以参见PSP模型,但又不可生搬硬套。PSP的许多文档过于繁琐,实践证明学生感到其过于单调,往往会影响学生的学习兴趣。在构建过程文档的时候,还要引进PSP模型中的小组过程信息,使过程和软件项目的整体所统一。 (7) 课程评测系统和评测规范 评测系统要根据学生开发的软件产品原型、课程过程文档集以及评测规范来进行。评测不仅要对软件原型的功能、性能进行检验,还要评测软件过程文档的规范性、完整性。更重要的一点,要评测学生的应用领域知识、背景的掌握情况;必要时可以给被评测者一个新的应用领域模型,来检测其对新问题的处理能力。评测规范应该根据实际情况而定,既要检验学生的专业深度,又要考虑其应用知识面的广度;既要定量考虑,也要定性分析。有关具体评测方法可以参见CMM体系。 (8) 课程的实际效果 课程的目的是培养应用领域复合人才,课程的实际效果的检验需要学生的实际就业情况、实际工作情况而定。可以建立一套学生跟踪系统,和学生签订检验合同。毕业就业的学生定期把自己的工作情况反馈给该跟踪系统,跟踪系统根据这些反馈进行整理分析,以便动态调整该课程模式的实施。 2.3课程模型的实现模式 在课程模式框架图中,涉及的范围太广,学生很难掌握,所以可以根据学生的实际情况分解成四种实现模式: (1) 单一技术模式 单一技术模式主要培养学生的软件开发技术,同时要掌握个体软件过程技术。根据本模型框架,可以裁剪为如下内容: 1) 具体一门技术; 2) 一个简单的应用模型; 3) 财务系统分析工作; 4) 基础软件工程学; 5) PSP规范、财务管理标准及规范。 (2) 软件开发规范模式 软件开发规范模式主要培养学生的软件开发技术,同时要掌握软件过程模型,重点为CMM体系。根据本模型框架,可以裁剪为如下内容: 1) 具体一门技术; 2) 一个简单的应用模型; 3) 财务系统分析工作; 4) 基础软件工程学; 5)PSP规范、TSP规范、财务管理标准及规范。 (3) 复合模式 复合模式主要培养学生的领域问题解决能力、掌握软件开发技术,同时要求掌握软件过程模型,重点为CMM体系。根据本模型框架,可以裁剪为如下内容: 1) 具体一门技术; 2) 一个中等难度的应用模型; 3) 财务系统分析工作; 4) 基础软件工程学;5)PSP规范、TSP规范、财务管理标准及规范。 (4) 高级模式(研究生) 高级模式主要培养学生的领域问题分析能力、掌握建模技术、开发技术、管理技术,同时要掌握软件过程模型,重点为CMM体系;这个模式需要学生已经具备良好的软件开发技术和软件工程学原理。根据本模型框架,可以裁剪为如下内容: 1) 一个大的应用模型; 2) PSP规范、TSP规范、CMM规范、财务管理标准及规范。 2.4实施部骤 该模型的实施步骤如下: (1) 模型集构建 1) 收集已经完成的应用项目; 2) 项目归类; 3) 项目抽象成应用模型; 4) 给出评测标准(规范)。 (2) 确定实现模式 1) 了解学生基础情况; 2) 测试学生的能力; 3) 选定一个实现模式。 (3) 学时安排包括 1) 新技术培训; 2) 项目开发、评测; 3) 总体评测、评分。 3结束语 企业财务电算化的普及,是提高企业科学管理水平、增强竞争力的核心。培养既懂财务、又会软件设计、同时具备软件过程规范的复合型人才是企业的需要,同时也是金融财务类院校的责任。有效的软件课程设计的教学模式是培养复合型人才的关键,本文提出的模型对这方面进行了初步探讨。有关具体内容还需在实际的教学过程中细化、研究。 软件设计毕业论文:根据社会现代服务业要求建设创意与软件设计专业 摘要:专业建设只有根据社会产业需求进行才有生命力。随着现代服务业的快速发展,社会急需创意与软件设计人员,所以重点建设好创意与软件设计类专业,培养适应软件、创意设计等现代高端服务业发展要求的有用、适用人才是当务之急。本文阐述了上述观点。 关键词:创意产业;现代服务业;软件产业;专业建设 1专业设置的必要性 为加快无锡国家动画产业基地建设,促进动漫产业发展,无锡市政府先后出台《市政府关于鼓励和扶持动漫产业的若干政策意见》和相关补充条款。为加快发展我市软件产业,加快经济增长方式转变,无锡市政府又制定了《市政府关于加快无锡市软件产业发展的意见》,要求到“十一五”期末,无锡要培育一批骨干龙头软件企业,要成为江苏省内乃至国内重要的软件产业基地之一,到2010年要完成软件业销售收入300亿元,全市拥有省认定的软件企业200家。为抢抓国际服务外包转移机遇,加快集聚国际服务外包和软件出口企业,把无锡太湖保护区建设成 “中国服务外包示范区”,无锡市人民政府制订了《市政府关于集聚国际服务外包和软件出口企业“123”计划的政策意见》,提出到2010年末,全市要集聚国际服务外包和软件出口企业100家,每家企业从业人员超过2000人,年出口超过3000万美元。 产业发展、人才需求对职业教育提出了新要求,同时也为职业教育提供了新机遇。我校将紧紧抓住这一机遇,以服务为宗旨,以就业为导向,总结现有动漫、软件和设计专业的办学经验,开设创意与软件设计类专业,重点培养无锡服务外包产业发展所需的软件、创意设计、动漫影视类中端及实用性人才。 2专业设置的可行性 学校信息类和艺术类专业已开设多年,形成了一支结构合理、业务精良的师资队伍,取得了明显的办学成果,为创意与软件设计类专业建设奠定了良好的基础。学校早在上个世纪80年代初就引进计算机课程教学,1993年设置计算机技术及应用专业,并很快开发出软件、维修、网络等专业发展方向。顺应地方经济发展对人才的要求,1999年学校又设置多媒体制作专业。2004年,在全国的同类型学校中,率先与印度国家信息技术学院(NIIT)合作,培养软件开发人才。2006年与汇众益智科技有限公司合作,培养游戏人才。2007年增设影视动漫专业,并于同年秋季首次招生。 学校拥有一支专兼职结合,结构合理的专业教师队伍。学校现有信息和艺术设计类专业教师44人,其中高级职称教师11人,中高级职称教师占本专业教师的62%。享有国务院津贴专家1人,特级教师2人,省市级骨干教师9人。双师型教师26人,现已参加NIIT培训8人,参加游戏动漫培训并获得相关技能证书6人。21人硕士研究生毕业或在职攻读硕士学位。学校还拥有一支由行业专家、企业技术骨干组成的兼职教师队伍。他们参与专业开发、课程改革和教学活动,是学校的宝贵资源。 学校坚持从产业结构调整和社会岗位的变化来谋划专业设置,坚持面向职业需求,以培养学生能力为本位实施课程改革,加强专业建设。2004年计算机技术及应用专业被评为江苏省示范专业,2007年“FLASH动画制作”课程被评为无锡市优秀课程。在校学生参加各级各类技能大赛,多次获奖。 学校已建成“三中心五室”实训基地。“三中心”为网络中心、信息技术研发中心、计算机技能综合实训中心;“五室”为游戏动画制作实训室、NIIT软件开发实训室、计算机网络实训室、多媒体工作室和美术基础实训室。基本满足当前教学需要。 3专业设置方案 (1) 专业设置、学制和培养目标 培养目标:培养大专层次的创意与软件设计产业所需的中端及实用型技能人才,见表1。 学制:初中起点五年。 (2) 教学设施和实训基地建设 学校将本着配套、实用、先进的原则,加大投入,增添创意与软件设计类专业教学所需的设施设备,并建成1200O的校内实训基地,见表2。 说明:动漫实训基地包括渲染工作室、手绘工作室、模型工作室、美术工作室、动作捕捉室、影视高端实训室、专家指导工作室、摄影棚、放映室、衍生产品工作室等。 基地建成后,学校还将以此为载体,面向社会开展技能培训和职业资格认定;主动迎接企业教育社会化的任务,承接企业订单,参与企业技术改造和产品研发,使其成为产教研合作的新平台。 (3) 教师队伍建设 专业建设,教师是关键。除借助国家、省、市已有的各类师资培训途径培养教师外,学校拟针对专业教师专业知识丰富、实践经验不足、动手能力不强的现实,加强校本培养和培训。一方面学校将花大力气从企业引进有志于学校教育的实用型专业技术人才;另一方面继续推行专业教师下企业实践的制度,每年至少选派一位教师下大企业进行为期6个月到1年的实践。另外,学校还设想依托已有的“大昭”工作室,鼓励教师搞专业开发、技术改造、技术创新和产品生成,培养本专业的技术领袖。 (4) 教材建设 教材建设是专业建设的重要内容,但目前这类专业可供选择的教材不多。学校将根据教学计划、教学大纲选择优秀教材,并根据前期开设NIIT软件技术、游戏动漫等专业的经验,继续引进与国际接轨、符合企业要求的优质教育资源,还将组织教师自主开发、编写顺应产业发展、适合于教学、有利于提高学生动手能力的教材,见表3。 (5) 校企合作 职业教育的本质是向企业提供人力资源,所以职业院校和企业有着天然的联系,校企合作就成为学校和企业的共同选择。下一阶段,学校将继续加强与企业的合作,在为企业输送人才的同时,依托企业培养师资和学生,实现“双赢”。 根据无锡产业的发展走向,动漫影视、动漫游戏、软件、创意设计类人才的需求是大量的。我们将延续学校近百年办学所形成的厚重文化,解放思想、抢抓机遇,提升传统优势专业,拓展创意与软件设计等新专业,为无锡经济跨越式发展提供智力支持和人才支撑。
计算机软件论文:计算机软件开发与用户实践的提升策略 1在设计方面要考虑用户对软件的印象 根据调查显示,网络用户在快速阅读过程中通常会呈现出“F”型的习惯,也就是在特定时间内,用户迅速浏览网站的时候会先看到网站的顶端与左侧内容,而中间的内容只能够被阅读到一部分。所以我们在设计网站界面的时候可以遵循“F视线追踪原则”,将各个部门按照主次次序放置到框架之中。如果一个网络用户在浏览到一个新的网站的时候,如果在三分钟之内还没有发现能够吸引自己兴趣的内容,那么这个网站就会100%地失去这个客户。在近几年,许多软件开发公司喜欢用过去的项目模版来设计主界面,这无形中是有利于提高软件开发速度,并且减少耗费创新技术、思路的时间与风险,然而如果一个软件产品长期保持一成不变的风格,那么就不会为用户留下深刻的印象,进而失去市场竞争力。软件开发商必须要根据商业营销学的理论,寻找到自己的目标客户群体,之后根据这个客户群体的偏好、特征来设计软件界面的整个风格,让使用者可以看到产品第一眼后产生一种与众不同的感受。 2在程序选择方面要注重优化与处理效率 我们在软件产品设计的算法方面要注重优化设计,当软件运行过程中耗时较多就需要我们注意处理、降低广大用户在等待过程中的不满情绪。随着科学技术的不断发展,计算机性能与运算速度的不算提升,诸多程序开发工作中将程序运行缓慢的原因归咎于计算机的问题,不会从自身编程过程找原因,因此软件开发工作效率较低,许多软件产品恶评较多,所以我们需要在能够控制的范围中优化程序代码,给予用户们科学、高效的产品体验过程。针对一些确实耗费时间的操作软件,我们可以通过进度条显示、后台运行等方式来调整,让用户心理上顺畅。笔者曾经有幸亲自参观了某通讯公司新任务的运行体验,工作人员每次点击用户的查询请求,在系统返回的时候需要几秒钟甚至几十秒钟,使得该公司用户抱怨数量众多,而这正是缺乏优化功能的原因。 3产品功能设计要结合人性化与灵活性的特征 传统设计受到信息化社会发展的影响,使其正处在改造进程的关注对象。当前计算机发展所带动的现代技术发展并没有到达高潮,但是计算机作为理想化的设计工具,正在逐步改革自身的设计途径、方法、过程,并逐渐迈向到数字化设计的时期。如果我们说数字化是现代社会的发展特征,那么人性化的设计就是对这种存在具象的诠释。我们在产品设计过程中,尽管存在着模块化设计的理论,但是作为产品设计者的我们不能忘记软件产品最终是为大众服务的,必须要将用户体验过程放在首要位置。另外,在软件产品设计过程中,要注重业务模块之间相互搭配的灵活性属性,不能盲目追求大众的操作形式。在广大用户使用计算机产品过程中,随着人们的个人喜欢与聚焦点不同,使用产品的方式也是具有差异性的。笔者曾经设计过一套工程方面的预算系统,部分用户关注最后的造价,而另一部分用户关注的是建筑材料的使用状况,侧重点不同导致自身操作步骤也是不同的,因此我们在设计产品过程中需要注意到这一点。 4结束语 随着科学技术的不断发展,用户对于计算机软件设计水平的需求不断提高,软件开发工作者务必要对目标群体进行深入性研究分析,要真正地了解到用户群体喜欢什么样的软件,需要什么样的软件,关注什么样的团结,从每种软件的运行界面、使用功能、运用条件等诸多方面来实现软件的优化设计,站在用户的角度来面对软件的多个问题,只有遵循这样的原则,才能够满足诸多用户群体的需求,开发出优质的软件。 计算机软件论文:开发自动判断酸碱失衡类型的计算机软件及应用 血气酸碱分析已成为临床诊疗的重要手段之一,尤其在危重病人的抢救中,能否准确快速进行酸碱失衡的判断往往是治疗成败的关键。为了帮助临床医生更准确快速地进行分析和判断,我们自主开发程序,输入检测数据,软件能自动判断酸碱失衡的类型。 1资料与方法 1.1在WindosXP平台下,以改良Henderson-Hasselbalch公式以及代偿预计值计算公式为基础建立数学模型,用VisualBasic6.0编写全部程序.输入动脉血气及血清电解质检测数据即可输出酸碱平衡的类型。 1.2以本院重症监护室2012年1-5月66份血气检测数据分别用程序、手工计算和siggaard-Andersen酸碱平衡诊断图得出结果。 1.3采用kappa检验进行统计学分析,Kappa值 0.80一致性强度为强,Kappa值 0.90一致性强度为极强。P 2结果 2.1与手工计算对比结果66例血气检测数据,对单纯性酸碱失衡达到100%符合率,双重性酸碱失衡能达到96.7%符合率。对三重性酸碱失衡达到93.3%符合率,经kappa检验,k=0.95,u=10.72 u0.01=2.276,故P0.90,其一致性强度为极强,见表1。 2.2与siggaard-Andersen酸碱平衡诊断图对比结果酸碱图不能判断三重混合型酸碱平衡。对阴离子间隙(AG)大于17的患者,判断也常出错。下表为66例患者中去除AG 17所剩40例血气检测数据的结果比较。对单纯性酸碱失衡和正常血气能达到88.9%符合率。对双重性酸碱失衡达到95.5%符合率,经kappa检验,k=0.8477,u=10.025 u0.01=2.276,故P0.80,其一致性强度为强,见表2。 3讨论 酸碱失衡的诊断,特别是混合型酸碱失衡的诊断是较复杂的问题,即使是有经验的医师也很难在短时间内作出准确判断。我们发现siggaard-Andersen酸碱平衡诊断图无法判断三重酸碱失衡,且对AG 17时的酸碱失衡也判断不准确。酸碱图使用时也不方便,因酸碱图的不足限制其在临床上的应用。手工计算需要记忆大量公式,对低年资医生来说也很困难。 本研究显示我们自主开发的程序,准确性高,与手工计算相比较对单纯性酸碱失衡达到100%符合率,双重性酸碱失衡能达到96.7%符合率。对三重性酸碱失衡达到93.3%符合率,与siggaard-Andersen酸碱平衡诊断图相比较对单纯性酸碱失衡和正常血气能达到88.9%符合率。对双重性酸碱失衡达到95.5%符合率。经kappa检验一致性具有统计学意义且K值均大于0.80,一致性强度为极强和强。 我们自主开发的程序,使用方法简单、准确性高,可作为临床诊断和治疗的参考,值得临床使用。但是因临床病例较少,程序的稳定性和准确性有待进一步验证。在严重低蛋白血症时,AG值存在误差,需要校正后再判断酸碱平衡,盲目使用本程序可能有误,这需要特别注意。 计算机软件论文:计算机软件在电缆安装工程中的应用分析 摘要:通过对传统的电缆安装施工方法与计算机软件管理方法进行比较,以intec软件在秦山三期(重水堆)核电站常规岛电缆安装工程中的应用为例,简要介绍了计算机软件在电缆安装工程中的应用方法,指出了intec软件在实际应用中存在的问题,建议国内的设计单位和项目管理单位在电缆安装工程中采用计算机软件进行控制与管理。 关键词:计算机软件;电缆安装;电缆敷设;电缆接线 电缆安装是发电厂电气安装工程的重要组成部分,它在发电厂电气安装工程中所占的比重约在60%以上,电缆敷设与接线是电缆安装中的重要工序,电缆敷设与接线施工质量的优良是实现电气安装工程质量优良的重要前提。虽然目前国内的电缆安装工艺有了一定的进步,但与国外先进技术相比,电缆安装在设计应用、施工管理等方面还存在一定差距。 1我国电缆安装技术的现状 在国内发电厂电气安装工程中,施工单位根据设计单位提供的电缆平面布置图、电缆排列剖面图和电缆清册进行电缆敷设,根据二次端子排图进行电缆接线。电缆清册是根据电气主接线系统图、厂用电系统图和照明系统图列出的全厂电力电缆,根据直流系统图列出的全厂直流电缆,根据二次端子排图列出的全厂控制电缆编制而成,它是订购电缆及指导施工的重要依据。在中、小型工程项目中,电缆根数较少,电缆总长度较短, 使用常规方法施工难度不大。但是,在大型的建设工程中,电缆根数多,电缆总长度长,涉及的工作面广,如果仍采用常规方法施工,不仅在设计和施工准备阶段要投入大量的人力物力,而且施工过程中的安装进度也难以控制,施工工艺要求难以得到保证。近几年,计算机技术迅猛发展,计算机软件的出现,为这个问题提供了新的解决方法。 计算机是一种可进行自动控制和具有记忆功能的现代化计算工具和信息处理工具,它特别适合处理信息量大、种类多且有信息组合和历史文件查询要求的事务。计算机技术及相关的信息处理技术和网络技术的发展,使数据处理已成为计算机应用的一个最重要的部分。近几年,在我国的几个大型涉外建设工程中,计算机软件已应用于电缆安装。例如,岭澳核电站采用了pericles软件指导电缆安装施工,秦山三期(重水堆)核电站在电缆安装中使用了intec软件。 2intec在秦山三期(重水堆)核电站常规岛电缆安装中的应用 秦山三期(重水堆)核电站工程是“九五”期间国家重点建设项目,在浙江省海盐县境内建造一座装机容量为2×700mw级的重水堆核电站,设计寿命为40年,工程总投资约28.8亿美元,项目建设采用交钥匙合同模式,由加拿大原子能有限公司(aecl)总承包,常规岛设计和部分设备供货的分包商为美国的柏克德(bechtel)公司。常规岛1#机电力和控制电缆共计6261根,2#机电力和控制电缆共计5269根,电缆施工主要依据intec软件中的电缆(cabling)和接线(wiring)两个模块进行。intec软件具有以下基本功能: 2.1查 询 为了保证电缆敷设的质量,电缆敷设后的整齐美观,不出现交叉,以及合理安排每盘电缆以尽可能最大限度地减少电缆的损失。在电缆敷设前,技术人员要将电缆进行合理的归类应用计算机软件为这项工作带来了很大的便利。intec提供了多种查询方法,例如,按区域或设备查询,按系统查询,按路径查询,按电缆类型查询等等。我们在施工中常使用下列方法查询电缆。 2.1.1按区域或设备查询 当我们需要统计某个建筑物内所有的电缆时,就可以采用按区域进行查询。例如,需要统计水处理厂房内的所有电缆,我们在电缆模块主界面内的“room-side1”栏内输入水处理厂的区域代码“wt*”后按“ok”,水处理厂内的所有电缆就会显示出来。在列出的电缆清单中,我们可以通过单击鼠标右键,利用快捷菜单中的“过滤”功能进一步按需要筛选。 2.1.2按系统查询 当我们需要统计某个系统内的所有电缆时,就可以采用按系统进行查询。例如,需要统计原水系统内的所有电缆,我们选用“wire”项,在其中的“wire-number”内输入“7131-*”后按“ok”就可以找出该系统的所有电缆。 2.1.3按路径查询 为了提高电缆敷设的效率,我们可以将具有相同路径的电缆同时敷设。我们选用“route”项,在“route-number”栏内输入路径号按“ok”,就可以得到同一路径的所有电缆。 2.2报表生成 intec提供了以“pdf”格式的报表清单,在查询出所需的电缆后,选主菜单的“action”中的“report”,出现“report online”界面,选择相应的报表类型,即可在线生成报表,打印出的报表可用于指导现场施工。报表给出了敷设电缆的较详尽的信息,尤其是敷设路径,它采用了在电缆通道上编号的方法,在电缆桥架上每隔一定距离按其实际长度标上米数,电缆排管和导管均予以编号。这样,电缆进出通道的位置就相当明确了,这为以后查找和更换电缆提供了便利。 2.3信息反馈 当电缆的工程状态(engineering status)为“rfc”即已释放给施工时,我们就可以在现场敷设该电缆了。电缆敷设完成后,我们应及时的将敷设完成的信息反馈给intec系统。反馈的方法是先查找出该电缆,然后单击鼠标右键,在出现的快捷 菜单中选择“site status changed”栏,在对话框内输入已敷设电缆的时间与实际长度,将现场状态改为“pulled”,最后按确认键。将电缆的现场状态准确及时的反馈给系统可以使设计者和工程管理者掌握电缆安装的最新动态,确保工程进度的实现。 2.4电缆接线 电缆敷设完成后,就可以开始准备接线工作了。intec的接线模块的使用与电缆敷设模块大致相同,也可以按照查询生成报表接线及信息反馈的步骤进行。值得说明的是,系统提供的用于接线的报表清单与我们传统接线时使用的二次端子排图不同,它是一种用文本描述电缆与端子连接的清单。 2.5升 版 由于设计变更和工程现场条件的改变,电缆安装的相关信息也在不断更新,intec基本上一个星期要进行一次升级,在进入intec后,选主菜单的“help”中的“revison”,可以看到版本信息。施工时我们使用最新版本。 3intec在应用中遇到的问题 intec是一个集设计、采购、施工、调试于一体的大型软件,它不仅能够为施工提供所需的设计资料,而且可以对施工的全过程进行动态管理。但是由于种种原因,intec在实际中并没有发挥出其最大功效,应用中也发现其本身的一些问题,主要体现在: (1)由于输入系统的信息不全,导致该软件的一部分功能闲置。例如,系统的图纸资料管理功能,本应该根据施工图纸能够检索出相关电缆及接线等信息,但是实际工程中这项功能没有发挥作用。 (2)系统升级频繁,造成施工难度增大,现场施工与设计脱节现象时有发生。由于设计速度跟不上施工要求,设计者对系统的变动频繁,基本上是每周升级一次,以致现场施工的进度受到系统的限制。 (3)由于设计单位的现场机构没有权限修改系统,对于系统的变动须远在加拿大的总部进行,这样,现场施工的变动不能及时反映到系统,现场返工现象也时有发生,使得施工工艺也受到影响。 4结束语 笔者通过在秦山三期(重水堆)核电站常规岛电缆安装使用intec软件的实践中体会到:在大、中型建设工程的电缆安装中应用计算机软件进行控制与管理是非常必要的。传统的电缆安装施工方法过多依赖施工人员的经验。在施工前的准备阶段,技术人员要花费大量的精力统计电缆数量,安排电缆敷设路径,而且每个技术人员都有自己不同的施工经验,施工的随意性较大。在施工过程中,施工的进度与现场的变更难以得到有效控制。传统的施工管理中,现场施工完成后的记录整理工作由人工进行,记录的统一性、真实性不高。此外,计算机软件还可以用来在工程竣工后的决算工作中快速准确地统计工程量,极大地提高了工程造价人员的工作效率。应用计算机软件管理电缆安装施工能够解决传统施工管理中的不足,提高施工效率,满足工程进度要求,能对施工进行全过程的动态管理。因此,建议国内的设计单位和项目管理单位在电缆安装工程中采用计算机数据库软件进行控制与管理。 计算机软件论文:浅谈计算机软件的知识产权保护 计算机软件产业是产生于上世纪五十年代中期的重要产业,在几十年的快速发展中,已成为独立于计算机硬件的能够推动国家信息化建设的关键型产业,但到目前为止,人们就计算机软件依据缺乏足够深入的认识,尤其是计算机软件的知识产权保护。依据国际知识产权组织相关条规中的规定,计算机软件应当涵盖计算机程序、辅助资料及程序的描述等,世界上很多国家的知识产权保护均是依据国际知识产权保护的相关定义,在结合自身状况的基础上进行的修订。 一.计算机软件的知识产权保护概述 依据国际知识产权保护的相关规定,计算机软件作为不同于其他的知识产权的客体,其特殊性呈现于较多的方面,这也强调着计算机软件的知识产权保护的特殊性。计算机软件作为人类智慧的表现形式,同时具备着作品性及工具性双重属性;计算机软件在研发设计的过程中,实现着思想内涵与表现形式的高度融合,两者的相互渗透、相互融合使得界定区分较为困难;计算机软件所具有的更新周期逐渐缩短、更新换代逐渐加快,增加着知识产权保护的难度;计算机软件的研发设计成本普遍较高,但复制推广的成本却相对较低;计算机软件具备着较强的国际通用性等。计算机软件所具有的区别于其他的知识产权的客体的以上诸多性质,强调着计算机软件并非一般的作品及技术,强调着不可将计算机软件这一知识产权客体与传统知识产权客体一视同仁,要综合计算机软件的特殊性给予知识产权法律上的相应保护。 二.我国计算机软件的知识产权保护存在的问题 1.纯粹专利保护制度之下的保护无法满足保护需求 纯粹专利保护制度之下的保护要求相对较高,且保护条件相对有限,该种立法保护的弊端与问题需要新立法模式予以解决,进行立法保护的相关条件及要求的合理适当降低;产品的专利申请时间长、申请成本高是较为普遍的现象,计算机软件作为较为特殊的知识产权的客体,申请保护中也同样存在着该种问题。就国际大环境而言,计算机软件的知识产权保护经历着针对著作权的单维保护向著作权及专利权的双维保护模式的转变。针对计算机软件的知识产权的法律保护实现着与计算机发展技术的紧密结合,该种发展变化趋势就其原因主要是,计算机软件行业的产业化以及计算机软件的独立,最终导致计算机软件方面的法律保护类问题的出现。在计算机软件产业的发展之初,某些国家尝试依据计算机软件程序的是实用性及技术性,采用专利法对其实施保护,但某些软件程序并不符合专利的特征要求,利用专利法对计算机软件实施保护的效果并不显著。 2.知识产权保护践行并不能满足现实需求 虽然我国计算机软件的知识产权保护的发展,已经完成从无到初具规模的发展脱变,在法律层面上著作权法律法规已将计算机软件收入到著作权的法律保护体系中,同时的计算机软件的知识产权保护采用以著作权法的保护作为主要切入点、计算机软件产权保护的单行法的制定与完善的保护制度,就保护制度的总体架构隶属于著作权法之中,这与国家制定的其他的行政法规存在较大区别,也与其他发达国家计算机软件的知识产权保护就其专利保护内容也存在较大差异,致使计算机软件的盗版较为猖獗。计算机软件侵权的打击存在着政府部门的大包大揽的传统管理观念,社会动员程度较低。计算机软件盗版现象猖獗的其他产生原因也较为复杂,主要体现在国家经济的发展现状、计算机软件的价格、计算机软件使用者的法律水平及计算机软件研发者的法律维权意识等,广泛的开展计算机软件的盗版综合治理也是实现软件知识产权保护的关键途径。 三.我国计算机软件的知识产权保护问题的改进对策 1.计算机软件的知识产权保护立法问题的解决对策 计算机软件产业逐步实现与计算机硬件产业的分离,使得计算机软件逐步的成为市场价值更为广阔的高新技术,适合计算机软件行业发展的保护措施需求的紧迫性变得越来越强烈;而到计算机软件产业的发展初具规模的时候,针对计算机软件的法律保护体系确立的必要性显得更为突出,国家开始强化针对计算机软件的知识产权立法保护,但就立法保护的效果而言,仍需要立法保护中适当的降低软件在进行交易方面的成本,确保软件开发者合理的社会收益,从而推动计算机软件的产业化发展;在计算机软件的知识产权新的立法保护模式中,明确的指出保护条例中已经明确规定的要严格依据保护条例来执行,而没有做出规定、规定不够明确、条件发生变化的要依据著作权法的相关规定执行,同时实现软件的有效保护及软件交易成本的降低。 2.计算机软件的知识产权保护践行问题的解决对策 转变计算机软件侵权的打击的理念,将最终的违法打击途径确立为良好的司法环境的组建,在进行计算机软件的知识产权保护的过程中,要将软件的行政及司法保护确立为重点,充分利用行政执法这一国家执法体系中的重要环节,将行政调查及处理力度的强化确立为计算机软件保护的核心,给予软件研发使用的相关权利人以足够的法律保护,并给予侵权者以应有的制裁及惩处;软件行业内的诸多协会是软件企业中形成的自治性的组织,虽然并不具备行政执法及司法等管理权限,但却在市场调查、信息的咨询评估、业界信息的交流、知识产权的保护等方面具备法律所无法比拟的优势,要充分的发挥软件行业内相关协会在软件知识产权保护中的作用。 总结 综合分析目前计算机软件产业的发展现状及市场经济的现实需求,要想实现计算机软件产业更为健康有序的发展,各种途径、各种方式的计算机软件的知识产权保护已显得非常有必要。 计算机软件论文:以单片机为核心的工控计算机软件 软件抗干扰就是cpu在软件运行过程中对自己进行监视和检测,及时诊断机器运行故障并修复错误,确保程序正确运行的编程方法。 1 工控计算机软件的结构特点及干扰途径 在不同的工控系统中,软件虽然完成的功能不同,但就其结构来说,一般具有如下特点:①实时响应:及时处理控制系统中的随机发生事件。②周期运行:软件在初始化完成后,随之进入主程序循环运行。③中断响应优先级判断:优先响应高优先级中断请求。④中断嵌套:低优先级中断执行过程中,可以优先执行更高级的中断请求。⑤模块化关联:软件由多个任务模块组成,各模块相互关联,相互依存。⑥可操控性:允许操作人员干预系统的运行,调整工作参数。 在工业现场环境的干扰下,工控软件可能受到破坏,导致工业控制系统失控,其表现是:①干扰叠加在模拟量信号上,导致模拟量数据采集误差加大或超出量程。②由于干扰导致主频晶振频率的偏离和不稳定,从而致使定时器/计数器的中断频率变化,引起记数错误、时钟异常。③通讯时序的异常或干扰信号的叠加,都会引起通讯不正常。④程序计数器pc值改变:被干扰后的pc值是随机的,因此引起程序执行混乱;输入/输出接口状态受到干扰,造成控制状态混乱,系统发生“死锁”;ram数据区受到干扰,导致ram区数据改变或丢失。 2 软件运行过程中的自监视法 计算机cpu内部都具有看门狗定时器,利用定时中断来监视程序运行状态。看门狗定时器的中断时间大于主程序正常运行一个循环的时间,在主程序循环中执行一次看门狗定时器常数刷新操作。因此,只要程序正常运行,看门狗定时器不会出现定时中断。而当程序运行失常,不能及时刷新看门狗定时器时间常数时,就会导致定时中断。在看门狗定时中断服务程序中将程序系统软复位,从而防止程序跑飞。 1)监测程序计数器pc值 计算机正常运行,其pc值一定在程序区内。在一个经常要产生外部中断的某个中断服务程序中,读取转入该中断时压入堆栈的断点地址。如果该地址在程序区内,则认为pc值正常,否则一定是程序跑飞了。此时,程序跳转到机器的重启动入口或者复位入口,机器重新启动。 2)主循环程序和中断服务程序相互监视 主循环程序和中断服务程序以及中断服务程序之间多设计几个监视对,相互监视,增加程序的抗干扰性能。每个监视对要定义一个ram单元,通过对其计数/清零的方法表达相互监视信息。 3)程序代码校验 实时控制程序代码通常都采用eprom固化运行,有时可能因芯片质量问题或者因静电干扰也会出现极个别的单元错误。常用的校验方式,可以采用“累加和校验”或者“bch校验”。当采用bch校验时,其分组附加的冗余字节可以集中在程序区之外的某个eprom区域里。校验方法是在某个短小而且经常发生的中断服务程序内安排一个校验模块,可以设计成每次循环校验一部分程序代码,分若干次校验完成。如果校验发现错误,应当立即向工控网络主站报告或者以自身报警的办法告知操作人员,以便及时处理。 4)ram数据校验 在实时控制过程中,干扰经常导致冲毁ram中的数据,由于ram中保存的是各种原始数据、标志、变量等,如果被破坏,会造成系统出错或无法运行,ram的大部分内容是为了进行分析、比较而临时存放的,不允许丢失的数据只占极少部分。因此,在软件中,常采取对少数不允许丢失的数据进行“校验”和“设标志”,称为“校验法”和“设标法”。具体做法为:将ram工作区重要区域的始端和尾端各设置一个标志码“0”或“1”,对ram中固定不变的数据表格设置校验字。 程序在执行过程中,每隔一定的时间通过事先设计的查错程序来检查其各标志码是否正常。如果不正常,程序可重新复位或利用数据冗余技术通过抗干扰处理程序来进行修正;冗余数据表的一般设计原则是:各数据表应相互远离分散设置,减少冗余数据同时被冲毁的概率;数据表应尽可能远离栈区,减少由于操作错误造成堆栈数据被冲的可能。 3 实时控制系统的互监视法 1)软件冗余 对于条件控制系统,将控制条件的一次采样、处理控制输出,改为循环采样、处理控制输出。 2)在中断子程序中重复设置输出状态寄存器单元 当干扰侵入输出通道造成输出状态破坏时,系统可以及时查询当前输出状态寄存器单元的输出状态信息,及时纠正错误的输出状态。 3)设置自检程序 在系统内的特定部位或某些内存单元设状态标志,在运行中不断循环测试,以保证系统中信息存储、传输、运算的高可靠性。 4 其它常采用的软件抗干扰方法 1)特殊功能寄存器重复设定 为防止干扰改变cpu内部寄存器或者接口芯片的功能寄存器,把可能中断的类型、中断的优先级别、串行口、并行口的设定修改,可以采取在主程序的循环中,重复设定不影响其当前连续工作的特殊功能寄存器值,避免偶然不测发生。 2)重要数据备份法 对一些关键数据,至少有两个以上的备份副本,当操作这些数据时,可以把主、副本进行比较,如其改变,就要分析原因,采取预先设计好的方法处理。还可以把重要数据采用校验和或者分组bch校验的方法进行校验。这两种方法一并使用则更可靠。 3)数字滤波法 实时数据采集系统,为了消除传感器通道中的干扰信号,在硬件措施上常采取有源或无源rlc网络,构成模拟滤波器对信号实现频率滤波。软件常用的数值、逻辑运算处理方法有算术平均值法、比较取舍法、中值法、一阶递推数字滤波法等,实现频率滤波。 5 结语 基于硬件抗干扰设计的完善、软件抗干扰编制的尽可能细致,努力赋予软件高度的智能,把硬件和软件有机地结合起来,工业控制系统才能经得起长期现场考验。 计算机软件论文:计算机软件的可维护性问题 计算机软件是用户和硬件之间的接口界面。计算机用户可以通过软件和计算机实行沟通,软件是计算机系统设计的重要根据。为能方便用户,让计算机体系极具较高的整体效用,在计算机系统设计时,要对硬件和软件相结合的全局进行考虑,并满足用户的需求。软件保护技术,即怎样防止破解合法软件,软件保护产品所涉及内容极为宽泛,属于综合技术范畴之内。软件可维护性是指导软件维护工作的一个重要参考依据,是软件维护难易程度评价的标准,是软件产品的一个重要质量特性。软件可维护性即维护人员对该软件进行维护的难易程度,具体包括理解、改正、改动和改进该软件的难易程度。软件的可维护性差是软件维护工作量和费用激增的直接原因,因此在软件工程的各个阶段都要保证软件具有较高可维护性,从而降低软件维护成本,这是软件工程的重要目标之一。 1 计算机软件可维护性概述 概括地说,软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成。 运行维护时期的主要任务是使软件持久地满足用户的需要。具体地说,当软件在使用过程中发现错误时应该加以改正;当环境改变时应该修改软件以适应新的环境;当用户有新要求时应该及时改进软件以满足用户的新需要。 软件维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。通常有4类维护活动: 1)纠错性维护:在开发过程中要生成100%可靠无误的软件通常是不太现实的,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。 2)适应性维护:在使用过程中,外部环境(如新的硬、软件配置)、数据环境(如数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。 3)完善性维护或增强:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护叫做完善性维护。 4)预防性维护或再工程:即修改软件,为将来的维护活动预先做准备。 除此四类维护活动外,还有一些其它类型的维护活动,如:支援性维护:通过提供最新用户文档或联机用户文档,进行适当的用户培训或设立专门的维护人员等方式来减少此类维护活动。 软件维护具有很大的必要性、长期性和艰巨性。以上几个方面的维护工作中,第二和第三层面维护方面所占的份额最大,占80%左右的总维护工作。可见,软件维护的费用也大得惊人,有些维护费用可能高达软件总开发费用的55%~70%,软件的可维护性居于首位。但软件维护的难度越来越大,并已成为目前所面临的最大问题。 2 提高软件的可维护性方法 软件的可维护性对于延长软件的寿命具有决定性的意义。因此,不仅维护人员应重视软件的可维护性,软件开发人员也要为减少今后的维护工作量而努力。为了提高软件的可维护性,可以从以下几个方面着手: 1)建立明确的软件质量目标。一个可维护的程序应是可理解的、可靠的、可测试的、可修改的、可移植的、效率高的和可使用的。如果要程序满足可维护性七个特性的全部要求,那么要付出很大的代价,甚至是不现实的,但有些可维护性是相互促进的,例如可理解性和可测试性、可理解性和可修改性。但另一些质量特性却是相互抵触的,例如效率和可移植性、效率和可修改性等。因此要明确软件所追求的质量目标。 2)使用先进的软件开发技术和工具。利用先进的软件开发技术能大大提高软件质量和减少软件费用。面向对象的软件开发方法就是一个非常实用而强有力的软件开发方法,用面向对象方法开发出来的软件系统,稳定性好,比较容易修改,比较容易理解,易于测试和调试,因此,可维护性好。 3)建立明确的质量保证。质量保证是指为提高软件质量所做的各种检查工作。质量保证检查是非常有效的方法,不仅在软件开发的各阶段中得到了广泛应用,而且在软件维护中也是一个非常主要的工具。为了保证可维护性,以下四类检查是非常有用的: ① 在检查点进行检查。保证软件质量的最佳方法是在软件开发的最初阶段就把质量要求考虑进去,并在开发过程每一阶段的终点,设置检查点进行检查。检查的目的是要证实已开发的软件是是否符合标准,是否满足规定的质量需求。在不同的检查点,检查的重点不完全相同。 ② 验收检查。验收检查是一个特殊的检查点的检查,是交付使用前的最后一次检查,是软件投入运行之前保证可维护性的最后机会。它实际上是验收测试的一部分,只不过它是从维护的角度提出验收的条件和标准。 ③ 周期性的维护检查。软件在运行期间,为了纠正新发现的错误或缺陷,为了适应计算环境的变化,为了响应用户新的需求,必须进行修改。因此会导致软件质量有变坏的危险,可能产生新的错误,破坏程序概念的完整性。因此,必须像硬件的定期检查一样,每月一次或二月一次,对软件做周期性的维护审查,以跟踪软件质量的变化。周期性维护审查实际上是开发阶段检查点复查的继续,并且采用的检查方法、检查内容都是相同的。为了便于用户进行运行管理,适时提供维护工具以及有关信息是很重要的。维护审查的结果可以同以前的维护审查的结果、以前的验收检查的结果和检查点检查的结果相比较,任何一种改变都表明在软件质量上或其他类型的问题上可能起了变化。对于改变的原因应当进行分析,例如,如果使用的是复杂性度量标准,则应当随机地选择少量模块,再次测量其复杂性。 ④ 对软件包的检查。软件包是一种标准化了的,可为不同单位、不同用户使用的软件。软件包卖主考虑到他的专利权,一般不会提供给用户他的源代码和程序文档。因此,对软件包的维护采取以下方法。使用单位的维护人员首先要仔细分析、研究卖主提供的用户手册、操作手册、培训教程、新版本说明、计算机环境要求书、未来特性表,以及卖方提供的验收测试报告等,在此基础上,深入了解本单位的希望和要求,编制软件包的检验程序。该检验程序检查软件包程序所执行的功能是否与用户的要求和条件相一致。为了建立这个程序,维护人员可以利用卖方提供的验收测试实例,还可以自己重新设计新的测试实例。根据测试结果,检查和验证软件包的参数或控制结构,以完成软件包的维护。 4)选择可维护的语言。程序设计语言的选择对维护影响很大。低级语言很难掌握,很难理解,因而很难维护。一般来说,高级语言比低级语言更容易理解,第四代语言更容易理解,容易编程,程序容易修改,改进了可维护性。 5)改进程序的文档。程序文档是对程序功能、程序各组成部分之间的关系、程序设计策略、程序实现过程的历史数据等的说明和补充。程序文档对提高程序的可阅读性有重要作用。为了维护程序,人们必须阅读和理解程序文档。 总之,当前计算机技术在整个国民经济中具有相当广泛的领域,在人们的日常生活中,计算机技术可以说是无处不在,是人们生活、工作不可缺少的工具之一,以软件技术作为其内在灵魂的计算机信息系统,正在对系统高度集成化、结构广泛分布化、信息多元化和功能智能化等一系列新型发展方向越来越重视,并逐步在实践中得以实现。软件维护是一项综合性很强的工作,随着软件规模和复杂度的日益提高,使软件维护成为软件生存周期中费用最高、难度最大的一个阶段。因此,良好的软件可维护性可以降低维护成本,延长软件生命周期。 计算机软件论文:探讨计算机软件的安全检测技术 现在,各种计算机软件在各行各业中得到了普遍的利用,成为人们生活和工作中不可或缺的部分。由此带来的计算机软件安全问题也随着它的发展越来越复杂的影响着计算机的安全,计算机软件的安全检测技术就显得尤为重要。 一、计算机软件安全检测技术概述 计算机软件安全检测是计算机软件开发过程中的一个重要环节,它的目的是为了发现软件所存在的故障和安全漏洞,从而及时的对计算机软件的潜在安全问题进行更改。当前的计算机软件安全检测技术主要包括动态检测和静态检测两种方法。计算机软件安全检测是确定计算机软件的安全性是否达到软件预期设计的目标的一个过程,一般包括功能测试、渗透测试与验证过程三个阶段。包括安全功能与安全漏洞两个方面的检测,软件安全功能涉及的方面比较多,包括机密性、授权、访问控制以及安全管理等;而计算机软件安全漏洞检测则是对软件可能存在的缺陷的检测。 二、计算机软件安全检测的注意事项 在进行计算机软件安全检测是,要注意几下的几个问题: 一是要预先制定出检测方案。首先要对计算机软件有一个全面的了解,在此基础上作出分析然后选择一个合适的检测技术,设计出检测方案;其次在检测人员的选择上,要进行多元化的人员配置,安全分析人员、软件设计人员和操作者都应参与检测的工作,这样可以保证在检测的过程中对软件的不同性能的检测都能得到专业技术人员的指导和分析,提高安全检测的效率。 二是在进行计算机软件的安全检测时,对于系统级、代码级与需求级的检测是必须的。如果软件的规模比较大,还要对软件的结构的设计进行分析。在具体的操作中要从实际工作的需要来选择合理的分析技术。仿真环境和分析工具相结合是较为有效的计算机软件的安全检测技术。 三、计算机软件安全检测技术的方法 (一)计算机软件安全检测的流程 一般情况下,规模较大的软件是由一定数量的子系统来构成的,每个子系统又由若干的小模块来构成。计算机软件的安全检测一般按照以下的步骤进行:首先是进行模块的测试,测试的对象是软件设计中的最小单位,对模块进行测试的目的是发现系统的各个模块中可能存在的问题。然后是对由模块按照程序设计的要求组装的系统进行检测,并对于其相关的体系机构进行检测。其次是在前两个检测的基础上进行软件的有效性检测,有效性检测的目的是对软件的功能和性能进行检测,检测其是否与所设计的用户的需求相符合。最后进行的是系统的检测,测试软件在整体的环境下的运行安全情况。 (二)当前计算机软件安全检测的主要方法 一是形式化的安全检测。形式化的安全检测是确立软件的数学模型,在通过形式规格的语言的支持提供形式化的规格说明。比较常见的形式规格语言有基于有限状态的语言、基于模型的语言以及基于行为的语言。形式化的安全检测有模型检测和定量证明两种形式的安全检测方法。 二是基于模型的静态安全检测。模型安全检测,既是通过软件行为与结构建模的方式,形成一个测试的模型,此模型同时可满足计算机对其的可读性。模型安全检测的方式与上述的形式安全检测的方式相比较而言,并不侧重于让检测的软件系统与规格说明在所有的情况下都保持一致,而是从模型生出一组试用例,使用这组试用例来测试软件系统,来说明软件的安全性。比较常用的模型安全检测方法包括有线状态机检测和马尔科夫链的检测。 三是语法检测。语法检测技术是根据语法对被检测软件的功能接口的语法生成软件进行输入的测试,测试软件在不同的输入条件下产生的不同的反应。一般语法检测适用于检测源程序中存在安全隐患的c语言函数和系统的调用,并通过软件接口语言的识别、定义语言的语法以及以语法为基础进行生产测试用例,同时进行安全检测。 四是基于故障注入的软件安全检测。故障注入的安全检测是应用故障分析树与故障数的最小割集来检测的。故障树分析法通过将系统最不该发生的事件做为顶事件,再以此寻找导致事故发生的中间事件与低事件,再通过逻辑门符号将顶事件、中间事件和低事件之间的关系进行连接,形成故障树。故障树检测拥有较高的检测自动化程度,是比较合理的计算机软件安全检测的方法。 五是模糊测试和基于属性的测试。模糊测试一般是基于白盒的模糊测试,较传统的模糊测试技术有所进步,白盒模糊检测方法有效的结合了传统的模糊测试技术和动态测试用例检测技术的优点。基于属性的测试方法首先要确定计算机软件的安全编程规则,以此来作为安全属性来验证软件系统程序的代码是否遵守了这些规则。基于属性的安全检测法的优点是能够较好的分析软件安全漏洞的扩展性及安全性等。 六是混合检测技术。混合检测技术是指将计算机的静态安全检测技术和动态安全检测技术相结合的一种检测技术,它能有效的改善静态技术和动态技术检测存在的一些缺陷,从而更好的对计算机软件的安全进行检测。当前主要的检测技术包括二进制代码改编技术、测试库技术、基于规范的检测技术、基于异常的检测技术等。混合检测技术在一定程度上提高了软件安全检测的准确性,是较合理的检测方式。 七是基于web服务的检测技术。近年来,随着web服务技术的发展和广泛的应用,基于此的分布式软件安全检测技术也随之产生和发展,它是一种基于识别内容的分布式web服务器技术。具有语言中立、互动操作性强等优点,能够将复杂的安全检测分解为子安全类型进行处理,以使其可以更有效的应对复杂的安全检测的需要。分布式安全检测还采用了故障注入机制来生成错误的soap消息,来用于异常测试。此种检测方法在实践中具有高效、先进和灵活的特点,能够对软件的可靠性、容错性和安全性的检测到达较高的标准。 四、总结 计算机软件的安全检测技术是保证计算机和互联网安全的基础,必须不断的加强检测技术的创新,以保证计算机软件的安全,促进计算机软件的发展。 计算机软件论文:网络环境下中职计算机软件应用研究性学习的探索 摘要:基于网络环境的研究性学习是计算机网络与研究性学习的整合,是在网络环境支持下的研究性学习。本文对在职业技术学校计算机软件应用教学过程中开展基于网络环境的研究性学习,分别从情境创设、问题探究、实例制作过程方法探究和最终实例的完成及讲评四个方面进行探讨。 关键词:网络环境;中职;计算机软件应用;研究性学习 职业学校计算机专业的教学内容主要以常用软件的应用为主,如office软件应用、photoshop软件应用、flash动画制作、dreamweaver网页设计等,注重培养学生的计算机软件应用水平。怎样才能使学生尽快掌握一个应用软件的各种基本操作,并使用所学软件解决实际生活中所遇到的相关问题,是每位职校计算机专业课教师必须思索和解决的问题。 创新精神和实践能力的培养,是计算机软件应用教育教学的核心。创新精神主要体现在学生对信息的处理能力上,实践能力则体现在学生对各种计算机软件操作水平和应用能力上。在计算机软件应用课教学过程中采用研究性教学模式,旨在通过创设类似科研的情境,让学生主动去探索、发现和体验,在收集、加工和处理信息的过程中,培养创新能力,提高动手实践能力。同时,为使学生所学计算机软件能紧跟软件换代步伐,密切与社会现实相结合,计算机软件应用教学的内容和范围不应局限于课堂和教材,而网络恰好为学生进行计算机软件应用研究性学习提供了丰富的信息资源。 根据职业技术学校学生学习特点和计算机软件应用教学的特点,以及笔者在教学实践过程中的探索和总结,网络环境下计算机软件应用研究性学习的教学过程一般可分为以下几个阶段: 创设情境,帮助学生确定主题情境创设的目的是激发学生探索问题、解决问题的兴趣。创设的情境要与学生日常生活密切相关,而且要通过网络,利用视频、音频、图片等多媒体信息来呈现,以调动学生的积极性,帮助学生确定主题。例如,在讲flash动画制作时,可以根据生活中的实例,制作相应动画。通过动画效果,调动学生制作flash动画的欲望,明确本节课所要完成的任务或目标,再让学生根据目标效果确定任务。在讲flash动画基本概念和基本操作时,先让学生看一些简单移动动画或者是形变动画效果,引起学生的注意和兴趣,引出这节课学生所要研究和学习的主题——flash动画的基本操作和基本概念,具体内容和相应操作就需要学生通过自己的查找、学习和实践研究得到答案。 对发现的问题或达到目标过程中的困难,让学生自主探究或几人一组查找相关信息各小组成员根据自己的任务分工学习自己未掌握的知识。教师提供相关的资源(如学校的资源库或自己所建的主题网站等)、网址或搜索引擎(如百度、谷歌、天网搜索等),让学生收集与解决问题相关的信息,并在此过程中形成自主思维能力与习惯。这时,每个学生都要独立自主地查找信息。他们所查找的信息都是为了完成明确的任务,教师必须帮助学生判断所查得信息的有效性。如上面所提到的在学生研究和查找flash动画制作的基本概念和基本操作的过程中,若发现有学生找到了许多有关3d动画制作的知识时,就要提醒学生,当前研究和学习的只是平面二维动画,三维动画在以后的学习中才有可能用到,不能在这些信息上花费过多的精力。总之,教师在巡堂过程中如发现有学生查找的信息偏离主题,要及时提醒,以提高课堂效率。 让学生小结查找的信息和已经掌握的相应操作,在组内和组间交流,找出完成实例或达到效果时所遇到的疑难问题,并协商解决 当小组成员找到所需信息后,让他们在组内和组间交流这些信息,阐述选择这些信息的理由,讨论有分歧的意见,达成共识,并以小组为单位,合作设计完成实例,达到要求的效果。对于一些学生容易忽视的因素,教师要及时指导。比如在photoshop软件应用中,利用图层进行多幅图像合并时,图层顺序对整幅图像合并效果的影响;在使用滤镜对图像产生特效时,有选区和无选区对最后效果的影响;在钢笔工具的使用过程中,要注意钢笔工具栏属性的选择对路径的影响;利用flash制作形变动画或文字形变时,一定要先把相应的对象打散等一些细节问题。 最终实例成果汇报,效果分析,讨论评价由各小组的代表向全班学生做口头汇报,并通过网络把主题学习完成的实例或相应的效果提交到服务器(教师机)上。教师利用多媒体电教平台,展示各小组的作品,并进行相应的点评。对于完成效果好的小组要进行集体表扬,并给小组成员的平时成绩适当加分。同时,让优秀小组代表说明本小组完成任务的过程、成员分工和完成作品的思路,展示作品的制作过程,给其他小组提供学习的机会。教师应及时对学生的研究进行评价,引导学生及时总结、反思,鼓励学生从多个角度思考和解决问题。比如,在学习photoshop图像处理中的图像颜色调整时,给图像上色有两组学生都较好地达到了相应的实例效果,其中一组用的是图像调整菜单中的色彩平衡,另一组用的是图像调整菜单中的色相饱和,对这两个小组都要给予表扬,并让他们演示并讲解达到效果的思路和方法。要告诉学生解决一个实际问题的办法不是唯一的,需要自己用心去研究、学习。 总体而言,计算机软件应用是一类实践性很强、极富创造性、具有明显时展特点的课程。研究性教学模式适合于培养学生的创新能力、独立分析问题和解决问题的能力。这种教学模式可使学有余力的学生有更大进步;学习到更多知识,而后进的学生也可以循序渐进地不断进步;教师也可用较多的时间来辅导后进生,能较好地保证教育教学质量,提高教学效率。在这些过程中,网络能提供丰富的信息资源。笔者的教学实践证明,网络环境下计算机软件应用研究性学习,不仅提高了学生学习的主动性和积极性,而且激发了学生的创新精神,学生利用计算机软件解决实际问题的技能也有了较好的提升。但是也要注意,在设置情境任务时一定要从全班学生的整体水平考虑,学习任务量的设置要保证绝大多数学生能够在指定时间内完成,特别是在网络环境下,要控制好课堂教学进度和教学秩序,保证每个学生都能积极主动地投入到学习之中。 计算机软件论文:计算机软件工程现代化技术分析 摘要:随着计算机技术的快速发展,为我国计算机软件工程的发展奠定了良好的技术基础。计算机软件工程对我们日常生活产生的影响非常深远,可以说涵盖了衣食住行等各个方面,基于计算机软件工程的现代化技术的探讨,能够进一步拓宽计算机软件工程的应用前景,实现科技效益转变为社会效益。 关键词:计算机;软件工程;现代化技术 计算机软件工程无论是行业发展前景还是行业发展速度都已经远超传统产业,并且在各行各业中的应用也取得了非常大的进步。但是我们也必须清楚的认识到,对于计算机软件工程的现代化技术应用依然存在很多方面的问题,这些问题会造成计算机应用情况不足以及应用不完善等情况。所以对于目前计算机软件工程存在的问题必须要加强重视程度,积极研发计算机软件工程的现代化技术,尽可能的完善计算机软件工程的应用情况。 1计算机软件工程发展现状 计算机软件工程的现代化技术在我国得到了长足的发展。首先,由于计算机软件工程的软件技术研发能够加快软件系统的开放、运行,所以能够为整个软件行业带来较高的经济模式,符合社会主义市场经济体制。其次,从实际的运营模式来看,软件工程从研发到应用能够有很多分层模型,包括了支撑软件、系统软件以及应用软件等。所以在这样的情况下,计算机软件工程的现代化技术在我国应用和发展的范围和领域也越来越广泛,并且正在朝向一体化的发展趋势。尽管我国目前计算机软件研发工程得到了长足的发展,但是我国计算机软件工程主要还是依托于国外发达国家的知识产权,自主研发手段少,而且与我国的社会实际相配套的少。所以在很大程度上限制了我国计算机软件工程的开发与应用。尽管我国计算机软件工程的现代化技术发展速度快,并且发展水平较高,但是由于受到各种因素的影响,我国计算机软件工程的现代化技术产品后劲发展动力不足。而且,由于缺少自主创新技术,没有形成我国自己的特色,在很大程度上也限制了我国计算机软件工程的发展前景,并且缺乏技术保障。只有通过提升计算机软件工程现代化技术的创新能力,才能够更加科学合理的制定出行之有效的自主研发技术。 2计算机软件工程的现代化技术发展对策 通过对于计算机软件工程的现状研究我们知道,目前计算机软件工程的现代化技术发展最大的阻碍就是缺少自主研发的能力。所以要想进一步促进计算机软件工程的现代化技术的发展,就必须要从以下几个方面作为突破方向。 2.1加大政府扶持力度 计算机软件工程的现代化技术的发展对我国现代化建设至关重要,尤其是对我国社会经济的稳定发展、国民生活水平的稳步提升有着不可替代的作用。所以要想进一步促进计算机软件工程的现代化技术的发展,必须要加大政府扶持的力度。可以通过对于计算机软件工程的现代化技术的相关项目进行政策支持,制定相对应的扶植政策,从而为计算机软件工程的现代化技术的发展提供更加广阔的空间。由于计算机软件工程的现代化技术是高投入、高回报的产业,所以在发展的过程中,更加需要大力扶持,并且进一步引导计算机软件工程的现代化技术投资的合理化,避免因为资本炒作等方式带来负面影响。更应该重视对重点工程的重点培养,比如超级计算机、“天眼”等计算机软件工程的现代化技术的研究和投入,提高我国计算机软件工程的现代化技术自主发展,并且要将研究成果尽快的转为民用产品,保证对于投资和受益的平衡。 2.2重视产业自主创新 我们应该清楚的知道,目前我国计算机软件工程的现代化技术发展困境在于缺乏自主创新的能力,所以更加应该重视对于产业自主创新能力的不断培养与提升。要想进一步推动计算机软件工程的现代化技术的平稳发展,必须要保证科技成果转化为民用成果,这样才能够保证更好的将科技产品与市场需求相结合,也顺应时代的发展。在全球经济一体化的背景下,行业竞争、国家竞争也在不断的增多,必须要培育出新的经济增长点,从而保证在激烈的市场竞争中不断提升,从而保证计算机软件工程的现代化技术从产品到技术再到服务形成体系,为计算机软件工程的现代化技术的发展提高竞争软实力。从目前的发展趋势来看,我国计算机软件工程的现代化技术的发展方向多以通信技术、信息服务、网络媒体等领域,可以说发展领域还比较窄,无法满足广阔的市场需求。只有不断提高市场经济领域的自主创新能力,才能够有效的将计算机软件工程的现代化技术于各行各业之间相结合,保证经济的不断发展。计算机软件工程的现代化技术缺乏长效发展的动力,所以必须加快产品转型与升级,进一步强化计算机软件工程的现代化技术在市场创新中的有利地位。 2.3提高计算机软件工程技术升级与产权保护 要想提高计算机软件工程的现代化技术,必须要加快产业技术升级,进行补充与发展,从而增强软件的使用效果和实际的功能,增强计算机软件工程的现代化技术在升级管理方面的动力。只有这样才能够不断的提供更多优质的软件工程,才能够促进我国整体计算机软件工程的现代化技术行业的发展与完善。进一步提升软件工程的设备与技术,保证维护质量和维护成本,加快产业发展与利用效率。由于现代化的管理需求,企业在进行产业升级的过程中必须要从市场发展和社会实际出发,所以在进行产品升级的过程中,应当从实际出发,遵循实事求是的原则,并且制定出一套行之有效的规章管理制度,强化升级的质量。在过去,由于缺乏产权保护意识,造成盗版软件大量横行。经过计算机软件工程的现代化技术的多年发展,人们对于自主知识产权保护意识大量提升。不仅因为产权问题能够提升企业的竞争能力,而且也能更能够进一步提高企业的发展。所以企业必须加强对于计算机软件工程的现代化技术核心技术的保护,并且采取相关措施来保证核心技术不断创新,综合市场的反馈情况来不断改进。 3结论 计算机软件工程的现代化技术对于社会经济发展具有非常重要的作用,所以必须要加强对于计算机软件工程的现代化技术发展与应用,不断促进我国社会经的快速发展,提高我国自主创新的能力,本文通过对于计算机软件工程的现代化技术进行探讨和研究,从而为我国计算机软件工程的现代化技术发展提供一定的理论依据。 作者:闫一潇 单位:运城中学 计算机软件论文:计算机软件工程维护措施和方法 摘要:在科学技术日益发达的今天,计算机已经全面的走进了人们的生活。在我国的工业领域、教育领域和国防领域等各行各业的发展都离不开计算机技术。我们必须要认识到计算机技术应用社会发展的现实意义,加强对计算机技术的学习与维护,才能更好的适应时代的发展。要想充分发挥计算机的价值和作用,适应时代的发展,就必须要加强计算机软件工程的维护,变革传统的计算机维护方式,对现有的计算机维护模式进行合理创新,用科学有效的方式进行计算机软件工程维护,保障计算机技术的有效使用。目前我国计算机的软件工程开发比较开放,有关部门必须要注意软件自身的安全带给计算机的影响,保障计算机软件的安全可靠,才能使计算机更好的服务于人类社会。 关键词:计算机;软件工程;维护措施;分析 进入新世纪以来,计算机技术的发展已经全面的改变了人们的生活方式和思维模式,计算机技术的大力发展推动了信息技术革命的到来,人们逐步进入信息智能化时代。在信息智能化时代中,必须要主要计算机软件安全性的重要作用,保障计算机软件工程的安全运转,加强对计算机软件工程的维护。下面文章我们就对计算机软件工程维护的类型进行概述,提出计算机软件工程维护的有效方式,提升我国计算机的使用价值,使计算机技术更好的推动社会发展。 一、计算机软件工程维护的主要类型 计算机技术的出现极大的提升了人们的生活质量,目前人们的生产和生活都离不开计算机技术的应用,但是计算机出现故障的情况广泛存在,严重影响了人们使用计算机的体验,造成计算机的服务效率下降。因此,在平时使用计算机的过程中要注意对计算机软件工程的维护,提升自己对计算机的使用技能。计算机软件工程维护的一般类型有预防性维护、改正性维护、完善性维护、适应性维护等几种维护方式。1.计算机软件工程的预防性维护。要想做好计算机软件工程的维护工作,就必须要认识到计算机软件工程预防性维护的重要作用,对计算机软件工程进行预防性维护就是一般的对计算机使用的软件进行安全可靠的修改,在进行软件工程修改的过程中,需要对软件的一部分采取新的编写方式,或者是对整个软件采取新的编写方式,另外还要注意对需要新编排的软件进行测试,保障后期的计算机软件工程的维护,提升计算机软件工程的维护质量。2.计算机软件工程的改正性维护。通常所说的计算机软件工程的改正性维护就是指对计算机软件在使用的时候出现的命令运行错误进行修正。很多计算机软件在运行的时候,都会出现一些命令错误的编程代码,如果不细心的检测会很难发现这些错误代码,所以人们在使用计算机软机的过程中就一定要进行修改,修改的内容一般是逻辑命令的错误,文档格式的错误,设计模式的错误以信息数据的错误这些。3.计算机软件工程的完善性维护。计算机软件工程的完善性维护具体来说是在计算机软件的基本功能模式基础上对外进行延伸,快速的提升计算机软件的运行速度,提升计算机软件的服务。需要注意的是计算机软件工程的完善性维护延伸的功能要在原系统软件运行一定时间之后才开展的,有很大的未知性,原本的计算机软件需求没有特别说明此类延伸到功能,这是计算机软件工程完善性维护的重要作用。4.计算机软件工程的适应性维护。做好计算机软件工程的适应性维护,就是要让计算机软件运行过程中主动的适应外界环境的变动。一般就是涵盖外部信息数据资料的变化,计算机自身的操作系统的变化,还有计算机硬件的变化等,使计算机软件更好地适应这些变化,更好的利用计算机软件进行学习和工作。 二、计算机软件工程维护的有效措施 1.找到相应的程序设计语言。要想做好对计算机软件工程的维护,就必须要重视对计算机软件工程程序设计语言的选择。我们要知道计算机程序设计语言有高级和低级的区别,低级别的语言很难理解和掌握,高级别的语言便于理解,方便后期的维护。在进行高级别程序设计语言的过程中,必须要凸出二者的差别,更好的开展后续维护工作。因为计算机软件程序语言的选择不同,相应的计算机软件程序维护方式也有所不同,但目的就是要确保计算机软件良好的运转,发挥出计算机的使用价值。2.设置优质的软件品质战略目的。计算机软件工程的维护有很大的可塑造性,比如使用性、理解性、高处理性等,要想强化计算机软件工程的维护,会有很大的成本和时间,因此必须要明确计算机软件工程的使用目的,设置优质的软件品质战略目的,避免不同功能之间的软件编程冲突,根据自己的实际效用,改变计算机的运行环境,进一步促进计算机软件工程维护水平的提升。3.增强软件使用技术。计算机软件工程在编程研发的时候,必须要考虑到后期的计算机软件工程维护,保障计算机软件的使用,因此必须要增强计算机软件的使用技术,确保软件研发预算合理。另外,提升软件的使用技术,可以最快的发现计算机软件的错误进行修改,保障计算机软件的正常使用。而且增强软件使用技术只需要针对其中的单一部分进行改变,并不对其他部分产生影响,提升了软件的维护水平。 三、计算机软件工程维护的有效方法 1.加强对计算机硬盘进行维护。在使用计算机的时候,必须要加强对计算机硬盘的维护,定期的对计算机硬盘进行监测、和清理工作。计算机在使用一定时间后,内部会存在很多的垃圾数据,占据了硬盘很大的内存空间,还会降低计算机软件的使用速度,严重的对计算机的安全性能产生影响,因此,在使用计算机的过程中必须要加强对计算机硬盘的检测维护,加强对硬盘的清理,做好系统数据备份,更好的发挥计算机的价值。2.建立有效的软件防御系统。要想确保计算机安全有效的运行,就必须要提升计算机系统的安全性能,避免被病毒入侵,这就需要建立有效的软件防御系统,具体可以设置一些安全系数高的防火墙和杀毒软件等。另外,使用计算机的时候也要提升自我防范意识,不随意点击非法软件和网站,定期清理垃圾文件,保障计算机的正常使用。3.控制计算机系统的程序数量。由于计算机的程序都是安装在计算机系统内部里面,回影响软件的安装,对后期软件的使用产生影响,所以,一定要控制计算机系统的程序数量,减少程序占据系统的内存空间,还要注意计算机系统的升级与优化,提升计算机的运行速度。 四、结语 综上所述,要想充分发挥计算机的价值和作用,适应时代的发展,就必须要加强计算机软件工程的维护,变革传统的计算机维护方式,对现有的计算机维护模式进行合理创新,用科学有效的方式进行计算机软件工程维护,保障计算机技术的有效使用。伴随着科学技术的发展,人们的生产和生活都离不开计算机技术的应用。在信息智能化时代中,必须要主要计算机软件安全性的重要作用,保障计算机软件工程的安全运转,加强对计算机软件工程的维护。 作者:庞军钦 单位:广东农工商职业技术学院 计算机软件论文:计算机软件工程数据库编程技术 摘要:现代科学技术的发展进步,计算机信息技术被广泛的应用到社会的各行业领域中,因此而产生了海量的信息数据,将这些数据进行收集、分析和处理对于社会的发展具有重要的意义,计算机数据库应运而生。本文通过对基于计算机软件工程的数据库编程技术进行浅析,旨在促进数据库编程技术的科学应用,进而促进计算机软件工程行业的发展。 关键词:计算机;软件工程;数据库;编程技术 计算机软件的开发和应用是保证计算机应用功能的关键,数据库建设和技编程技术应用能够使软件应用过程中的稳定性得到保障,数据信息可以被集成管理、分析和使用,同时实现数据的共享应用,解决很多人工工作形式难以实现或者实现难度较大的数据处理工作,编程技术是构建数据库的主要技术支持。 1数据库的科学有效构建形式 1.1数据库的设计工作 设计工作为计算机数据库构建的初级阶段,设计人员需要对数据库的存储结构、位置以及存储路径进行综合的考量,对于信息的存储情况进行深入的了解,尽可能的降低存储空间,实现数据空间的有效利用,对存储空间进行主次分明的层次划分,保证实现高效便捷的使用功能。在进行存储路径的设计时,需要根据信息类型设置相应的信息索引,以实现用户在输入关键字之后就能够找到相关的数据信息内容。 1.2数据库的网络构建工作 数据库网络的构建具有较强的专业性和技术性,技术人员在进行数据库网络的构建时,需要加强对专业技术知识的应用,对结构模块进行合理优化,减少内存占用空间,以保证其运行的速率。同时加强数据库服务端与应用用户之间的沟通和联系,技术人员加强对服务端的科学管理,设置相应的管理员账号和密码,通过密码的设置来保证管理权限,对数据库进行合理的数据信息修改、添加以及等技术操作。 2基于计算机软件工程数据库编程技术的应用方式 2.1类型比较 文件建立之后需要应用数据库软件对文件进行数据读取,在数据库的应用初期需要针对应用功能需要对数据库进行对比,观察文件在读取过程中是否会出现数据丢失的情况,为确保文件读取工作的顺利进行,应用类型比较的方式直观反应文件读取工作中存在的问题,进而选择更为合适的文件应用类型,有效的文件类型选择,能够使数据库的空间应用效率得到提升,同时提升整体软件运行的流畅度,保证软件的模块应用功能都能得以实现。 2.2数据库的建立 数据库的建立首先需要以编程技术作为技术应用基础,通过功能之间的相互协调,解决其技术应用过程中存在的各种问题,进行数据库的建立需要针对自身的应用需求选择合适的程序语言,并对语言进行逻辑编辑,利语言组织编写完成数据库的功能型架构,并对不用的模块进行功能性区分,提升数据库的应用效率。数据库创建需要在确定文件类型之后进行,采用分区构建的方式,不同的区域负责不同的应用功能,并应用技术协调语言使不同应用功能之间实现相互配合,避免出现应用混乱或者数据冲突现象的出现,对设计功能中存在的不完善之处进行技术完善,保证整改方案的应用功能提升。还可以应用外部安装软件进行数据库创建,用户可对自身的应用需求进行自主选择,实现数据库资源的最大程度应用。数据库编程技术的有效应用,是各个分支应用系统之间的配合程度更高,数据库中出现的数据丢失现象,能够应用数据库备份的方式使数据得到应用恢复,进而保证软件应用功能得有完善。 2.3软件开发过程中编程技术选择 编程技术的选择需要以软件的应用功能为基础,对软件运行的稳定性情况进行观察和探讨,并对系统的资源利用情况进行优化,观察其在应用过程中可能出现的不稳定情况,针对常见的系统应用问题,设计者可以在编程阶段应用编程技术选择优化的方式进行技术完善,出现数据传输异常的问题进行采用技术控制措施,避免大规模瘫痪现象的出现,致使其他应用功能受到影响。在数据库编程检测极端需要对技术应用以及系统稳定性进行检测,为系统运行提供良好的运行环境,软件应用的稳定性与编程技术的选择具有直接关系,因而需要加强对编程技术选择的重视。 2.4数据库文件加密 数据库建立应当应用编程技术对数据库的数据信息进行加密保护,应用者通过登录口令或者密码进行数据库的登录和应用,工作人员需要应用技术手段解决常见的加措施,避免数据信息受到网络病毒侵害以及不良侵犯,根据信息的重要程度设置不同的加密等级,应用者具有自主选择的权限和空间,避免信息泄露对系统以及个人造成的严重影响。 3结语 计算机软件工程的数据库编程技术应用,能够实现在文件类型的比较、数据库的建立等环节的技术应用,并通过合理编程技术的选择、进行数据库文件加密来保证数据库结构设计的合理性和安全性,应用编程技术对软件模块以及软件运行空间进行合理优化,保证软件运行的稳定性,并有效提升其应用效率,促进编程技术应用价值的实现。 作者:于博文 单位:长沙市第六中学 计算机软件论文:计算机软件工程中的编程技术 摘要:随着我国科学技术的快速发展,编程技术早已经逐渐融入了我们的日常生活和工作中,特别是工作中需要用到的编程技术较多且复杂,所以逐渐出现了计算机数据库的概念,并且一经推出就受到人们广泛的推崇。本文通过对计算机软件工程中数据库文件的建立、数据库的概念以及编程技术在计算机数据库中的作用进行了分析和探讨,总结归纳出了编程技术在计算机数据库中的具体应用措施,以供相关专业人员参考或采纳。 关键词:数据库;计算机软件工程;编程技术 编程技术其实是办公实现自动化的重要基础和关键组成部分,因为编程技术不仅能够支持办公类各种计算机软件的正常和运行,还能够保证办公电脑硬件设备的安全。也就是说将计算机软件应用在计算机数据库之中,不仅能够最大程度上办公的工作效率和办公整体水平,还能够提升企业的综合能力和竞争力,从而使企业在金融危机这个大环境下,一直长远的发展下去。 1计算机软件工程中数据库文件的建立 1.1类型比较 数据库文件的建立一般情况下都要在能够读取相关信息的前提下进行,所以在初期准备建立数据库时,一定要针对数据库的相关信息来进行有效的对比,而在观察文件时还要根据信息读取过程中容易出现的问题来进行选择建立数据库文件方式。 1.2建立数据库 数据库的创建一般情况下都是在文件类型确定之后才展开的一项工作,而在建立数据库之后对于数据库相关信息的访问权限也会有较大的改变,所以在一般情况下设计都是针对相关功能不够完善的项目来进行整改,通过更加合理的改善来解决计算机运行过程中出现的各种问题。 2计算机数据库的概念 计算机数据库其实就是通过编程技术来进行一系列工作的信息处理系统,其实计算机数据库出现的根本原因就是因为现如今信息技术发展十分迅速,所以计算机数据库应运而出,其最大的作用就是能够为企业构建一个自动化属性的企业内部信息处理系统,从而最大限度上为企业提供一个计算机数据库平台,使办公人员能够借助编程技术进行工作,其中包括信息的储备、更新、维护和传输等等。其实从本质上看来,计算机数据库就是一个对相关信息收集和整理的过程,这种技术十分适用于企业的办公。 3编程技术在计算机数据库中的作用 3.1可用性 可用性的提出是为了针对快速恢复故障和平衡负载。当计算机的主接口出现问题时,备份的接口将会自动的代替其进行工作,从而保证网络能够有条不紊的运行。而当网络的数据接受量过大时,备份接口还可以帮助主接口进行数据的接收和发送,从而起到均衡的作用。 3.2信息隐藏性 主体在进行通讯连接时,可以利用计算机的NAT技术系统,来隐藏内网的网址,并且在数据上是以公网的网址访问的网络,也就是说企业的用户可以直接访问外网的因特网,但是外网的所有网络都无法进行企业内部网络查看企业中的任何信息和资源。 3.3身份鉴别 身份鉴别是面向所有用户进行的验证程序,计算机的身份鉴别主要是指访问计算机的身份鉴别和端口计算机的身份鉴别。访问该计算机的用户必须通过SSH或者HTTP(HTTPS)的连接,通过输入用户和密码的方式来进行连接和鉴别,并且要保证密码以私密文件的方式保存在TACACS认证的服务器上,也就是说在计算机数据库中应用编程技术将能够最大限度上保证企业办公信息和数据的安全性。 4计算机数据库中存在的问题 编程技术和传统的计算机网络技术其实都是一样的,都是对于计算机的使用人员相关网络信息的总结和整理,只是编程技术要相较于传统计算机网络技术来说更加的便捷和方便。但是计算机网络技术存在着一个至关重要的问题,那就是相关信息的安全性,因为计算机网络技术依赖于编程技术和网络,所以编程技术具有容易修改、容易删除、容易查阅的特点,所以计算机网络技术中的信息很容易就被人他人进行查阅和修改,缺乏一定程度上的安全性。也正是因为这一问题,所以导致了计算机网络技术安全信息上的安全隐患。 5数据库文件的访问技术改革 5.1给予计算机数据库硬件支持 企业的工作流程内,计算机占据着其中百分之八十工作量,也就是说要想实现计算机数据库就必须要将编程技术应用在办公中。由于计算机数据库涉及的业务内容较多且相关信息比较繁杂,所以不论是计算机办公的软件还是硬件设备都需要编程技术的支持才能够保证办公中所有工作的顺利进行。计算机数据库中的特定软件有很多,其中以设备管理的软件为主,而支持自动化办公软件的系统主要是计算机数据库、SQLserver2008和Access。 5.2实现办公软件自动化 在办公的文档管理中应用编程技术,不仅能够保证使用者在计算机办公过程中能够在计算机的网络平台进行信息文件的审阅和查看批复,还能够在网络信息平台对文件信息进行审批和修改,这对于办公来说不仅提升了工作效率,还最大程度上减少了工作量。企业的工作人员在接收到文件之后,可以先将文件录入在网络信息平台内,然后再信息平台内进行修改和存档,存档完毕之后,可以对其进行准确的命名,以便他日查阅文件,并且存档的工作人员还可以将文件进行加密,针对不同用户设置访问权限,从而保证文件的安全性和共享性。 5.3创建全新信息平台 现如今很多企业都将编程技术应用在企业管理和信息中,其中信息使用的最为广泛和频繁,企业信息主要就是利用编程技术创建一个网络信息平台,其中最常见的就是电子网络论坛或者电子公告,在这个网络信息平台内,企业可以随时随地的公布企业公告和企业交流等等。 6结束语 综上所述,只有了解了编程技术的全部应用内容,才能够更好的将编程技术应用在计算机数据库内,这不仅能够提升企业的办公质量,还能够最大限度上的提升企业的办公效率,多方位的保障企业办公所有工作的顺利进行,从而最大限度上企业在整个市场环境下的竞争能力。 作者:王依楠 单位:长春职业技术学院 计算机软件论文:计算机软件工程管理及应用 摘要:随着时代的发展,社会的进步,信息技术已经成为影响社会生产的关键性因素。人们更多的将精力放到计算机的使用,以及面向计算机的应用管理等角度,而忽视了对计算机软件工程的深入思考。所以本文主要在计算机软件工程的管理和应用等方面进行分析,从不同的角度来观察和思考计算机工程的相关内容,带动计算机软件工程的发展。 关键词:计算机软件工程;管理与应用 引言: 从目前我国计算机技术的问题来讲,很多人的观念受到传统意识的限制,并且受到计算机引用意识的影响,没有将计算机技术真正应用到日常生活中。并且就目前而言,我国计算机软件工程的管理设计还不太均衡,明显存在一定出入,所以要结合计算机软件工程应用的不同角度进行分析,不断带动计算机软件工程管理的发展。 1计算机软件工程管理的主要内容分析 1.1工作人员管理 就目前而言,我国计算机软件的工程管理设计仍然不够成熟,很多方面存在很大的问题,并且在当下主流意识的培养中难以形成针对性的计算机软件工程意识。在计算机软件工程的构建中,计算机软件工程管理是其中不可忽视的重要问题,有关部门应该针对计算机软件工程的管理进行分析,全面带动计算机软件工程的进步。 1.2用户管理 计算机软件工程的主要面向对象是大范围的群众,所以在进行软件工程管理时完成最大程度的开发就能够减少此类市场竞争关系的影响,达到用户的需求。在完善计算机软件工程管理体系的前提下,给用户最好的软件体验,而其中最多的是满足用户的功能需求,增添更多的功能来满足用户的实际需要,实现计算机软件工程在实际应用方面的扩展。结合计算机软件工程在社会生活中的实际应用进行分析,不断进行再次设计和完善,最终始终能够在此项工程中取得突破性进步。 2计算机软件工程管理的办法与对策分析 建立完善的计算机软件工程体系来进行具体的工程建设,从我国计算机软件工程当前面对的实际情况进行分析,带动科学合理的计算机软件工程架构,促进整体管理体系的发展。在充分的计算机软件管理角度上充分调动软件设计体系的作用,结合完善的管理措施,为达到计算机软件工程管理的相关措施来实现有关问题。 2.1构建健全的计算机软件工程管理体系 在计算机软件工程的管理体系进行分析,以更加科学合理的管理办法,全面带动软件工程的发展,对我国计算机工程的进步来讲非常重要,更加适合当前社会生产的优化调动,利于科学化的管理措施。 2.2加强对计算机软件工程的风险管理与进度管理 在计算机软件工程中,由于我国的有关措施还不够完善,所以在计算机软件工程体系中还存在着一定的问题。所以在对于计算机软件工程的发展中,需要结合一定的软件工程建设来进行更加科学合理的设计,在实际软件工程建设来完善管理体系的构建,带动系统化的应用措施。在计算机软件工程的实现中,需要结合管理体系的设计进行分析,在原有系统工程建设的基础上,充分调动风险管理和进度管理的有关工作,促进应用体系反馈的发展。 2.3强化计算机软件工程项目合作团队的管理 在计算机软件工程管理中从团队合作的角度进行考虑,全面分析计算机软件工程的管理体系,通过团队合作的方式来进行优化培养,增强计算机软件的管理方案,在实现计算机工程的基础上实现细化管理。并进行用户实际应用情况的反馈,为满足用户的实际体验,在原有计算机软件工程的建设中,优化用户的软件体验,结合遇到的问题进行分析,得到及时解决。 3计算机软件工程的应用 3.1软件工程工作流程管理系统概述 计算机软件工程主要面向普通用户群的实际体验,在传统的计算机网络体系的构建中能够满足多项计算机软件的发展基础,优化软件的使用效率。全面带动计算机软件体系的发展,积极促进人们的日常应用体验,带来更加科学合理的计算机软件工程的构建。简单来讲,计算机软件工程管理体系主要是在基本的工作流程中进行实际完善,全面优化软件工作流程的操作,实现对用户实际应用的模拟安排,促进计算机软件工程的发展。在合理的软件工程经营管理体系中,按照对应的原则进行分配,并且给予这些软件工程更多的实际体验,维持在不同的信息规划中,实现更大范围的计算机软件工程体系构建。 3.2计算机软件在工程项目管理上的应用 随着时代的发展,计算机软件工程建设逐渐成为社会生产中的重要影响因素。对于企业的工程施工建设来讲,计算机软件工程的应用非常重要,能够直接影响到不同环节下信息的交流和沟通,并且在产业信息结构中进行科学合理的体系构建,全面带动工程建设的发展,更好的进行交流和沟通,对减少工程建设的成本来讲有着更多的帮助,有利于企业项目工程的管理。 3.3计算机软件工程在教学中的应用 在社会主义市场经济快速推动的前提下,由于计算机软件工程的特性受到更多社会生产建设的广泛应用,并得到更多领域的利用。比如在进行教学数据信息的交互中能够得到更好的交流和沟通,计算机软件应用给了教学方案的交互式设计,教师能够通过计算机软件来进行良好的辅助教学,并且在原有信息结构的基础上,减少成本的利用,建立良好的基础信息交互。随着时代的发展,计算机软件将会应用到更多的教学设计中,得到计算机软件开发的优化改善,极大程度提高在计算机软件工程应用基础上教学的效率,进一步促进计算机软件工程的发展。就目前来讲,计算机软件工程建设的实际应用较为广泛,能够得到进一步的开发和利用,得到更多创新与发展的机会,促进我国计算机软件工程体系的构建。 4结束语 总的来讲,在我国社会主义经济飞速发展的前提下,计算机工程同时得到快速进步。全面发展计算机软件工程建设对当前社会生产来讲非常重要,通过系统优化的科学合理建设来进行软件工程管理,构建完善的计算机软件工程管理体系。所以,通过计算机软件工程管理的角度进行重点分析,能够全面促进计算机软件工程的发展。 作者:仲炜 单位:三江学院 计算机软件论文:计算机软件工程管理浅析 摘要:随着科学技术的不断发展,计算机软件工程的地位也变得越来越重要,并影响着我国的社会经济发展。在近些年中,我国的计算机软件工程有着非常迅速的发展,同时也取得了良好的成绩,但在其管理工作上,还存在着许多需要完善的地方,为此,必须给予计算机软件工程管理工作足够的重视,加强对其管理策略的研究,才能更好的促进我国的计算机软件工程的发展。本文将对计算机软件工程管理内容、管理策略和应用进行详细的分析。 关键词:计算机软件工程;管理内容;管理策略;应用 就目前我国的计算机软件工程管理工作来分析,无论是在其管理体制上,还是在管理模式上都还存在着许多急需完善的地方。由于计算机软件产品的特殊性质,使得它在管理模式和管理策略上都与普通产品有着较大的区别,实际的管理过程必须在明确其管理内容的基础上,进行有针对性的强化管理,提升整体管理水平,为计算机软件工程的应用和发展做出更大的努力。 1计算机软件工程管理的内容 1.1组织机构管理 计算机软件工程管理对其管理人员有着非常高的要求,由于我国在这一方面的管理工作上起步相对较,高素质的管理人才比较缺乏,这也是计算机软件工程管理水平难以提升的一个重要原因。组织机构管理是计算机软件管理中的一个重点内,它不仅需要进行开发人员的汇合与管理,还需要做到科学合理的人力资源分配和调用,如何发挥出现有人力资源的最大优势,有效的提升工作效率,是目前计算机软件工程组织机构管理工作中的一个重点研究问题。 1.2工作人员管理 相对组织机构管理来说,工作人员的管理更具有针对性,而且管理过程更具体化。工作人员是计算机软件工程得以发展的基础,同时也是软件从无到有的直接参与者,所以它的管理应该包括软件开发设计到实施应用的全过程。其管理工作应该在全面掌握工作人员的专业技能和综合素质的基础上进行,将最优的人才安排到最为合适的工作岗位上。 1.3软件用户管理 软件用户管理同样也是计算机软件工程管理的一个重点内容,它通过对用户信息的收集、市场的调查、用户反馈信息的分析去实现软件工程的优化与完善。为了保证软件的开发符合社会发展的需要,更好的满足广大用户的需求,在进行实际的软件项目开发前,必须进行充分的市场调查研究,收集不同用户群体的信息,并在此基础上进行开发设计的优化,降低降低软件工程的风险。 1.4档案资料管理 随着科学技术的不断发展,计算机软件工程也变得越来越庞大,它所涉及的档案资料和数据信息也越来越多,这也在一定的程度上加大了计算机软件工程档案资料管理的难度。软件工程档案资料的管理,主要包括了项目期间所有档案资料的收集与整理,和开发应用过程中相关资料的备份与存档。加强对计算机软件档案资料的管理不仅可以为其后续的开发和维护提供良好基础,同时也有利软件开发效率和安全性的提升。 2计算机软件工程管理的策略 2.1强化管理体系,提高管理效率 管理体系是管理工作的重要指导,同时也是管理工作得以正常有序进行的基础,所以要加强计算机软件工程管理的策略,首先要做的就是强化计算机软件工程管理体系的建设,从实际的管理工作中去不断的完善管理体制和管理手段,并通过相关的奖励机制和责任制来提升工作人员的工作热情和责任心。其次,注重计算机软件工程管理人才的培养,提高工作人员的专业技能和综合素质,并明确管理目标,促进管理效率和管理质量的提升。第三,将管理机制落实到实际的计算机软件管理工作中。 2.2加强软件风险管理,确保工作进度 在计算机软件项目开发和推进过程中,其风险问题是必然存在的,所以,必须加强对计算机软件的风险管理,构建并不断完善相关的风险管控机制。第一,有针对性的进行工作人员风险意识的培养,让每一个工作人员都了解基础的风险管理知识,这样可以帮助工作人员在日常工作中及时的发现风险并通报风险,从而快速、科学的对其进行防护。第二,建立定期的计算机软件风险控制管理机制,这样有利于进行潜在风险的防范。第三,全面树立风险意识、效率意识以及成本意识,平衡好项目开发进度与项目支出间的管理,从而更好的提升项目效益。 2.3注重团队合作,发挥团队潜能 良好的团队合作意识和团队合作能力是计算机软件项目开发的基础,同时也是计算机软件工程管理的一个重点目标。首先,有目的性的进行工作人员团队合作意识的培养,并通过有效的管理方式去进行团队合作的协调与融合;其次,为企业内部建立良好的沟通交流平台,加强团队与团队、团队内部的交流合作,拉近彼此之间距离,这不仅可以起到提升工作效率的目的,还有利于团队潜能的发挥;第三,通过科学有效的团队管理手段,去提高工作人员的积极性与主动性,让每一个工作人员都有一种归属感和使命感,这的计算机软件开发团队,才可以发挥出最大的优势,为企业创造更大的财富。 3计算机软件工程的应用分析 计算机技术和互联网络技术的不断发展,让计算机软件工程的应用变得越来越广泛,其实际应用中所发挥的作用也在不断增加。就目前的应用情况来分析,可以说是,各行各业都离不开计算机软件工程。例如:最为常见的办公软件、界面操作系统、人机交互系统等。计算机软件工程在企业内部的信息数据管理上的应用,可以让其管理工作变得更加规范化和便捷化,同时也大大的提升了信息资源的共享效率;计算机软件工程在教育行业中的应用,可以帮助学校对学生档案、学费等信息进行快速的管理,通过信息交流平台的应用,可以大大的提升知识的传播效率,帮助学生更好的自我学习。计算机软件工程的应用可以说是无处不在的,计算机软件工程的发展将推动着各大行业的发展。 4结束语 总的来说,计算机软件工程的发展对实现我国社会现代化发展有着非常重要意义。为能够让计算机软件工程为我国社会经济发展的发展创造更好的优势,必须加强对其管理工作的分析研究,保证管理质量和软件开发效率,并将其合理的应用到实际的生活工作中,为我国的发展做出更大的贡献。 作者:王恩涛 单位:辽宁万益职业技术咨询有限公司
软件管理论文:谈软件项目中的人力资源管理 软件项目团队建设是实现软件项目目标的保证,团队文化和团队精神是团队成功的重要基础,建立一种“相互帮助,共克难关”的工作氛围十分重要。本文初步揭示了项目人力资源管理的含义与内容、软件项目中的人力资源管理流程和获取方法,以及一些常见问题的解决方法与途径。 软件项目的人力资源管理与项目的进度、成本、整体质量和存在风险等方面管理一样,也是一个项目组织必不可少的管理职能。 一、软件项目人力资源管理的含义和内容 软件项目人力资资源管理就是根据软件项目的目标、项目的进展情况和外部开发环境的变化,采用科学的方法,对项目团队成员的思想、心理和行为进行有效地管理,充分发挥他们的主观能动性,实现项目的目标。项目人力资源管理的重点集中在两个方面:一时针对个人的;另一方面是针对团队的。 软件项目人力资源管理包括计划制定、获取人员和建设团队三个阶段。按照业务管理的流程,还可以具体划分为资源规划、解雇、招聘、筛选、培训等基本活动。 软件项目人力资源管理的主要内容包括: (1)对软件项目进行组织和规划。项目组织规划是项目整体人力资源的计划和安排,是按照项目目标通过分析和预测所给出的项目人力资源的数量和质量上的明确要求、具体安排和计划。 (2)获取和分配软件项目人员。软件项目组织通过招聘获得所需要的人力资源,并根据各自的技能进行工作安排,由于项目的一次性和项目的临时性,项目组织的人员获得与配备和其他组织的人员获得与配备是不同的。 (3)软件项目组织成员的开发。包括:项目人员的培训、考核,激励等等。 (4)团队建设。 由于在项目工作中人员的需求可能是不连续的,容易造成人员的浪费和成本的提高。比如:某软件项目现有20人,设计阶段需要10人;审核阶段需要1周,但不需要项目组成员从参与;编码阶段是高峰期,需要15人,但在测试阶段只需要8人。往往这些阶段进行过程中,会出现没有工作安排的人员。根据大多数大中型软件开发项目的统计,对开发人员的要求是随机变化的,一开始资源需求量较小,然后逐渐上升,达到某个时间常数时需求量达到高峰,之后再逐步下降,减少到较低的数值。 二、软件项目团队的特点 软件项目团队建设,就是吧与软件项目相关的人员组织起来实现项目目标,这是一个持续不断的过程,也是项目经理和项目团队的共同职责。通过团队成员的共同努力能产生群体的协作效应,从而获得比个体成员绩效总和大得多的团队绩效。项目团队不仅可以通过团队成员之间相互的沟通、信任、合作和承担责任,高效地利用有限的人力资源,而且有助于加强员工间的交流与协作。一个好的软件项目管理团队应该具有以下几个特点: (1)有好的团队带头人,他对项目管理有很丰富的经验,是团队凝聚力的核心,有很好项目组织及人员协调能力。 (2)好的团体,应该有好的知识及能力体系。每个人毕竟不能什么都会,但对于一个团对应该能做很多事情。就软件项目团队而言,就应该在需求、分析设计、编码、测试等重要阶段有具有此能力的人去参与。对于不同的行业,不同的项目,对项目团队的要求也是不同的。如一个游戏项目团队和一个电信软件团队的差别就是很大的。比如:一个WEB开发项目团队,就要有美工、动画设计人员,WEB端、Server端优秀的开发人员。这样去组织一个团队才可能把WEB项目的开发阶段做好,做的很专业。 (3)好的团队,要保证团队目的与个人目的的统一。这也是管理组织学中团队效力及团队效率的问题。也只有这样才能保证团队有凝聚力,稳定、健康的发展。 (4)好的团队,目标明确,目标统一。 (5)要有良好的沟通,乐与交流习惯。融洽的团队环境。 (6)良好的团队组织及团队合作习惯,不能有什么小的派别等。 (7)好的团队,人员职责分明。 (8)好的团队,有一个好的团队学习习惯。这是团队能力提高的阶梯。 三、软件项目团队的冲突管理 冲突就是个人、团队、组织限制或阻止另一部分个人、团队、组织达到预期目标的行为。软件项目团队内部成员之间相互了解越深入,彼此合作越默契,团队建设也就越出色,效率也会因此提高,但是人与人之间相互了解需要一定的磨合时间,在这一时期必然会存在很多方面的冲突,需要及时对这些冲突做出有效处理。在项目运作过程中,存在冲突是很经常也很正常的,但如果仅仅是试图避免冲突或者是压制冲突,只能是进一步恶化冲突,导致效率的严重下降。冲突既有积极的一面,也有消极的一面,如果能有效地解决这些冲突,可以有助于改善团队的建设和项目的状况,给团队一个学习与提高的机会;如果解决不当,有可能会给项目埋下隐患或者使得整个团队处于一种混乱状态,最终导致解散、失败。因此项目团队管理者要引导冲突解决结果向着团队成员积极协作有利的方向发展,而不是向着消极的方向发展,造成不可挽救的恶果。解决冲突的方式主要有:建立完善的解决冲突的方针与管理程序;冲突双方直接沟通协调,解决矛盾;利用会议解决冲突;在所有的解决方式中都离不开沟通,解决冲突过程中,沟通的方式有很多,如:口头沟通、书面沟通、正式沟通、非正式沟通、面对面或者是通过其他方式沟通等,这需要根据项目以及冲突的不同性质选择不同的沟通方式,以达到效率最高。一般解决软件项目开发过程中的冲突可以从以下几方面出发: (1)沟通协调一定要及时。团队内必须做到及时沟通,积极引导,求同存异,把握时机,适时协调。唯有做到及时,才能最快求得共识,保持信息的畅通,而不至于导致信息不畅、矛盾积累。 (2)善于询问与倾听,努力地理解别人。倾听是沟通行为的核心过程。因为倾听能激发对方的谈话欲,促发更深层次的沟通。另外,只有善于倾听,深入探测到对方的心理以及他的语言逻辑思维,才能更好地与之交流,从而达到协调和沟通的目的。同时,在沟通中,当对方行为退缩、默不作声或欲言又止的时候,可用询问引出对方真正的想法,去了解对方的立场以及对方的需求、愿望、意见与感受。所以,一名善于协调沟通的人必定是一位善于询问与倾听的行动者。这样不但有助于了解和把握对方的需求,理解和体谅对方,而且有益于与他人达成畅通、有效的协调沟通之目的。 (3)对上级沟通要有“胆”、有理、有节、有据。能够倾听上级的指挥和策略,并作出适当的反馈,以测试自己是否理解上级的语言和理解的深刻度;当出现出入,或者有自己的想法时,要有胆量 和上级进行沟通。 (4)良好的回馈机制。协调沟通一定是双向,必须保证信息被接收者接到和理解了。因此,所有的协调沟通方式必须有回馈机制,保证接收者接收到。比如,电子邮件进行协调沟通,无论是接收者简单回复“已收到”、“OK”等,还是电话回答收到,但必须保证接收者收到信息。建立良好的回馈机制,不仅让团队养成良好的回馈工作习惯,还可以增进团队每个人的执行力,也就保证了整个团队拥有良好的执行力。 (5)控制非正式沟通。对于非正式沟通,要实施有效的控制。因为虽然在有些情况下,非正式沟通往往能实现正式沟通难以达到的效果,但是,它也可能成为散布小道消息和谣言的渠道,产生不好的作用,所以,为使团队高效,要控制非正式沟通。 要清楚的认识到软件项目人力资源管理的重要性,并掌握软件项目人力资源的筹集,项目团队信息交流的方式,成员激励的要素及处理冲突的方法。总之,人力资源管理是软件项目开发中的重要智力资源,必须做好软件项目人力资源的管理。 软件管理论文:企业管理软件和营销策略分析 随着我国信息化的建设,以软件为基础对企业进行管理更有效率。其具有很高的应用价值,也有较好的市场。但是在营销策略上如果不加以分析,那么其在市场上的销量必然无法达到理想的状态。因此,加强企业管理软件的市场分析以及营销策略的分析十分关键。 1企业管理软件在市场营销中的概况 1.1企业管理软件环境分析 目前,大多数企业的软件市场政策较为合理。很多企业已经将信息化作为推动工业化的基础。进行全面的信息化建设。软件已经逐渐渗透到企业的管理中,软件管理能够提高服务自动化,节省很多人力物力,而且其管理的精准度也相对较高。现今,很多企业在软件运用的过程中,使得其管理机制更加科学,更加合理。因此,企业管理软件在市场中占据着较好的市场,但是其市场竞争度相当激烈。因此,目前企业管理软件虽然市场环境良好,但是在销售上如果没有较好的创新,那么将很容易被其他软件公司所淘汰。所以,做好市场环境与营销策略的一体化分析十分关键。 1.2企业管理软件特点分析 其一,企业管理软件具有较强的抽象性,具体来说其没有物理实物形态,所以企业管理软件的可见性非常低。这就使得其在营销方式上,要做出一定的改变。如果使用传统的方式去营销那么必然会与这个市场极不协调。而且很多软件产品,大多数以软盘以及光盘为实物形式,这就使得很多抽象性进一步地表现出来。因此,很多时候消费者未能通过其实体表现,将软件的基础性能进一步表现出来,从而影响其在市场上的销量。其二,企业管理软件具有大量生产的潜能,其有较好的广泛适用性。简而言之,就是可以用较低的生产成本来满足顾客的需求。图1为某软件公司企业管理软件生产成本图。从图1中,我们可以很清楚地看到,其固定成本较为稳定,但是其总收入却呈正比例上升。这就说明企业管理软件实际的应用性很强,其大规模的生产,必然会在市场中发挥出其应有的价值。其三,企业管理软件具有很好的持久性以及继承性。这也是大多数软件所具备的通用性质。企业管理软件可以采用升级的方式对软件进行更新,从而获取新的管理功能。这种版本升级不同于一般产品的实体更换方式,新版本在根本程度上必须继承旧版本,并在旧版的基础上对新版本进行改进和扩充。这样就能保证管理软件的与时俱进,避免与时代的发展出现脱节。而且企业管理软件在质量上不会出现磨损现象,其使用周期与时间也没有关联。这样就能有效地保证软件使用的持久性。同时还可以通过升级来不断提高软件使用的适用性以及适时性。 2企业管理软件在市场中的分析 (1)目前,企业管理软件在市场竞争中相当激烈。其一,与国际管理软件相比较,我国的企业管理软件较为适用于一些小型企业和部分中型企业。因此企业管理软件在中小型企业中拥有的客户相对较多。这也为企业管理软件拓宽了营销渠道,促进了我国经济的快速发展。其二,我国的企业管理软件与国外相比虽然还有一定的差距,但是其也避免了成本的大量输出,与市场局势不相顺和。就国内软件的竞争趋势而言,我国在企业管理软件上的竞争已经越来越激烈。一些企业还表现出极不成熟的特点。采取不规范的市场竞争手段。很多软件公司利用打折或者安装盗版软件来获取利润,这就使得很多正版的管理软件在价位上无法竞争,从而严重影响了企业管理软件在市场竞争中的可靠性。我国当前的软件企业仍然停留在小作坊的发展水平上,软件市场的不规范从而引起市场竞争的不规范。在目前,虽然企业管理软件生产开发商较多,但是其在品牌认知度上还不高,使得各企业之间出现一种同质化的竞争。这不仅使得竞争更加混乱,也不利于企业竞争的培养和提升。(2)要对软件市场发展格局进行分析。其一,软件市场的规模比较庞大,而且其政治经济环境较好。而且企业管理软件市场前景广阔。因此,目前软件企业数量较多,其为管理软件的发展提供了良好的市场基础。而且现代化企业的全面发展需要与信息相结合,才能够实现现代化管理。这就使得软件市场初具规模。其二,从迎合国际经济的趋势来看,从我国加入WTO以后,市场经济明显有所提升。经济发展模式以及理念也有了较大的改变。从而使得企业管理模式和理念也需要更新。引进先进的现代化管理软件对于市场而言,能够起到拓宽市场的作用。其三,目前我国硬件基础较好,这就为软件的实施奠定了基础。近年来,计算机技术和信息产业发展迅速。也为我国软件的发展提供了一定的基础。我国的企业管理软件具有成本低、效率高的特点,在市场中占据着很好的优势。其不断地改进与更新为营销提供了本土优势。所以目前我国软件市场发展的综合格局呈现出竞争的激烈性和实效性。(3)要对软件市场需求特点分析。在激烈的市场竞争中,谁赢得了市场,谁就赢得了竞争的主动权。在今天的买方市场环境下,想赢得市场,就必须赢得顾客。通过了解顾客的需求和潜在需求,开发出顾客需要的产品,是赢得顾客的保证。研究市场中软件产品的需求特点对于软件企业制定软件产品的营销策略具有重要的作用。要根据软件的需求特点,软件的功能、服务、品牌、价格进行良好的定位。这也是软件需求者购买软件的首选因素。在对企业管理软件进行消费时,软件的功能、品牌、服务、价格是软件需求者的首选因素,追求品牌软件,有求廉心理。图2为我国近几年以来企业管理软件市场数据。从图2我们可以很清晰地看到,人们对企业管理软件的消费水平呈现逐年上升的趋势。但是软件的综合走势却在2009年期间逐渐趋于饱和。因此对软件进行改革以及进行及时的更新是软件市场营销的资本和基础。所以企业管理软件公司在开发软件的过程中,一定要结合市场的营销环境进行全面地分析,开发出合适的管理功能,让管理软件拥有自己的特性,这样在竞争中才能占据一席之地。并且,在生产模式上,要对管理软件进行系统的分析,建立起较为科学合理的软件体系。图3为管理软件的产业分析图。从图3中,我们可以很清楚地看到软件的产业管理是十分严格的。生产者应当按照流程进行规范生产,要根据顾客的需求制作出适合其企业的管理软件,而不是进行大批量的复制,只有在不断的创新中自制生产,企业管理软件公司才能不断进步,营销得利。 3企业管理软件营销策略探讨分析 3.1强化营销渠道建设 为了加强企业管理服务单位内部体系的营销渠道建设,就需要在企业的服务单位内部成立相应的专门化软件管理组织,并设置对应的专业的销售、实施和售前等岗位,并及时地吸纳专业人才来充实营销队伍,同时对招纳的营销人员进行工作培训,不断地扩充其专业知识,从而不断地提升其服务水平和经营意识,从而为企业的营销出谋划策。另外,还需要加强对营销体系外的渠道进行开发,通过并购的策略来不断地削弱对手营销渠道,从而将对手的营销渠道进行整合,做到内外渠道两手准备,全面地推进企业营销渠道的建设,并完善企业的营销体系,提升企业的整体软件管理营销水平。 3.2培养和提升企业的核心竞争力度 企业的核心能力是企业提升竞争力的主要来源,在企业间的竞争中,只有拥有过硬的核心竞争力,才能在企业的经营管理 战略中不断地胜出,从而不断地占据市场主导地位。在企业战略的竞争中,要不断地将遇到的问题逐渐加以转化,并在实践中通过自身的处理,来逐步地培养企业在竞争中的力度。时刻注意对企业中出现的关键问题的把握,这些问题的持续性也为企业提高竞争能力提供了动力,同时也为获得竞争对手更有价值的资源提供了便利,从而逐渐地培养和提升企业的核心竞争力度。 3.3强化营销的分解和整合能力 在企业的营销管理中,重视价值链体系的建设极为重要,既不能盲目地扩建企业生产,也不能随意地抑制企业的发展,保证企业的发展处在一个合适的发展方向上,只有这样才能不断地促进企业的良好发展。在企业的关键管理营销战略中,还需要重点强调其分解能力,也就是保证营销战略中的每一个战略都能做到最为精致,避免出现一味地追求做大做全的战略目标。在管理软件的推广方面,要结合产业价值链的发展角度对营销项目运作中的每一方面都要进行明确的分工,将工作落实到位。对于厂商而言要专注于集中资源的发展力度,从而不断地提升其核心竞争能力。同时对于负责具体项目的工作人员来说,要专注于工作的细节和工作质量。企业的整合能力主要体现在能够发现社会上的有利资源,并加以有效地利用,通过价值链的不断设计,逐渐地将有效的社会资源向有增值优势的社会环节上进行转化。在对社会有利资源不断探索的过程中,要求产商具有较强的信息获取能力和经营能力,同时还要求企业在营销管理中具有敏锐的视角和独立的创新精神,从而不断地将获得的信息资源进行整合,提高企业的营销能力。由此可知,确保企业管理软件营销的分解和整合相得益彰,可以有效地提高企业管理软件的营销能力。 4结语 企业管理软件具有较好的营销市场,其对于企业的管理有着不可忽略的作用。因此,在对企业管理软件进行营销时,要结合市场的特点进行全面的分析,让软件迎合市场的需求并进行有针对性的开发和营销。这样才能更好地让管理软件发挥出其特效。同时,在营销过程中,要强化营销手段,提升企业的核心竞争能力,用科学的营销方法,让管理软件拥有更多的市场。 软件管理论文:网络广告认识网络管理和网管软件 在计算机网络的质量体系中,网络管理是其中1个症结环节,正如1个管家对于于大家庭糊口的首要,网络管理的质量也会直接影响网络的运行质量。那末,怎么给自己的网络选择适合的网络管理系统以及网络管理软件呢? 网络是新经济时期的基础设施,信息传递、办公、营销、服务、交换、文娱等各种流动均可以通过网络完成,网络的质量直接抉择了社会糊口以及经济糊口的质量。在计算机网络的质量体系中,网络管理是其中1个症结环节,正如1个管家对于于大家庭糊口的首要,网络管理的质量也会直接影响网络的运行质量。那末,怎么给自己的网络选择适合的网络管理系统以及网络管理软件呢? 网络管理 当前计算机网络的发展特色是范围不断扩展,繁杂性不断增添,异构性愈来愈高。1个网络常常由若干个大大小小的子网组成,集成为了多种网络系统(NOS)平台,并且包含了不同厂家、公司的网络装备以及通讯装备等。同时,网络中还有许多网络软件提供各种服务。跟着用户对于网络机能请求的提高,如果没有1个高效的管理系统对于网络系统进行管理,那末就很难保证向用户提供使人满意的服务。 作为1种很首要的技术,网络管理对于网络的发展有着很大的影响,并已经成为现代信息网络中最首要的问题之1。 实际上,网络管理其实不是1个甚么新概念。从广义上讲,任何1个系统都需要管理,只是依据系统的大小、繁杂性的高下,管理在整个系统中的首要性也就有重有轻。网络也是1个系统。追溯到一九世纪末的电信网络,就已经经有了自己相应的管理“系统”,这就是整个电话网络系统的管理员,虽然他能管理的内容无比有限。而计算机网络的管理可以说伴同着一九六九年世界上第1个计算机网络——ARPANET的发生便发生了,当时,ARPANET就有1个相应的管理系统。随后的1些网络结构,如IBM的SNA、DEC的DNA、SUN的AppleTalk等,也都有相应的管理系统。无非,尽管网络管理很早就有,却1直没有患上到应有的注重。这是由于当时的网络1是范围较小,2来繁杂性不高,1个简单的网络管理系统就能够知足网络正常管理的需要,因此对于其钻研较少。但跟着网络的发展,范围逐步增大,繁杂性增添,之前的网络管理技术已经不能适应网络的迅速发展。 网络系统范围的日趋扩展以及网络利用水平的不断提高,1方面使患上网络的保护成为网络管理的首要问题之1,例如排除了网络故障更为难题、保护本钱上升等;另外一方面,如何提高网络机能同样成为网络系统利用的主要问题。尽管可以通过增强或者改善网络的静态措施来提高网络的机能,比如增强网络服务器的处理能力、采取网络交流等新技术来拓宽网络的带宽等,然而网络运行进程中负载平衡等动态措施也是提高网络机能的首要方面。通过静态或者动态措施提高的网络机能分别称为网络的静态机能以及动态机能。而网络的动态机能的提高是通过网络管理系统即“网管系统”来加以解决的。 1般说来,网络管理就是通过某种方式对于网络状况进行调剂,使网络能正常、高效地运行。其目的很明确,就是使网络中的各种资源患上到更为高效的应用,当网络呈现故障时能及时作出讲演以及处理,并调和、维持网络的高效运行等。1般而言,网络管理有5大功能,它们是:网络的失效管理、网络的配置管理、网络的机能管理、网络的安全管理、网络的计费管理。这5大功能包含了保证1个网络系统正常运行的基本功能。 现代计算机网络管理系统主要由4个要素组成:若干被管的(Managed Agents);至少1个网络管理器(Network Manager);1种公共网络管理协定(Network Management Protocol);1种或者多种管理信息库(MIB,Management Information Base)。其中网络管理协定是最首要的部份,它定义了网络管理器与被管间的通讯法子,规定了管理信息库的存储结构、信息库中症结字的含意和各种事件的处理法子。目前有影响的网络管理协定是SNMP(Simple Network Management Protocol)以及CMIS/CMIP(the Co妹妹on Management Information Service/Protocol)。它们代表了目前两大网络管理解决方案。其中,SNMP流传最广,利用至多,取得支撑也最广泛,已经经成为事实上的工业标准(详见技术部份)。 网管软件 网络管理的需求抉择网管系统的组成以及范围,任何网管系统不管其范围大小,基本上都是由支撑网管协定的网管软件平台、网管支持软件、网管工作平台以及支持网管协定的网络装备组成。其中网管软件平台提供网络系统的配置、故障、机能及网络用户散布方面的基本管理,也就是说,网络管理的各种功能终究会体现在网管软件的各种功能的实现上,软件是网管系统的“灵魂”,是网管系统的核心。 网管软件的功能可以归纳为3个部份:体系结构、核心服务以及利用程序。 首先,从基本的框架体系方面,网管软件需要提供1种通用的、开放的、可扩大的框架体系。为了向用户提供最大的选择规模,网管软件应当支撑通用平台,如既支撑Unix操作系统,又支撑Windows NT操作系统。网管软件既可以是散布式的体系结构,也能够是集中式的体系结构,实际利用中1般采取集中管理子网以及散布式管理主网相结合的方式。同时,网管软件是在基于开放标准的框架的基础上设计的,它应当支撑现有的协定以及技术的进级。开放的网络管理软件可以支撑基于标准的网络管理协定,如SNMP以及CMIP,也必需能支撑TCP/IP协定族及其它的1些专用网络协定。 网管软件应当能够提供1些核心的服务来知足网络管理的部份请求。核心服务是1个网络管理软件应具备的基本功能,大多数的企业网络管理系统都用到这些服务。各厂商常常通过提供首要的核心服务来增添自己的竞争力。他们通过改良底层系统来补充核心服务,也能够通过增添可选组件对于网管软件的功能进行扩充。核心服务的内容良多,包含网络搜寻、查错以及纠错、支撑大量装备、友好操作界面、讲演工具、警报通知以及处理、配置管理等等。 另外,为了实现特定的事务处理以及结构支撑,网管软件中有必要加入1些有价值的利用程序,以扩大网管软件的基本功能。这些利用程序可由第3方供应商提供,网管软件集成水平的高下取决于网络管理系统的核心服务以及厂商产品的功能。常见网管软件中的利用程序主要有:高档警报处理、网络仿真、策略管理以及故障标记等。 由上面的介绍可以看出:体系结构、核心服务以及利用程序3者之间是互相联络、密不可分的。体系结构提供1个系统平台,1个多种资源有机联络的场所;核心服务提供最基本、最首要的服务,就象糊口中保持人正常生存的部份;利用程序知足具体的、个性化的需求,有如糊口中不同人的不同习气以及喜爱。 软件管理论文:软件公司的商帐管理 软件公司的商帐管理 北京中关村的一家软件企业,同时兼营一些网站制作及推广业务。公司在经营中累积了大量的债权,严重影响公司的运营。这些债权有这样的特点:1、债权极为分散,债权总数只有一百多万元,但是却有一千多笔,最少的一百块,最多的也只有几万块;2、时间长,这是公司经营中历年积累下来的,大约有三分之一已经过了两年的诉讼时效;3、材料混乱,这些债权的形成以及相关材料很多无处查询,没有人很清楚的知道;4、这样一些小的债权还在不断产生;5、公司并没有任何人具体负责这些债权的催收。 无疑那家软件公司的债权催收将面临巨大的困难。1、债务人公司是否存在?一些小的公司,经营不好就不去年检,让公司自然消亡,公司都没有了,自然债权也要不到了;2、公司的经营地址和联系方式是否发生变化?一般的公司都是租赁写字楼办公,一年一搬家很常见,一搬家联系方式等全部发生变化,必须重新找到新地址所在;3、原来的经办人是否还在?这看起来与债权的催收并没有关系,其实关系很密切,一般小公司没有完善的文件保管制度,经办人走了,这么小的一件事情,也许移交工作时并没有做交代,没有人知道这件事情,那么当然不会轻易付给你钱;4、如果债权数额较大还要考虑,债务人是否有偿还的经济能力。 如果债务人不想还钱,那么只有起诉,但是起诉的成本巨大。无论案件的大小,基本工作量是一样的,必须捋清法律关系,整理好证据材料,去工商局查询债务人的工商注册材料,找到公司注册地址和法定代表人,然后才能制作诉讼文书。起诉要去法院五次,立案一次、开庭一次、领判决书一次,申请执行一次,领执行款一次,如果幸运的话,可以少去几次,当然也可能比五次要多。很多小公司被郊区的税收优惠政策吸引注册在郊区,但是却在市里办公,这样必须要去郊区起诉,往返郊区的时间和交通成本是很高昂的。到法院起诉要交诉讼费,工商局查询要交纳查询费,如果加上律师费,每个案件的成本可能高达一万元,那么对于标的额在一万以下的诉讼案件根本就没有诉讼的意义。 根据美国商法联盟调查数据显示,当逾期时间为一个月时间,追帐成功率为93.7%,当逾期半年时,成功率降为57.8%,当逾期两年左右,成功率为13.5%。美国企业的应收帐款回收期平均只有37天,而中国企业平均为100多天。美国公司追帐的成功率为60%以上,而中国企业的成功率不到20%。根据中国的国情,以及我们工作中的实务经验,对于这些小额的债务必须建立一套完整的催收制度才能有所保障,下面将探讨这个催收制度的建立。 一、健全内部合同管理 合同管理不仅仅是保管合同原件,更需要保留好合同相关的往来传真、备忘录、相关人员签署的收货凭证等等,都要妥善保管好。很多公司是没有合同管理的,对于一些小的合同,原件虽然在公司的专人手中,但是在执行过程中有关材料随意分散在业务人员手中,业务人员走了,该资料也就没有了,合同的执行情况也就没有人知道了。一旦发生纠纷没有人能完全知道事情的来龙去脉,没有人手头有完整的材料。 合同保管要强调责任制,在合同执行阶段,合同可以由业务人员或业务部门经理保管,凡是和合同执行有关的材料统一在第一时间交给该人保管。业务办理完毕应当完整移交到公司专职保管人员。我们建议在移交的材料中加上一个合同执行说明,由具体经办人对合同的执行情况进行说明,将材料列个清单,可以做成格式直接填写。 二、强化催收 中国讲人情,在我们的实务工作中发现,越是关系好,可能款项越晚兑现。大部分款项并不是对方没有能力支付,而是不想支付,想想现金在自己公司握着多主动,而且可以生息,总比还给别人好。所以很多公司是看哪个催得急,谁急就先付给谁。而如果碍于面子,就只能等到最后了,万一对方资金一紧张,这帐就成了陈年老帐了,所以要加强货款催收。 催收也要讲策略,按过程分别进行排布。 第一步,直接由业务人员负责催收。业务员的待遇是与业务量挂钩的,业务人员应当对帐款承担催收责任。业务人员是公司最底层的工作人员,可以可怜兮兮去找对方,“大哥,你要是不给我钱,我就要失业了。”,这样博得同情心,小的帐款一般都能这样催收回来。这一步的时间不要太长,给予两周的时间就行了,没有效果进入下一步。 第二步,财务部核帐。财务部核帐有两个目的,第一告诉对方这笔帐款开始移交到公司统一来处理了,二是和对方核帐,确认欠款的事实与数额。这个很重要,一旦发生诉讼有这张核帐单,双方的法律关系就非常的简单了,不需要对合同执行中的质量、数量等双方可能发生争议的事项进行纠缠了。这个时候双方还没有闹僵,拿到这样的核帐单一般比较容易。当然财务部目的不是要核帐,还要催收款项,财务部人少,自然没有人专职来打要帐电话,可以让单位前台或其他人以财务部的名义打这个电话。 第三步,以上措施都没有效果,那么说明对方有想赖帐的可能。如果对方说,你再等几天,我们马上有一笔到帐,一到就给你,这样的话,最多只能信一次,不要有太多的指望。以上两个步骤已经进行了三个月,仍然没有效果就应当考虑移交公司法律部门,由法律部门进行处理。 三、果断采取法律措施 很多公司顾虑采取法律措施会伤了彼此友好的业务关系,失去了一个客户。这是中国国情,确实是要考虑的,但是只要想想,做任何的业务都是以赢利为目的的,如果对方不支付帐款,那么要这个友好的业务关系做什么?与其拖到以后翻脸,再对簿公堂,不如现在采取法律措施早点将款项收回来更 为塌实。 采取法律措施,也能考虑到中国国情,不是一开始就直接将对方告上法庭。可以先给对方打招呼,说要采取法律措施了,再不理睬,发个律师函,最后才起诉,这样的话对方就自己陷入了不人情了,再有什么埋怨也不好讲了。 软件管理论文:ISO9000在软件工程管理的应用 杨挚 ISO9000系列标准及软件质量认证 近年来,国际上影响最为深远的质量管理标准当属国际标准化组织于1987年公布的ISO9000系列标准,这一国际标准发源于欧洲经济共同体,但很快就波及美国、日本及世界各国。到目前为止,已有70多个国家在它们的企业中采用和实施这一系列标准。中国对此也十分重视,也采取了积极态度。一方面确定对其等同采用,与其相应的质量管理国家标准系列GB/T19000;同时积极组织实施和开展质量认证工作。计算机软件行业自然也和其它领域一样被席卷进去。 ISO9000系列标准如此迅速地在国际上广为流行,其原因主要在于: 1)市场经济,特别是国际贸易的驱动。无论任何产业,其产品的质量如何都是生产者、消费者、以及中间商十分关注的问题。市场的竞争很大程度上反映了在质量方面的竞争。ISO9000系列标准客观地对生产者(也称供方)提出了全面的质量管理要求、质量管理办法,并且还规定了消费者(也称需方)的管理职责,使其得到双方的普遍认同,从而将符合ISO9000标准的要求作为国家贸易活动中建立互相信任关系的基石,并且在国际贸易中,把生产者是否达到ISO9000质量标准作为购买产品的前提条件,取得ISO9000质量标准认证被人们当作进入国际市场的通行证。 2)ISO9000系列标准适用领域广阔。它的出现最初针对制造行业,但现已面向更为广阔的领域,这包括: (1)硬件:指不连续的具有特定形状的产品,如机械、电子产品,不只是计算机硬件。 (2)软件:通过支持媒体表达的信息所构成的智力产品。计算机软件当然属于其中。 (3)流程性材料:将原料转化为某一特定状态的产品。如,流体、粒状、线状等,通过瓶装、袋装等或通过管道传输交付。 (4)服务:为满足客户需求的更为广泛的活动。 ISO9000系列标准的内容 2000版ISO9000系列标准的内容 ISO9000:2000质量管理体系基本原则和术语 ISO9001:2000质量管理体系——要求 ISO9004:2000质量管理体系——业绩改进指南 ISO19011:2000质量和环境审核指南 2000版ISO9000族标准的特点 新版ISO9000族标准对比现行的1994版而言,具有以下的特点。 1.面向所有组织,通用性强。新版ISO9000族标准适用于所有的产品类别、所有的行业和各种规模的组织,总之,新版标准面向所有组织,通用性很强,将成为适用范围最广的国际标准之一,表现在: (1)新版标准消除了1994版对硬件产品制造业的偏向性。 2000版标准巧妙地采用了“产品实现”、“动作控制”、“过程的测量和监控”和“产品的测量和监控”等词汇和要求,消除了行业的偏向性,对非制造业贯彻ISO9000族标准所带来的方便是不容置疑的。 (2).为特种行业制定行业附加要求奠定了共同的基础。有些行业确有其特殊性,2000版本标准允许在ISO9001基础上增加行业特殊要求的条款。这样既能使所有组织的质量体系基本要求具有一致性,又确保行业特殊要求的适用小性。已有软件.通讯.汽车.等行业都已用此方式制定各自的行业特殊要求。 (3)。‘‘允许裁剪“的规定使2000版ISO9001标准的适用范围扩大到1994版ISO9001/9002/9003/三个保证摸式的标准户群。三个保证没摸式的差异都在第7章产品实现过程中,2000版ISO9001,1.2允许对第7章要求中不影响满足顾客和法规要求,不及组织责任的标准条款进行裁剪,从扩大了ISO9001标准的适用范围,又获得”以一顶是三(三个质量保证摸式),减少标准数量的功效。 (4)。考虑了小型企业的适用性。2000版标准保留了大小企业都是必要的条款,有的还进行强化,对小型企业可能不太上适合的具体要求则进行弱化。使2000版ISO9001标准的通用性更强了。 2.确立八项原则,统一留念理念。 3.鼓励过程方法,操作性强。2000版标准的修订采用了过程摸式,提倡用过程方法来识别和建立体系。 4.强化关键:领导作用。 5.自我评价测量,突出改进。 6.关心各相关方,利益共享。 ISO9000系列标准原本是为制造硬件产品而制定的标准,不能直接用于软件制作。后来曾试图将ISO9001改写用于软件开发方面,但效果不佳。于是,以ISO9000系列标准的追加形式,另行制定出ISO90003标准。这样,ISO90003就成了用于“使ISO9001适用于软件开发、供应及维护”的“指南”。不过,在ISO90003的审议过程中,日本等国曾先后提出过不少意见。所以,在内容上与ISO9001已有相当不同。ISO90003(即GB/T19000.394),全称《质量管理和质量保证标准第三部分:在软件开发、供应和维护中的使用指南》。 制定与实施ISO9000系列标准 1)强调质量并非在产品检验中得到,而是形成于生产的全过程。ISO90003叙述了需方和供方应如何进行有组织的质量保证活动,才能得到较为满意的软件;规定了从双方签订开发合同到设计、实现以至维护整个软件生存期中应当实施的质量保证活动,但并没有规定具体的质量管理和质量检验方法和步骤。 ISO90003的核心思想是“将质量制作入产品之中”。其实道理是很明显的,软件在完成编码以后,不论花多大的力气用于测试,提高质量都是有限度的,更不必说需求规格说明存在的问题常常是测试无法发现的。事实上,软件产品的质量取决于软件生存周期。 2)为把握产品的质量,ISO9000要求“必须使影响产品质量的全部因素在生产全过程中始终处于受控状态”。为使软件产品达到质量要求,ISO90003要求软件开发机构建立质量保证体系。首先要求明确供需双方的职责,针对所有可能影响软件质量的各个因素都要采取有力措施,作出如何加强管理和控制的决定。对与质量有关的人员规定其职责和职权,使之责任落实到人,产品质量真正得到控制。 3)ISO9000标准要求证实:“企业具有持续提供符合要求产品的能力”。质量认证是取得这一证实的有效方法。产品质量若能达到标准提出的要求,由不依赖于供方和需方的第三方权威机构对生产厂家审查证实后出具合格证明。显然,如果这一认证工作是公正的、可靠的,其公证的结果应当是可以信赖的。正确实施产品质量认证制度自然会在促进产品质量提高,指导消费者选购产品,提高质量合格产品企业的声誉,以及节省社会检验大量费用等方面发挥积极作用。 生产企业为了达到质量标准,取得质量认证,必须多方面开展质量管理活动。其中,企业负责人的重视以及企业全体人员的积极参与是取得成功的关键。 4)ISO9000标准还强调“质量管理必须坚持进行质量改进”。贯彻ISO9000标准是企业加强质量管理、提高产品质量的过程,这个过程包含许多工作绝非轻而易举、一蹴而就所能奏效的。即使已经取得了质量认证也不能认为一劳永逸而放松质量管理。实际上认证通常以半年为有效期。取得认证之后尚需接受每年1~2次的定期检查,其目的在于促使企业坚持进 行质量改进。 软件管理论文:论软件生命周期的信息安全管理 1软件生命周期中信息安全管理控制 在各主流IT或信息安全评价体系中,都或多或少对软件生命周期中的信息安全控制进行了要求和规定,本文综合了流行的ISO27000,Cobit5,PCI-DSS等评价体系,结合国家信息安全标准,及审计咨询公司常用的SOX,SAS70等第三方评价标准,就如何设计与实施软件生命周期中信息安全的相关控制点归纳总结如下 1.1软件生命周期中信息安全的整体要求 (1)制定并正式的软件生命周期控制文件:明确说明开发过程的控制方法和人员的行为准则,并应充分考虑对信息安全方面的要求,确保开发出来的系统可以满足公司整体信息安全的需要、相关法律法规的信息安全要求,以及特殊部门或流程的信息安全需要。(2)软件生命周期中对信息安全的总体要求:虽然由于系统所对应企业、部门、业务或流程的差异,每个系统的安全要求有所不同,例如通常来讲,金融行业对安全的要求较高,金融行业里,涉及客户信息、财务信息的系统安全要求较高等等。每个企业、部门必须根据自己的流程评估风险,确定对数据完整性、安全性、可用性的要求,从而进一步确定信息安全要求。 1.2对环境的要求 (1)确保开发环境与实际运行环境物理相分离,开发环境应该由一系列足以支持开发工作且尽量与生产环境接近的设备搭建而成,所有的开发和测试工作均应该在此开发环境中进行。在实际工作中,也可以实行开发环境、测试环境及生产环境的分离控制,或开发环境、测试环境、用户验收测试环境及生产环境的分离控制。在上述环境中,开发环境可以相对较弱,以可以支持代码开发、进行模块测试及基本的集成测试为标准;测试环境,特别是用户验收测试的测试环境,则要求较高,应与实际环境保持一致或尽可能接近。(2)对开发环境(及测试环境)实施安全控制:例如未经授权的人员不得访问开发环境(测试环境),对开发(测试)中的软件实施严格的版本控制,开发(测试)环境的机器必须安装杀毒软件并及时更新病毒库,并及时对操作系统及相关应用软件进行补丁修正和升级。 1.3对人员的要求 (1)软件生命周期中的工作人员必须具有足够的专业胜任能力及职业道德素养,足以从事相关工作。(2)对开发人员和测试人员实施职责分离,开发人员未经授权不得访问或修改生产环境的程序或数据。1.4业务需求阶段在业务需求制定阶段,应注重对信息安全方面的需求制定。在业务需求书中,应明确对系统安全的详细要求,并在系统设计阶段开始之前,由各利益相关方(含信息安全的负责人)书面确认。业务需求阶段完成后,任何对系统安全需求的修改,也应视为对业务需求书的修改,需经过正式的系统变更流程。 1.5系统设计阶段 (1)对系统进行整体设计和详细设计,通过分析系统的数据流,包括数据录入、系统内部模块间的数据传输、信息存储、数据库访问及管理、系统间数据传输,、数据输出等,确保实现所有过程中对数据的全面保护,特别是对特定业务的特定数据进行保护,例如密码,客户信息,财务数据等,对重要数据的存储和传输设置权限和校验,并进行加密。(2)在软件的应用层面应至少包含如下的控制设计:i)输入检查:对系统的输入数据进行验证,比如设置强制输入完成才可进一步处理的字段;对输入数据的类型或范围进行检查,例如日期;对输入数据的长度进行检查,例如手机号码位数;对数据进行正确性校验,例如利用身份证校验码策略检查身份证号码,对比身份证号码与出生日期。ii)数据处理过程中的检查:对系统处理过程中的数据进行检查,比如在自动化转换或传输过程中,比对数据记录的总条数和数据总和;设置流程,提醒将系统数据与纸质数据进行比对验证。iii)输出检查:对输出结果的合理性进行系统检测,以及设置流程提示将系统输出数据与手工证据进行核对等。 1.6系统实施阶段 制定代码编写安全规范,要求开发人员参照规范编写代码;严格禁止不安全的实施方法,例如将用户名或密码编写在程序中,使用未经审核过的代码包,使用未授权的网络工具等。对源代码的访问和修改必须严格控制,例如通过配置管理工具进行代码访问及代码版本控制。 1.7系统测试阶段 (1)系统测试整体要求:对系统测试验收的控制方法和人员行为准则应进行书面规定,确保系统在开发期间直至验收需对软件、硬件、服务等元素进行一系列的测试,确保系统及数据的完整性和可用性。对源于生产环境的测试数据去敏感化,如客户身份证信息等,在传输过程中进行加密,并确保在测试后被完全清除。(2)测试通常应覆盖业务需求书中的所有要求,包括系统功能、软硬件性能、平台兼容性、系统容量、系统恢复等,也应特别保护对信息安全的测试,如防攻击测试、穿透性测试等。(3)用户接受测试:接收测试的测试人员应由非开发人员担当,且必须包含业务人员。测试范围应涉及系统所有的功能,包括数据库及操作系统。接收测试也应特别注意对系统安全方面的测试,例如审查关键代码,查找后门程序及穿透性测试等。(4)测试结果:测试结果需书面记载,与用户期望结果进行比对和确认。此记录及确认中需包含对信息安全方面的测试结果,确认测试结果符合系统设计及公司整体的信息安全需要,或已经授权采取了充分、恰当的补偿性措施。 1.8系统上线 (1)系统上线前需进行如下确认,信息安全评估已充分进行,安全方面的缺陷已被充分确认及记录,系统的性能和容量可以满足要求,所有与系统相关的补丁或更新已经实施,所有开发中遇到的问题已得到妥善解决,建立了充分恢复措施,测试数据已被擦除,服务水平协议已经建立,以及各利益相关者已经对系统上线做了批准等。(2)系统上线时需进行的操作:对初始数据迁移或输入的确认,对技术人员及用户进行培训,设置恰当的上线窗口期并对可能产生的业务中断进行准备,明确新旧系统交接程序,制定详细的系统交付清单,提供软件的使用指南,确保上线后对系统提供持续性支持(例如IT服务台)。另外,对旧系统信息,包括系统配置、操作手册、支持软件、系统数据等进行归档。(3)上线后审核:系统运行一段时间后对系统进行评估,评价系统对业务的满足情况,其中包含信息安全的符合情况、信息安全控制措施的运行效果和效率,发生的信息安全事故以及潜在的需要改进的信息安全措施。 1.9质量控制 在整个软件生命周期中实施质量控制以确保信息安全策略的有效实施,包括评价系统风险(例如与业务需求、技术、效果、成本、时间相关的风险),评估及定义系统的安全需求,且在整个软件生命周期的节点上进行检查,以确 保安全需求在开发的系统中进行了充分实施。 2结论 本文通过九个方面,就如何在软件开发生命周期中进行信息安全管理,提出了较为全面和系统的设计与实施办法,可以满足当前流行的绝大多数信息安全评价体系的要求,对企事业单位的信息安全和软件质量管理有一定的参考意义。 软件管理论文:对RBAC的权限管理软件的开发及应用 现在几乎每台个人电脑上都安装了浏览器,这导致了只要在一个局域网的范围内,如果不做权限限制,每台计算机都能轻易的访问Web项目,所以权限管理是Web应用项目中关键环节之一。如果不建立权限管理系统,任何“非法用户”都可以轻而易举通过浏览器访问到Web应用项目中的所有功能,这将对信息系统的安全造成威胁。因此,应用系统均需要相关的权限管理软件进行权限检测与管理,确保只有经过授权的用户才能正常合法的使用已授权的功能,同时禁止那些未经过授权的非法用户进入系统。 因此,开发一套具有通用性并能克服上述不足的权限管理软件来确保信息系统的信息安全是十分必要作。本文基于B/S架构,设计开发了一套权限管理软件。该软件用户体验性强,客户端无需下载控件,能同时支持多种数据库;实现了按一定的组织结构访问网页,确保信息系统安全。 1 软件设计 1.1软件整体设计 权限管理软件设计是基于角色的访问控制(Role-Based Access Control,简称RBAC)设计模型。RBAC是美国NIST于20世纪90年代初提出了一种基于角色的访问控制模型。其核心思想是:不是直接将用户和权限进行关联,而是引入“角色”概念,将代表行为的权限和角色相互关联,角色与用户相互关联,用户和权限通过角色而间接关联。 在软件具体设计中,首先通过系统的域验证来保证用户合法性;域验证通过后,从数据库中读取该用户具备哪种角色,然后根据用户的角色,来确定该用户可以访问的页面;最后将这些页面生成菜单,从而实现权限管理的功能。 1.2软件体系架构的设计 在软件体系架构设计中,采用分层式结构,添加了Model层,并将数据访问层做了一定程度上的扩展,具体软件体系架构图1所示。 表示层:是系统的展示部分,负责用户与整个系统的交互。表示层仅仅包含页面上控件的逻辑代码,只与界面上的元素有关,而与系统的业务逻辑无关。 业务逻辑层:是整个系统的核心。它与这个系统的业务逻辑相关。在权限管理软件中,业务逻辑层的相关设计主要涉及到页面、角色和菜单处理的业务逻辑。如果涉及到数据库的访问,则调用数据访问层。 数据访问层:其功能主要是负责数据库操作。该层包括DAL接口、DAL工厂、Oracle Dal、SqlServer Dal以及最后产生的Model层。该数据访问层中完全采用了“面向接口编程”的思想。抽象出来的IDAL模块,脱离了与具体数据库的依赖,从而使得整个数据访问层更加有利于数据库迁移。只需添加一个相应数据库版本的DAL并且实现IDAL接口即可连接到各种数据库。业务逻辑层和表现层不需要任何的改动,从而提高了代码的复用率。 实体层:该层主要将数据库中定义的表映射成程序可以访问的业务实体,并且只定义实体的属性,并无实体的行为。该层由数据访问层产生,贯串了业务管理层和表示层。权限管理系统主要涉及的实体有:用户类、页面类和角色类等。 1.3系统功能设计 权限管理软件主要包括四个模块:用户管理、页面管理、角色管理和菜单管理。具体功能架构图如图2所示。 图2 权限管理软件功能架构图 1.4系统数据库设计 数据库设计是软件开发过程中的基础环节。良好的数据库设计不但有利于提高系统的整体性能,而且也方便将来使用过程中的数据维护。权限管理软件数据库设计达到了第三范式(3NF),这种设计能够有效保证数据的完整性和参照完整性,同时降低数据的冗余度。 2 软件实现 该软件实现了与域无缝集成。用户登录后首先通过域验证来确保登录用户的合法性。这样既方便了用户,避免用户记住多个用户名和密码也保证了系统的安全性。 在权限管理系统中,利用了C#中DLLImport直接调用Windows已经存在的域验证功能。DllImport所在的名字空间是 using System.Runtime.InteropServices。 MSDN中对DllImportAttribute的解释是这样的:可将该属性应用于方法。DllImportAttribute 属性提供对从非托管 DLL 导出的函数进行调用所必需的信息。作为最低要求,必须提供包含入口点的 DLL 的名称。 3 软件应用 权限管理软件已应用在多个系统中,系统运行稳定,响应速度快,操作简单,功能健全,满足了用户的需求。权限管理软件的直接使用,在很大程度上节省了开发人员的时间和精力,提高了软件开发效率。随着信息化建设的步伐越来越大,B/S架构的系统的投用越来越多的投用,该软件的应用范围将越来越广阔。 软件管理论文:做管理项目就象用杀毒软件 一天到一家公司拜访一位老总,席间偶然谈起这家公司电脑中病毒泛滥,弄得许多电脑不敢使用。由于我一直对电脑技术颇有业余兴趣,就自告奋勇地提出要教他们杀毒。主人同意之后,我就开始在一台电脑上操作示范。我先用公司现有的杀毒软件进行查杀,杀掉了部分病毒。然后我又从互联网站上下载了若干软件,轮番查杀。有的软件只能防不能杀,有的软件一个病毒也查不出来,有的软件查出病毒却杀不了,有的软件杀不了几个病毒,却造成电脑出现种种异象,比如死机。尽管如此,这些杀毒软件还是功劳不小,杀掉了不少病毒,电脑可以正常使用了。然后我又对各个杀毒软件进行分别处理,留下了个别经证明能查杀病毒的软件,面对那些干不了活的甚至造成电脑死机的软件,试过就删了。还有几个病毒无论用哪个软件都杀不掉,最后我只好删掉有毒文件。 查杀病毒示范做完之后,我就和老总坐下来谈公司管理,老总就谈起以前也请过管理顾问来做诊断和治疗,可是那些项目做完之后,许多问题依然存在,弄得大家很失望,老总问我这是怎么回事。我顺手就把杀毒软件和管理项目做了比较,说明各个管理项目就象一个个杀毒软件,每一个项目至少只能解决管理中的一部分问题,不能指望引入一了一套管理项目,就可以一劳永逸地解决所有问题。不少人一开始对某些管理项目(比如ISO9000)抱有不切实际的幻想,指望它们能包医百病;一旦事实证明并不是那么回事,他们又对所有管理项目一概怀疑和排斥,觉得还是自己凭经验治理的好。 我就接触过一个老板,开始是不顾公司一片混乱,哭着喊着非要搞ISO9000不可,劝都劝不住。因为他觉得一搞ISO9000,一切都会好起来。后来刚开始搞ISO9000,他一听说ISO9000基本上不涉及财务,不能帮助他解决财务管理中的问题,大大出乎他的意料,立马就对ISO9000失去了兴趣。后来人们花了九牛二虎之力总算把这家管理混乱的公司的ISO9000做完了,而且通过了认证,这位老板却一点感谢没有;反而觉得公司里还有很多问题,ISO9000没做好,连费用都不想付,证书也不想拿,而在管理上却基本上回到了老路上去。 不少类似企业好不容易走上了"法治"轨道,略受挫折,就又一头扎回到"人治"的轨道,而且再也不肯回头,让人觉得真是可悲又可笑。文秘站版权所有 其实各个管理项目又岂止是不能解决所有问题?有的项目还根本不适合你和企业,至少是不适合现阶段下的你的企业,如果硬要导入,说不定会使你的企业"死机"呢! 有的管理项目,恐怕也只能"查",不能"杀";可以帮您诊断企业一些毛病,至于解决问题,对不起,恐怕您得另请高明。再者,现在人们推出的各种管理项目五花八门,即使您的企业把这些所有的项目都"做"了,也不可能解决您企业所有的问题,就象将现有的全部杀毒软件都用上,也有可能无法解决全部病毒一样。 您在企业实施的各种管理项目,还存在一个互相衔接、配套的问题,否则就会互相抵销或冲突。这也象各种杀毒软件一样,不能随便混用。有一次我在一台已经安装了某种杀毒软件的电脑上运行另一个杀毒软件,结果一运行就死机,三番五次,不知原因。后来我把电脑原先的杀毒软件卸载掉,新的杀毒软件才得以顺利运行。 最后,您的企业要做什么管理项目,需要一番认真调查,深入了解和系统思考,这一点可不象运行杀毒软件那样,可以不管三七二十一,拿过来试一下再说。 胡乱做一个管理项目,有时不仅无助于企业,还会有害于企业,使企业付出代价。至少,做一个无效的管理项目,即使无害,你也是要花一笔顾问费的。 总之,企业要导入某一个管理项目,一定要事先进行认真调查,深入了解和系统思考。要考虑以下因素: 1)这套管理项目是否确实适合于本企业? 2)这套管理项目用来解决哪些问题? 3)这套管理项目不能解决哪些问题? 4)这套管理项目与其他管理是否兼容、如何兼容? 5)对于通过管理项目实在解决不了的问题,您是否有决心和信心整个端掉染病的个人或群体? 如果您充分考虑了以上问题,我们认为您已经在实施管理项目之前有了充分的思想准备,实施项目的主观因素已经成熟了。 软件管理论文:软件技术在信息管理上的应用 1、计算机软件技术有利于培训信息管理的保存 很多企业在对员工进行多次的培训之后,大量的培训信息管理工作有所流失。而利用计算机软件技术进行培训信息的保存,有助于企业建立相关的人才培训信息,及时保存数据对相应的信息进行存底和保留。这样既方便日后培训档案的查找,节省时间节省人力资源,以及查找到的相关数据准确较高。以上皆是当今人力资源开发的关键,能否掌握住大量的人才信息和人才资料成为企业培训的重要内容。企业在对员工进行培训后,应该及时保存其培训资料,并及时建立相关的培训基础资料,方便以后考核的参考。企业更应该完善管理,充分利用计算机软件技术,做好人员资料的管理工作。 2、利用计算机软件技术进行培训信息管理的相关内容 2.1信息系统的采集输入。信息的输入工作重点是培训信息的联网输入。其信息的输入包括对基本的信息和培训信息的输入。培训信息地的输入是该人员的工号、培训的单位,以及何时参加该培训,以及培训结束的时间,另外培训的内容是什么,培训的考核成绩,证书的编号是什么等相关的内容。这些相应的内容是通过网络传给相关的服务器,或者拷贝到相应的信息系统中去,由具体经办人员根据个人的相关培训信息的整合之后,并利用相关的计算机软件技术进行输入操作工作。基本信息输入工作包括各自的姓名、性别、工号、籍贯、身份证号码,出生年月等一系列的基本信息。工作的基本信息,比如说工号、职务、编制、岗位名称、岗位性质、在聘情况。其中还包括本人的学历情况及获奖的情况,即毕业学校、毕业专业、学历情况以及荣誉名称、获取日期等。 2.2培训信息管理系统的主要功能。方便查询。培训信息系统的建立和完善,是企业方便查询员工基本情况的便利途径。通过该系统的检索查询,能快速为需要的人员提供相应的查询资料。能否及时准确地查询到相关的培训信息,是大大降低信息成本提供工作效益的关键所在。信息库的保护。信息海量化的同时,各种电脑病毒以各种形式存在于信息中,是信息库安全维护的一大隐患。如果病毒乘虚而入,将会对信息库造成信息泄露,数据丢失系统崩溃等严重后果。对相关重要信息的保护需要采用最新的防毒软件,并对相关信息进行独立备份和保存。采取行之有效的保护手段,建立安全、完善的员工培训信息库管理体系。管理设置的权限。通过利用加密的技术,根据相关人员的职务设置不同的访问权限。专门的系统管理人员对培训信息管理和更新,允许对某一模块的修改和设置权限。对于信息录入人员、查询管理工作的人员、信息修改人员分别进行规范的管理,以便保证系统信息的安全性和完整性。打印功能的丰富。对于已经录入的培训信息,根据需要可以打印一个人的全部资料,也可以根据需要任性一部分人的信息打印,再或者需要的情况打印一段时间的资料信息等。丰富的打印功能,能快速满足企业对人员信息资料的需要。 3、重视计算机软件技术在信息管理中的应用 计算机技术的快速发展,信息化时代已成为不可阻挡的趋势,计算机软件的应用更是与人们的工作息息相关。尤其是企业的信息管理更是需要用到计算机软件技术,由于管理人员的更替,容易造成档案流失,自从计算机技术融入到信息管理中,从最大程度解决了人力、物力的管理缺失问题。,在企业及各个领域发挥着越来越重要的作用,也是信息管理工作效率显着提升。 3.1计算机软件技术的应用方便保存和浏览。企业通过利用计算机软件技术进行培训信息管理,方便了繁琐信息的管理,也便于长久的保存员工的培训情况。同时,计算机软件技术的准确性、统一输入和规则,使企业的管理者在浏览信息时更快捷更全面。这样可以避开繁杂的查询,可以杜绝信息不全的缺点,能够有效及时地找出企业所需要的人才,企业领导的思路也理顺。 3.2培训企业相关的人才。如何有效推进计算机软件技术在信息管理中的应用,需要企业重视培训和引进相关计算机软件系统工作,营造积极向上的人才机制。对于员工培训信息及取得的成绩需要有所了解才能充分使用人才,员工的相关培训资料信息企业要及时储备完善。亦可让人才引入人才带动的方式,加强员工的计算机软件技术培训,从而能够使企业的计算机软件技术迅速发展。 3.3计算机软件技术进行培训信息管理的实现与设计。为使培训管理工作更加系统化、自动化和科学化,应系统的开发和使用计算机软件技术。企业现代化管理需要采用计算机技术来规范人才管理,加强对企业人才的培训是行之有效的方法之一。企业也可自行的研发适合自身发展的计算机软件系统,这一举措既能体现企业自身的魅力,又能为企业的大力培养软件开发的人才。同时,也为企业的开发经费节约了一笔钱,还能做到企业人员培训学以致用的好出。 4、小结 伴随计算机软件技术的不断升级和更新,企业借助计算机软件技术的运用范围也越来越宽广。而企业顺应时代的发展要求是利用计算机软件技术进行培训信息管理,重视人员的相关技术培训,充分利用计算机软件技术体系,建立相关的技术体系,完善计算机软件技术在企业的操作运用。计算机软件技术的利用将会为企业的远久发展创造强大的动力,提高企业运行的效率,改善企业发展中不足的方方面面。企业充分运用计算机软件技术系统,对培训人员的资料进行保存和建立数据库管理,有利于企业的进一步系统化操作。而员工基本信息库以及培训信息库将会作为系统开发的核心所在。 软件管理论文:项目管理理论中关于软件项目外包采购管理的探讨 摘要:本文分析了目前软件外包采购管理的重要意义和目前的形势,提出基于“双赢”策略的软件外包采购思想。在项目管理理论、CMM和ISO9000的基础上,提出和细化了软件项目外包采购管理的总体框架和具体操作内容。旨在通过对软件外包项目采购的选择购买、跟踪与控制、评估验收和项目后处理等过程的研究,来提高软件外包采购的项目管理水平,满足承包方对分承制方产品在质量、进度和成本等方面的要求和对外包过程的有效控制,为软件项目外包采购管理人员提供具体的操作过程。 一、基本概念和背景 项目管理理论是一门综合多门学科的新兴研究领域,共有九大知识领域,包括项目集成管理、项目范围管理、项目时间管理、项目费用管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理。项目采购管理是指需要从执行组织以外获得货物和服务的过程。通常把货物和服务称为产品,把买方称为业主或对应分承制方的总承包商,而卖方称为承包商、厂商或供应商。项目采购管理一般包括以下主要过程:采购计划编制,询价计划编制,询价,承包商选择,合同管理,合同收尾[ 1 ].对于软件产品,一般采购可以分为两大类,一类是对已经在市场流通的软件产品进行采购。例如,某企业想做信息化建设项目,涉及到数据库,那么它就可以在目前市面流行通用的几种厂家和种类的数据库中选择。例如Oracle公司的Oracle数据库,Microsoft公司的SQL Sever,IBM公司的DB2数据库等等。然后根据自己的需求,通过询价、签合同、安装培训等过程来购买此类产品。这种采购过程基本已经形成几套通用的解决方案,比较简单,中国企业在处理这类产品的采购时,大部分都处理的较好。个别的企业由于需求分析不清晰,培训工作不到位等原因,也会产生购买的产品不适用,或不会用的情况。另外一类软件产品采购的形式是外包采购。它是指在市场上没有出现现成的产品或者没有适合自己企业需求的产品的情况下,需要以定制的方式把项目(功能模块)承包给其他企业。例如某企业需要实施企业资源计划项目(ERP),虽然可以购买BAAN软件,但是基于本企业业务流程的管理软件必须定制,对于各个原有孤立岛的集成软件,无法购买现成的产品,必须自己开发或外包给别的公司。 二、软件项目外包采购管理的意义 许多大型复杂工程项目的实施需要业主、总承包商、分承制商、供应商和开发制造商等共同合作来完成。因此在任何甲方和乙方之间必不可少的涉及到部分子项目(功能模块)的采购活动。目前社会中,企业的信息化、网络化建设正在世界范围内展开。谁先进行信息化改造,谁就早日适应社会发展的要求,获得巨额利润。大规模的企业信息化建设形成了庞大的软件产品市场,促进了软件业的发展。许多项目庞大复杂、高风险并且涉及高科技信息领域,在客观上使企业需要采购和外包许多产品,包括软件产品。主观上,在经济全球一体化形式下,这种外包采购作为采购活动的一种特殊的、更为复杂的形式,在企业中更为普遍存在。企业为了在日益竞争的社会环境中增强自身的核心竞争力,需要根据企业的特点,专门从事某一个领域或几个领域的业务,在某个业务领域内形成自己的核心业务,把企业内部的智能和资源集中在那些有核心竞争优势的活动上;把一些非自己擅长的业务领域的子项目和功能模块外包给有实力和优势的公司,才有利于加快项目的完工进度,降低风险,优化资源配制,保证项目质量,降低成本,创造更高的价值。 以电信行业为例,爱立信公司2000年底宣布把手机生产的绝大部分业务外包给新加坡的Flextronics公司,专注于移动通信网络设备业务。原因是爱立信的移动通信网络设备的销售占爱立信公司销售额的54%,利润达90%以上,占有全球的移动通信市场分额高达30%,而手机生产的投资回报率很底,甚至出现亏损情况。对于爱立信而言,手机生产“外包”是在信息化时代的战略调整,希望通过外包生产,调整投资结构,使手机降低成本并且尽快盈利,集中精力稳定和拓展电信业的新市场。出于同样目的,美国的摩托罗拉公司也表示将外包部分地区的手机生产业务。作为手机市场份额最大的诺基亚,在专注于手机生产业务的同时,大力开发周边产业。希望以手机业务带动相关产业的发展。从三大公司的投资趋势,可以看出,“外包”作为一种先进的国际专业化的生产方式正被一些大公司越来越多的采用。我国正处在信息化建设的高速发展阶段,必然会有越来越多的企业由于自身的能力限制或业务发展的战略选择,将采取业务“外包”的生产方式。 就软件项目外包采购的市场来说,2000年是企业信息化实施的第一年,国内企业,特别是大型企业的信息化项目开始运作。行业信息化改造重点将由原来的电信、金融、海关等行业转向交通、制造、医疗等传统行业。这些行业由于自身计算机技术水平和业务发展重点的原因,将会把大量的软件项目外包给软件公司。根据CCID的统计(软件可以分成平台软件、中间软件和应用软件),2000年中国软件市场中应用软件的销售额为147亿元,占软件总市场份额的63.9%.预计到2005年,计算机信息服务和软件市场销售额增长到1750亿元。届时我国软件项目“外包”市场潜力可想而知。 三、软件外包采购管理存在的问题 虽然在传统行业,许多工程项目的采购活动,例如机械工程项目或建筑工程项目等等已经形成比较成熟的管理体制和标准。但是软件项目的外包管理工作并不象其他行业那样顺利。 软件工程项目管理引起广泛注意源于20世纪70年代中期,当时发现70%的项目是因为管理不善而引起。20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。商用软件通常只有9%(中小型软件公司有16%)的软件项目能够及时交付且费用并不超支。 这里有多方面的原因:软件产品作为一种特殊商品形式,具有高度不可测量性和高度柔性;软件企业开发能力还不太成熟,软件开发大多数还处于手工作坊方式,软件研发企业有其自身的运做方式,人为因素比重大,不好量化管理。由于不确定因素太多,许多软件开发企业对于自己的项目都难以精确控制进度、质量、资源和成本,那么对于业主来说,想对外部企业(例如分承制商)保持良好控制力的难度就更大了。再加上具有技术优势的软件开发商一般集中在几个科技发达的大城市,与业主的距离远,相互的交流不方便,因此许多软件采购项目的实际应用效果都差强人意:不适用,进度超期,性能达不到标准,成本太高等等情况时有发生。 软件项目外包采购的成功与失败不仅仅影响到当前软件项目的质量、成本和工作进度,而且关系到企业信息化建设整个项目的整体结构、性能以及进度,意义重大。特别是当软件项目作为整体项目计划关键路径的一个环节,软件项目采购的进度直接影响整体项目的进度,并且总成本将成指数级增加。由于软件采购的情况特别复杂,涉及的学科领域不仅是科学技术上的,还有商业上的和观念上的,软件项目外包采购管理水平的高低,将直接关系到企业整个信息化建设进程。因此软件项目采购管理作为项目管理理论中一个新的研究课题,有必要给予足够的重视。 四、目前软件外包采购管理情况 美国项目管理协会的“项目管理知识体系指南”(PMBOK)[1]、美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(CMM)[2,3]和国际标准ISO9000-3[4]中虽然对外包采购管理的流程有过论述,但是他们指出的只是外包采购管理的一般原则;虽然人们可以结合自身企业特点实施标准,具有一定灵活性,但是事物的另一对立面就是操作过程不具体。这给软件产品的外包采购管理者带来具体操作上的困惑。另外PMBOK体系原则上是应用在各个行业的,缺乏针对软件领域的特点做专门的论述。ISO 9000-3系列和CMM虽然是针对软件领域的标准,但是ISO 9000-3的最大的特点是只告诉你要按规定做,不强调效果和后续改善,不强调经验积累和后评估。从这个意义上讲ISO9000注重水平的评估,不太强调提高企业成长的过程,因此对于提高企业的管理水平意义不大;CMM虽然旨在强调企业的过程能力的持续改进,但是它重点强调软件的开发过程管理和产品管理,缺乏软件的分发、转交和服务等方面的管理标准,所以也有一定的局限性。 五、基于“双赢”策略的软件外包采购思想 本文作者在集成美国项目管理协会的“项目管理知识体系指南”(PMBOK)和美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(SW- CMM,SA-CMM)和ISO9000-3中关于外包采购的宗旨的基础上提出“双赢”策略的软件外包采购思想。 “双赢”策略的软件外包采购思想旨在利用双方业务能力互补,通过共同合作完成软件外包项目,达到“双赢”的目的,促进双方业务总体能力的提高。这种“双赢”策略要求双方在以下方面达成共识:双方共同关注过程控制,才能保证有效结果;只能成功,不能指望依靠惩罚手段来收回采购成本,软件外包采购项目的失败对整个项目带来的损失是巨大的;在合作过程中,建立对分承制商关系的管理体系,作为以后合作的基础;重视开发过程的风险评估和采购项目后评估,使得双方业务能力得到持续提高。 传统的外包采购中,采购方只关心分承制商产品的进度和质量,以为只要分承制商按期、按质交货,就可以圆满结束此次采购活动。有些项目尽管前期进度和质量满足合同要求,但是许多是以高投入、高负荷、高消耗等手段来保证的,这给后期带来极高的风险。在阶段评审中,如果采购方对分承制商开发过程中的费用投入、人员负荷、资源消耗、组织结构变化等漠不关心,因此就不能及早预见风险、控制风险。很难想象,后期在费用透支、人员疲惫或流失严重的情况下,分承制商仍能保证产品质量和进度。这种情况下,采购方只能要么加大投入,要么终止合同,并要求赔偿,要么延期验收等等。其副作用可想而知。而分承制商为了减少损失,根据博弈论中子博弈精练纳什均衡原理,必然采取降低质量要求,减少投入的策略,来加快进度。结果最终还是采购方遭受损失。 六、软件项目外包采购管理过程 为了保证软件外包采购项目的顺利进行,本文作者在上诉理论体系和“双赢”采购策略的基础上,提出和细化了软件项目外包采购的总体框架和具体操作内容,旨在为软件项目外包采购管理人员提供具体的可操作过程。 对于本采购过程,如果业主方由于行业、人员等原因,没有健全的监控部门,可以聘请具有软件监理职责的公司,或者总承包给具有一定软件工程监控能力的公司。这时的总承包公司角色相当于本文提到的采购部。 软件项目的整个外包采购过程可以分为十个工作阶段,包括总体项目需求分析和设计、子项目的需求分析、厂商选择、分承制商开发、业主阶段评估、交验测试、安装、培训、维护,后评价。 在开始外包采购之前,首先业主要完成项目的总体需求规格说明书和承包项目的需求说明书。一般承包项目的需求分用户需求和分配需求。对于分承包商来说,业主对软件项目所提出的需求通称“用户需求”。对于业主来说,系统总体分配给软件的系统需求通称“分配需求”。如何作好子项目的需求分析和管理,请参阅《软件需求》,详见参考文献5.然后业主把需求说明书交给采购组组织采购。采购部门收到需求说明书后,再补充质询调查表、报价指南、综合条款及条件等文件,组成采购质询技术文件发往厂商进行质询。采购部门在厂商质询的基础上,准备了厂商选择和投标估价等技术文件后,向业主送审,提请业主批准和确认所选厂商。在厂商选择和投标估价这两个文件中,采购部根据拟采购的软件对被质询的至少三家以上的供应厂商,就技术开发成熟能力、资源(包括以有的产品、硬件、软件、信息和已经过的培训)、资格和信誉、过去的合作关系、价格、提供的售后服务(包括培训和维护)、分承制方组织配置结构、与质询要求的差异等方面,经过经济技术和商业战略角度出发进行全面评估,经过其他各部门(例如系统工程组、软件工程组、质保组、财务组)审核后,列出供应厂商的优劣次序,择其优者为该项目的供应厂商。采购部一般以月为单位向业主通报软件采购情况。一般以招投标方式或内部评审的方式来确定分承制商。 分承制商在接到采购部的定货以后,就可以进行工作说明书、用户需求说明书、软件需求规格说明书、软件开发详细计划和成本概预算、测试计划、质量控制方法、风险控制、拟采用的软件工程标准和软件生命周期等文档的制作。然后分承制商把有关的技术资料文件通过业主的采购部送给业主进行校核和批准,然后才能开始开发。 业主在接到分承制商的上述材料后,组织系统工程部、软件工程部、质保部、财务部、采购部、法律部就上述材料中的开发项目视图和需求范围、使用或需要购买的软硬件、进度计划和成本、测试计划与案例、使用的技术和工程标准、人员配置等进行评审,并出具评审文件和风险评估、控制建议书。并由采购部制定采购项目监督评估计划书。合格后,由采购部、质保部及法律人员与分承制商签署详细的软件采购子合同。如需要对软件项目投保,以此来降低风险,需要和分承制商协商后,纳入合同文件。 分承制商在签署合同后可以进行设计和开发。业主应该委派采购部监督分承制商的工作。采购部应该有计划的组织质保部、软件工程部的项目计划管理人员和配置管理人员,定期对分承制商的开发活动进度、质量、成本等进行评估,并形成评估建议书。送审业主方的系统工程部、项目管理人员、分承制商的此项目的负责人。分承制方的项目负责人要对评估建议书的建议进行书面回复,并确保实施。 分承制方对所有需要采购的资源(软件、硬件、人力资源等)负责进行检验;采购部有权在任何时候对分承制商所采购的资源进行验证,使之符合所采用的规格说明书、规范、标准和其他技术文件所规定的要求,确保分承制商专款专用,建立开发环境。在这个阶段之前,采购部门和分承制商首先要确定由分承制商提供的验证建议书,并作好准备工作,提交检验用的技术文件,包括厂商说明书、设备性能数据表、配制清单、试验程序、检验技术要求。在检验的物质条件和技术条件均已准备妥善后,分承包商就可以向采购部并通过采购部向业主提出书面检验申请。一般分承包商可以提前三周通知采购部,由采购部提前两周以书面形式向业主提出检验申请,由业主召集系统工程部、软件工程部、质保部组成验证组,在规定的时间、地点检验。通过检验后,分承包商进入项目开发阶段;业主进入监控和评估阶段。对于重大关键项目,业主可以派遣项目监督员短期或长期进驻分承包商单位。 由于作为外部单位,业主不便时刻监督项目的开发过程。虽然理论上需要把分承制商看作是自己的一个项目部门来对待,纳入自己的进度控制和质量控制体系,但是客观上由于分承制商与业主距离较远,人员不熟悉,各自有自己的企业文化和管理体制,双方之间的信息沟通不畅,业主难以实时监督分承制商的开发进程和质量。最好的办法就是在分承制商的软件项目的各个里程碑处和分承制商一起进行检查和评估。软件项目一般可以划分成若干个里程碑(3-5个为益),分承制商需要提前一周通知采购部组织相关人员来评估。软件项目的里程碑一般指产品设计趋于稳定,中间产品定义趋于明晰,项目开发组真正了解项目实际的关键技术难度和可行的进度计划,开发活动停止,产品进入除错和稳定、随时可以的阶段,或当产品设计被删减、资源增加、进度延误的时候。在评估软件质量、进度和功能的同时,还要评估分承制商的人员工作负荷程度、风险、费用和资源消耗情况,并形成文档。由采购部送审系统工程部、软件工程部、项目管理部和分承制商的此项目负责人。 当产品进入交验测试的时候,分承制商需要提前三周通知采购部,采购部于前两周通知业主作好交验的组织评估准备工作。这时业主组织系统工程部、软件工程部、测试部、质保部和采购部,根据分承制商和业主在分承制商开发阶段预先共同定义、评审并批准的测试计划和验收方案进行验收测试,对需求规格说明书中的各项逐个详细的测试。最后以书面的形式给出对整个软件项目的测试评估报告。并对未通过验收测试的软件产品指定相应的补救措施和计划。分承制商交付给业主方的软件产品应当包括:源代码、软件开发计划、仿真环境、软件需求规格说明书、设计文档、软件测试计划、软件测试说明、验收测试计划、软件使用手册、软件安装手册、软件维护手册。必要的话,还包括相关培训计划。 软件采购的一个重要阶段是交货,也是目前经常忽略的阶段。当所采购的软件产品以及硬件运行环境在规定的时间到达采购部时候,采购部要以书面的形式通知业主交货。业主对所交的整个软件产品清单进行验收,并事先通知采购部拆箱日期,要采购部和分承包商的代表按时到场。业主要在接到采购部交货通知后一个月内,对所检查验收的整个软件产品(包括相关的软件、硬件及其附属产品、文档、技术资料等子合同中规定的产品)出具一份交货证明,如果这些提交的软件产品没有受到损坏并与装箱清单相一致,并在业主方环境运行良好;否则出具一份书面通知,说明在某个方面此产品损坏或与装箱单不符,或在业主方提供的环境运行不良。此通知或证明应由采购部和分承制商代表签署。如果在签合同的时候,就规定分承制商负责安装和调试,则相应的过程省略。 最后业主方由采购部把所有的文档归类封存,以备后续类似项目采购的参考查询。同时采购部在两个月之内以书面形式,对分承制商的技术开发成熟能力、资源(包括以有的产品、硬件、软件、人力资源和已经过的培训)、信誉、分承制方组织配置结构,管理能力和企业文化提交后评价报告,作为建立客户关系管理(CRM)的依据。对于此次采购的经验和教训,包括进度控制、质量控制、成本控制、客户关系控制、流程控制、风险控制等方面,采购部以文档的形式在组内讨论并保存。 七、结束语: 作为大型工程项目中的软件子项目或者部分功能模块的采购(外包),由于软件开发的固有特性(风险大,柔性强,人为因素突出,结果不宜测量等),使软件项目的外包采购管理变得十分复杂。如何控制分承制商的开发进度和质量等关键因素,需要在实践中不断探索,并针对具体公司和项目对采购过程有所裁剪。 软件管理论文:关于软件项目管理的控制研究 论文摘要:本文针对软件开发中的进度延期、费用超标、质量低下等问题,探讨了如何利用项目管理中的相关控制方法进行软件开发过程控制。、论文在阐述软件项目管理内容的基础上,针对软件项目的三要素分别进行了探讨:进度控制、费用控制和质量控制,提出了几种有效的软件项目管理控制方法。这些研究对于加强我国软件项目管理控制过程,降低开发成本,减少开发风险具有重要的意义。 论文关键词:项目管理 进度控制 费用控制 质量控制 软件开发 人类社会经历了三次经济革命从农业革命、工业革命到目前正在经历的信息革命。信息化正在日益改变人们的思维方式和生活习惯。在推动信息化过程中,计算机及其软件产品发挥着至关重要的作用。对于软件项目的管理成为项目管理领域一个令人兴奋的课题。本文将结合项目管理中的控制方法分析软件项目管理控制的相关问题.以期提高软件项目的开发效率。 1、关于软件项目管理 1.1项目与项目管理 项目是一个旨在完成一个或一些独特产品或服务的过程.它有着一系列被详细描述的属性。由于项目的独特性和一次性特征,引伸出它的其他特点.如目标的确定性.成果的不可挽回性组织的临时性和开发性等。基于项flI的这些特点.项目运作更加注重项目决策前的计划以及对实施过程的控制,以减少项目运作的风险。项目管理是2O世纪50年代后期发展起来的一种计划管理方法,它运用先进科学的管理方式.有效解决大型组织的效率低下和小型企业面临的风险增加问题以组织的机动灵活.面向客户和资源利用率高而被广泛应用。在工程设计.施工软件项目的开发、实麓中经常会遇到进度拖延.费用超支、质量不达要求等问题除去极少数是因为技术原因造成,绝大部分是源于僵化的管理和不当的管理方式。 1.2软件项目管理 各软件企业都在积极将软件项目管理引入开发活动中.对开发实行有效的管理。从概念上讲.软件项目管理是为了使软件项目能够按照预定的成本.进度、质量顺利完成.而对成本、人员、进度、质量、风险等进行分析和管理的活动。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理.专业分工也可以降低对开发人员的要求,从而降低产品研发成本。 2、软件项目控制 2.1软件项目控制 软件项目跟踪和监控包括对照已文档化的估计、约定和计划评审和跟踪软件完成情况和结果。基于实际的完成情况和结果调整这些计划。软件项目的已文档化的计划(即软件开发计划,正如在软件项目计划关键过程区域中所描述的)用作跟踪软件活动传送状态和修订计划的基础管理者监控软件活动.主要通过在所选出的软件工作产品完成时和在所选择的里程碑处,将实际的软件规模工作量成本和时间表与计划相比较,来确定进展情况。当确定未实现软件项目计划时,采取纠正措施。这些措施可以包括修订软件开发计划以反映实际的完成情况和重新计划遗留的工作或者采取改进性能的措施。 2.2软件项目控制的内容 软件项目控制的目的是为软件项目的过程提供足够的能见度,从而可以在执行过程中发生对计划的严重偏离时能够采取适当的更正行为。软件项目控制包括:a。追踪软件项目的进展于表现从而与所作的估计、承诺和计划做出对比:b。追踪软件项目的风险;C。在发生对计划的严重偏离时采取适当的更正行为。 2.3软件项目控制步骤 由于软件开发是处在一个开放的动态系统中,开发环境的不断变化要求不断修改项目计划,以适应新的变化。此外项目经理及其组织在完成任务的过程中不可避免的要碰到这样或那样的问题.解决这些新的矛盾和问题均属项目控制的范畴项目的预算和进度计划只能为项目经理提供决策的依据.如果在项目实施过程中控制不住.很难在限定的时间和预算要求下实现项目管理工作的目标。因此软件项目控制的过程包括以下四个步骤:a、预测什么会发生——要做出开发计划并建立工作标准b、查明什么正在发生——用建立的工作标准检查当前的工作;c、正在(或已经)发生的实事同预测的结果进行比较——分析误差产生的原因:d及时采取补救措施.以满足项目目标,预算和进度的要求。 3、软件项目控制具体操作 3.1软件项目进度控制 为了确保软件开发中的各项工作能按照计划预定的日程顺利完成.对项目的进度要进行控制。进度控制的过程是.在项目实施过程中,不断地进行实际进度值与计划值的比较、发现偏差、检查分析其产生的原因,并采取相应的措施加以解决。 3.1.1进度控制流程 (1)进度控制的输入 进度计划。项目进度基准是项目测量和报告的基础和标准。 实施报告。实施报告提供了有关项目进度发展实情。报告未来可能发生的进度问题。 变更要求。项目变更要有严格的申请和审批手续。 进度管理的技术和工具。 (2)进度管理的技术和工具 进度控制变更系统。为有效实现进度管理与控制.进度控制系统应设立实现重新计划的全部功能。包括:文件设立.跟踪即实施报告.变更评估等。 实施情况测量。项目进度控制系统中的一个重要组成部分是决定对迟发生的进度偏差是否采取纠偏措施。而实施情况报告提供了决策的主要信息。如变更分析.趋势分析.已实现价值分析等。 纠偏计划。很少有项目能完全按计划进度进行为实现项目进度或总进度要求,在项目实施过程中.需要不断对原计划进行调整或增加新的工作内容。为此.需要不断对实施的项目进行活动时间预测。修改活动过程.替代进度方案分析。 项目管理软件。它的作用是跟踪项目按计划日期展开实际工作的情况.对照进度计划分析进度现状,找出进度的偏差.分析进度偏差对项目的影响.预测未来走势 (3)项目进度控制的输出 进度更新。包括对项目管理中任何进度信息的修改。进度调整是其中的一种.师队员进度计划中活动开始和结束时间的改变。纠偏行动。通过改变资源投入将实际进度拉回到计划的行动过程。 从中获得的教训。有关进度偏差产生的原因。纠偏方案的评估与选择以及其他方面的感受和教训都应纪录在案成为日后有用的历史资料。 3.1.2进度控制方法 一般项目进度控制采用因果分析.分析用四步完成: (1)明确问题。实际完成情况与项目里程碑相对照.确定是否超期.超期的部分是在哪里。 (2)查找产生该问题的原因。位从系统角度充分认识各方原因.应组织具有代表性任务人员并采用头脑风暴法进行。项目主管要通过他领导的办公室或小组,以及在各职能部门的人共同分析问题产生原因。 (3)确定个原因对问题产生的影响程度。对影响程度的评估可以采用专家小组打分的方法,事先确定权数.而后打分得出分析结果。 (4)画出带箭头的鱼刺图。分析出原因后各部门各就其职针对问题提出解决方案.并实施。 3.1.3软件项目进度控制具体措施 在实施进度计划过程中,会有种种故障:客户的需求进行了补充或修改;工作量估算不准,造成进度不平衡或是有人不遵从开发规范.导致产品出现缺陷;或是技术环节出现故障,这些问题往往是在进度计划外出现的.一旦出现这些问题,项目进度不得不进行调整。开发过程中为了有效控制类似问题,可以采用以下辅助措施,控制进度按计划执行: (1)政策性措施。对于不遵从开发规范,人员不按时履行职责的.给予经济或是职务上的处罚.这种措施应是建立在分配任务之前; (2)人员安排。在各子项目接口处适当安排机动人员与机动时间。这一措施有赖于项目组织的机构设置能动性好。此处比较难解决的是人员业绩评估.奖励问题。 (3)技术措施,要想很好地执行进度计划,需要事先有统一的规范例如开发语言的统一,文档的归类。这样便于下一阶段人员理解上一阶段人员意图,交流更加容易。 (4)信息流措施。该措施要求建立一个信息流系统.准时汇报项目进度.便于主控人员调整进度,并且保证信息流通顺畅。避免开发期压到最后造成严重拖工。 (5)资金措施。财务部门可以定期检查各部门财务情况.控制资金流出时间.进而控制项目进度。这与后面要讲到的三者权衡有密切关系。 3.2软件项目费用控制 费用控制就是要保证各项工作要在他们各自的预算范围内进行。其基础是实现就对项目进行费用预算。整个项目费用应包括项目范围规划阶段。软件需求分析阶段.原型设计阶段开发阶段.测试阶段和项目投入使用后的使用阶段所消耗费用的总和。软件开发项目承担公司为了完成项目目标和获得更多的利润.在实施项目过程中就要控制成本.在控制过程中,首先要拟定一个标准.即计划值.然后进行实际至于计划值的比较,确定实际值与计划标准的偏差大小.以便在此基础上采取各种措施纠正偏差.常用的分析工具是偏差分析。 偏差是指实际成本对相应计划的偏离,成本偏差的数学公式为: CV=BCWP-ACWP(负数CV表明出现超支;反之,则节资)(3—1) 其中:CV为成本偏差,BCWP为计划工作预算,ACWP为完成工作实际成本。 在进行成本偏离计划程度分析时,常用计划偏差率反应时给予计划的偏离程度。 CVP=CV/BCWP(3-2) 其中CVP为成本偏差率。 偏差值是控制分析中的一个关键参数,因而应向各级组织汇报。对于不同的项目或同一项目不同阶段或不同管理层次,对偏差的控制程度不一样,制定偏差允许值的方法也不同。由于随着时间的推移风险减少了,因而偏差允许也可降低。 3.3软件项目质量控制 对于软件产品的项目质量控制应是事前有预控,过程有监控的主动控制闭环系统。(1)事前预控:根据影响质量因素多等特点.软件项目质量必须事前预控,及根据软件的类型和特点,以及以往类似项目的常发病和预防措施,对软件项目质量提出事前预控措施,包括制定控制的计划和程序,这是项目质量控制的前提。(2)过程监控:根据易产生质量波动和易产生系统因素变异等特点,软件项目质量必须过程监控.即按照预控的计划和程序,对工序、分项、单元的全过程进行过程监控.包括监测、检查、控制和评定.这是项目质量控制的基础。 4、结语 软件开发项目在进度、费用和质量三方面均需要进行控制,因此还存在三因素的权衡问题。实践中.需要在三方面均进行行之有效的控制措施才能确保项目完成情况与计划最大限度的接近。本文提供了一些方法借鉴.对软件开发项目控制有一定的实际意义。 软件管理论文:浅谈软件项目实训中的人员选择与管理 论文关键词 软件高职 项目实训 人员选择 人员管理 论文摘要 项目实训是软件高职教育课程体系中的重要环节。结合软件高职项目实训中人员管理的实际情况进行分析和论证,同时给出实训人员选择与管理工作的基本原则和方法,并总结其中的一些基本经验。 随着国家大力发展职业教育的政策的出台,职业教育在全国范围逐渐兴起,软件高职教育作为职业教育的一个重要组成部分,为国家和地方培养了大量的具有较强动手能力的一线人才,创造出巨大的生产力,带动整个IT行业的发展,推动经济和社会的进步。项目实训作为软件高职教育课程体系中的一个重要环节,无论是对学生理论知识的拓展还是动手能力的培养都起到至关重要的作用。目前,福建省的软件高职项目实训还处于初级发展阶段,无论在项目设置上还是在管理方式上都存在不足。笔者结合实际教学和管理经验,对软件高职实训中的人员管理方式和方法做初步的分析和探讨。 1 人员的选择 教育的宗旨是以学生为本,平等地对待每一位学生,让他们在最大程度上发挥潜力。但是实训工作毕竟带有一种企业模拟性质,学校注重教育公平,而企业更关注开发效率和项目成本,这两者在一定程度上是此消彼长的对立面。因此,如何通过合理的人员选择和配置,找到既能平等地对待每个学生,又能够最大限度地提高项目团队开发效率的平衡点,是实训项目管理人员所急需解决的现实而又棘手的问题。以下是笔者在实践中探索并采用的2种较为合理的人员选择与配置方案。 1.1 T R式自由组合法这里的T指的是Test,即测试,包括技术笔试和专业面试。在两项测试之后应形成一个比较合理的量化指标,该指标应着重突出候选人员的技术能力和团队意识,公布所有候选人员的各项量化指标。为保护学生的隐私,在公布时可以用编号取代学生的真实姓名。这里的R指的是rate,即比例。项目管理人员可以预先设定好小组成员结构的技术等级比例,参照学生的综合得分情况,按照1:2:1的高中低3个层次分布比例较合理。这种做法既可以避免单纯比例式自由组合给学生带来的盲目性,也能够比较真实地反映学生的能力水平,可以科学地、客观地组建起较为高效的团队,从而能够在后续阶段提高团队整体工作效率,也为管理工作带来方便。 1.2 T R交互式人员确定法首先寻找若干名班委组成评审组,项目管理人员或教师负责领导该评审组;接着参照T R方法得出候选人员的各项评估指标和综合指标,以及小组结构比例;然后由评审小组成员进行数据分析并结合每个成员实际情况确定各小组的组成人员。将初步形成的分组名单公布告知各候选人员,征求每位成员意见,由评审小组跟持反对意见的候选成员进行当面的会议式的沟通,进行合理的调整,经此步骤之后形成最终分组名单并公布。这样做实现候选成员与管理人员之间的交互,能够把纯粹的硬性考核成绩指标转化为“考核成绩指标+交互式分析”。这样较为客观且人性化的评判方式,既能够得到较为真实的数据,又能够吸纳学生合理的意见或看法,从而利于更科学的人员选择。 2 人员的管理 美国心理学家亚伯拉罕·马斯洛把人的需求分成生理需求、安全需求、社交需求、尊重需求和自我实现需求5类,依次由较低层次到较高层次排列,在管理中他建议通过满足人的需求来激发他们。 在学校实训的项目组中,成员的生理需求和安全需求都基本能够得以满足,因此,保证成员的社会需求、受尊重需求和自我实现需求的满足,对管理者来说有十分重要的意义。1)满足组员的社会需求就是为组员提供相互交往的时间和场所。实训项目的交流不应仅局限在小组的范畴,应鼓励小组与小组间的相互交流,条件具备的话可以组织学校跟学校间类似项目组间的交流。形式可以多样化,如电子邮件、组建QQ群、网络会议、座谈会和技术讲座等互动方式。2)为了满足组员受尊重的需求,应该让他们感到在项目小组中受到人格上的尊重,技术长处被认可。对于参加实训的学生来说,对他们做出的成绩给予充分的肯定就是一种简便高效的方式,如针对某个技术环节开展一次技能比赛,或者开展评审会定期对项目阶段成果进行评估,对优秀团队及其成员进行表彰等。3)为满足组员自我实现的需求,应该在项目取得一定成果的基础上,分配给组员具有一定挑战性和难度的任务,这些任务不能超过学生能力的范围,同时给他们提供课外的辅导以提高他们解决这些问题的技能。任务的完成情况可以作为附加评审内容纳入学生最终的实训综合成绩中去,给学生超越自我的动力。 3 团队的管理 3.1 增强小组凝聚力一个有强大凝聚力的小组是最高效的小组,小组中的成员在思想上能够形成共同的准则,在工作中能够紧密配合和协调,组员跟组员之间能够互相学习、相互关照,从而消除隔阂,用集体的力量解决许多工作中的问题。增强小组凝聚力的方式有许多,如给小组起个性化的名字、开展游戏或者室内或户外运动等方式增进组员间的沟通。另外,提高小组组员的责任感、诚信度以及保障他们的知情权、提供发展的空间等,都是增强小组凝聚力的有效方法。 3.2 增强小组沟通沟通作为软件开发过程中的重要环节,对于开发效率的提高和团队的整体发展具有决定性的意义。1)适当的小组规模。在编制小组成员时应考虑到人数对沟通的影响,成员太少,沟通容易但不利于开发效率;反之,成员过多会使得沟通变得十分困难,从而使效率严重下降,因此,合理的人员安排才是关键。根据经验,一个实训小组以4~8个为宜,其中6人组最为合适。2)合理的性别比例。如果小组中的组员性别均相同,可能会导致冲突,使得沟通无法正常进行,所以在确定小组结构时应注意男女比例的控制。对于软件开发类实训项目而言,小组中的男女比例应控制在3:1左右,其中女性组员可以作为小组的协调员。3)适当的小组负责人。小组负责人除了领导小组工作外,还负责协调小组成员之间的沟通。受尊重的小组负责人可以提高小组凝聚力和工作效率,无论对自身的进步还是对整个团队的发展来说都是大有裨益的。 软件管理论文:浅析软件项目管理是决定软件产品质量的主要因素 论文关键词:软件项目 管理软件 产品质量因素 论文摘要:软件项目管理的核心是全面客户满意。其管理体系包括:战略管理、范围管理、成本管理、时间管理、人力资源管理、沟通管理、风险管理和质量管理。 在软件和信息科技行业,项目管理经常决定了一个产品或者企业能否成功。项目管理得到越来越多的企业和政府部门的重视,例如中国于2002年4月召开了有关项目管理的首次国际研讨会。具体操作与项目最根本的不同在于具体操作是具有连续性和重复性的,而项目则是有时限性和唯一性的。项目是一项为了创造某一唯一的产品或服务的时限性工作。所谓时限性是指每一个项目都具有明确的开端和明确的结束;所谓唯一是指该项产品或服务与同类产品或服务相比在某些方面具有显著的不同。各种层次的组织都可以承担项目工作。项目有时只涉及一个组织的某一部分,有时则可能需要跨越好几个组织。项目是执行组织商业战略的关键。 一、软件产品项目管理的重要性 20世纪80--90年代,许多大型企业管理信息系统M IS的开发都以失败而告终。这是为什么?一个重要原因是软件项目管理水平上不去,尤其是需求分析管理水平上不去,使得项目快要验收或交付时,却出了大问题:要么发现用户需求获取不准确,要么发现用户需求变了,致使做好的系统不能用或不好用。20世纪90年代初,上海一家公司在青岛做一个港口M IS项目,北京有一个单位在天津做一个港口M IS项目,都是因为甲乙双方软件工程基本知识不具备,使得项目管理不到位,导致2个大型项目不成功。现在软件应用领域空前广阔,深人到社会和科学研究等领域的各个方面。软件的需求也比以往更加多,软件系统设计也空前复杂。软件的项目管理问题也就因此而产生了。90年代中期,软件项目管理不善的问题仍然严重。据美国软件工程状况调查,只有10%的项目能够在预定的费用和进度下交付。于是软件项目管理成为软件项目发展中最重要的核心问题。为了使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬件、软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度安排等做到心中有数。软件项目管理的目的就是提供这些信息,分析信息,并根据分析结果对项目做出调整。软件项目管理开始于技术工作之前,在软件开发的整个过程中持续进行,最后中止于软件过程结束。 二、软件项目管理体系 随着软、硬件技术以及通信技术的日益成熟,软件技术可以与所有的传统产业相结合,促进产品的更新换代,大幅度提高产品的附加值,提高劳动生产率,推动产业结构与产品结构的调整。因此,软件的开发以及应用不仅仅是软件开发机构的任务,更深地涉及软件使用者的切身利益,尤其像管理信息系统MIS(Managcment Information System)、计算机集成制造系统CIMS ( Computer Integration Manufacturing System )、企业资源计划ERP(Enterprise Resource Planning)及商业智能BI(Business Intelligence)等大型的复杂软件更是综合了管理科学、计算机科学、通信技术以及数学等各方面的知识,需要各类人员的协调工作才能完成。因此也就有必要从项目管理的角度去管理软件的开发和运行。从用户的角度来看,软件项目的生命周期应该包括项目前期的论证工作、项目计划、软件开发、运行、维护以及项目后评价。由此可见软件项目管理的范围不仅包括传统的软件开发过程,还应该包括开发之前的准备工作以及运行中的维护工作和对项目的总结工作。同时,在软件项目生命周期中存在着许多活动。根据活动之间的相关性,可以将软件项目的各种活动分为九大类。 (1)战略管理。根据用户的经营目标制定软件项目的策略,以便为其他各方面的活动提供指导。在制定项目策略的时候应该充分考虑用户和其他利益相关者的实际需求和市场因素。另外创造和谐的项目环境和连续改进也是战略管理的重要任务 (2)范围管理。其目的是控制软件项目的全部活动过程都在需求范围内,以确保项目各种资源的高效利用。成功的项目管理离不开用户、软件开发队伍和项目经理的一致理解和协调配合 (3)成本管理。软件项目的成本不仅包括开发成本,也包括开发之前立项阶段以及软件在运行中的费用。操作者的培训费用和项所使用的各种硬件设施费用也都是整个项目成本的一部分。这些成本都需要很好地计划和控制。 (4)时间管理。其内容有确定各项活动之间的时间相关性;估计各项活动的持续时间,跟踪各项活动的进展情况,动态调筷各项活动之间在时间上的协调。 (5)人力资源管理。在软件项目中应该为软件开发人员和管理人员等各类项目人员创造一个和谐良好的工作氛围。使他们能感到项目成功的把握和积极的工作心态,确保项目队伍的稳定性和连续性。 (6)沟通管理。沟通管理是一个收集、存储、配置和项目生命周期内所形成的各种信息的过程为了让每个项目相关人员及时得到所需的信息,需要很好地解决“什么时候、向什么人礼报什么的”的问题,此外软件开发队伍和用户之间的沟通也是沟通管理中的一项重要工作。 (7)风险管理。由于软件项目中存在着很多的不确定因索,也就必然存在着各种风险而且风险有可能造成不良的结果,对风险进行分析和监控贯穿于整个软件项目生命周期。 (8)质量管理。目前软件的质量还是一个模糊的概念并且难以衡量由于软件质量主要是在开发阶段形成的,因此软件项目质量管理的重点应放在系统分析、系统设计和编码阶段,走查、评审、调试和测试是保证软件质量的重要手段软件工程能力成熟度模型CMM(Capability Maturity Model)较好地解决了软件开发过程中的质量管理问题。 综合管理。综合管理的任务是对前面讨论的各类管理活动进行协调和控制,使这些活动相互配合。其核心任务是对各种方案进行评价,协调各方面的利益冲突确保项目总体标的最终实现。 三、软件项目管理的核心是全面客户满意 当前,不少软件业管理人上认为,软件开发的问题主要在软件开发的工程化、规范化和软件开发管理体制。他们按照CMM(Capability Maturity Model),IS09002的标准来建立他们的管理体系。这里有商业竞争的因素在起作用。但是,他们忽略了商业竞争中取胜最重要的因素—客户满意。他们没有考虑到他们的管理方法能否满足客户不断变化的需求。从长远来看,软件项目真正的成功是客户的全面满意。以客户满意为中心的质量是必需的。漠视质量或只关心产品/服务是否符合需要的方法再也不足以留住和获得客户。因此,软件开发项目组织必须先确定什么产品/服务可以让顾客满意,然后再努力满足客户的需求和期望。要实现此目标,组织必须识别对软件产品的各种特性中哪些是对客户的满意起决定作用的要素。例如,服务器操作系统软件,需要长时间稳定连续工作。稳定性则是该软件产品的关键要素。因此系统的开发管理围绕着这一关键要素来展开。尽管不少的组织明白没有客户一个组织就不能生存和发展,或者说没有客户就没有组织,但在项目实施过程中,仍然存在着客户满意的障碍: (1)项目管理组织没有发展和完善对客户不断变化的需求和期望作出快速响应的能力。 (2)项目管理组织没有听取客户意见和建议的能力。 (3)项目管理组织努力倾听客户对项目的要求,却没有确认客户的需要和期望。 (4)项目管理组织不与客户保持密切关系,也不正视客户变更需求的可能性。这样通常会导致脱离客户,其后果则是失败,甚至最后客户不接受交付的成果。 软件质量是软件开发项目管理的核心问题。而质量的评价与度量应该由客户的满意度决定。因此,软件开发的项目管理应该围绕着客户全面满意这一中心来展开。客户驱动的项目管理方法体系提供了实现这一要求的基本理论和方法体系。提高软件质量势在必行,只有认识到软件质量的重要性,了解影响软件质量的因素,才能有的放矢,采用科学的管理技术和先进的技术方法,才可以确保软件的质量。 软件管理论文:浅析软件项目管理有效实施的研究 论文关键词:软件产业 软件项目 软件工程 项目管理 论文摘要:信息系统以及相关软件项目的设计开发已经不是企业运作管理中的一部分了,各软件企业都在积极地将软件项目管理引人开发活动中,对软件项目开发实行有效的管理。 目前,中国的软件企业正处于高速发展、急需规范管理并以项目为主导的环境中。企业每天所面对的不仅仅是几个越来越大的大型项目,而将是成百上千不断发生和进行的项目。产生这种变化的因素是多方面的,这包括客户需求的不断提高导致产品生命周期缩短;产品开发项目数量大增;新技术导致了对研究和开发项目需求的增加;为了提高业务赢利能力,改进业务模式的项目需求大增等。在这种多项目并发、技术含量高、变化速度快、资源有限的环境下,如何对企业、项目、资源实施科学的管理,加强团队能力,实现软件企业的生产规模化、规范化、国际化,是当前我国软件业面临的最大挑战。 中国目前软件业的落后状况,实际已经不是技术本身的问题,而是科学管理的问题,软件工程理论与软件项目管理的实际应用与经验,是我国软件企业急待学习与渴求的。中国软件业各个层次上的管理问题,目前可以说已经制约了中国软件业走向国际化的进程。 一、软件项目管理的概念 从概念上讲,软件项目管理是根据管理科学的理论,结合软件产品开发的实际,保证工程化系统开发方法顺利实施的管理实践,为了使软件项目能够按照预定的成本、进度、质量顺利完成,从而对成本、人员、进度、质量、风险、文档等进行分析、管理和控制的一系列活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。 软件项目的开发不同于其他产品的制造,软件开发的整个过程都是以设计过程为主(几乎没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要使用的是人力资源;并且,软件项目开发的产品大多数是程序代码和技术文档,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,具有很大的独特性。 二、软件项目管理的目的 随着信息技术的飞速发展,计算机软件产品的规模和复杂度也随之增加。个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。与此同时,软件项目中“项目黑洞”也应运而生:项目无法按期完成、项目合作方的工作难以协调、用户需求经常变动、工作质量难以保证,给企业带来为了愈来愈多的损失。这种情况说明了软件项目开发及管理过程中,存在着许多的问题,需要更多的重视和研究。 没有运用软件项目管理是面临如此众多问题主要原因之一。软件项目管理作为一种科学的管理手段,是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的一系列活动。因此,对于以“项目”为基本运作单位的各软件开发企业,都在积极地将软件项目管理引人开发活动中,对软件开发实行有效的管理。因此,决定一个软件项目实施成功与否,软件项目管理无疑起着举足轻重的作用,软件项目管理已经是公认的软件开发企业的核心竞争力之一。 三、软件项目管理的原则 1.平衡原则 在我们讨论软件项目为什么会失败时可以列出很多的原因,如管理问题、技术问题、人员问题等等,但是有一个根本的思想问题是最容易忽视的,也是软件系统的用户、软件开发商、销售商最不想正视的,那就是:需求、资源、工期、质量这四个要素之间的平衡关系问题。 需求定义了“做什么”,定义了系统的范围与规模,资源决定了项目的投人(人、财、物),工期定义了项目的交付日期,质量定义了做出的系统好到什么程度,这四个要素之间是有制约平衡关系的。如果需求范围很大,要在较少的资源投人下,很短的工期内,很高的质量要求来完成某个项目,那是不现实的,要么需要增加投资,要么工程延期;如果需求界定清楚了,资源固定了,对系统的质量要求很高,则可能需求延长工期。对于上述四个要素之间的平衡关系最容易犯的一个错误,就是鼓吹“多快好省”四个字。正视这四个要素之间的平衡关系是软件用户、开发商、商成熟理智的表现,否则系统的成功就失去了一块最坚实的理念基础。 2.高效原则 在需求、资源、工期、质量四个要素中,很多的项目决策者是将进度放在首位的,现在市场的竞争越来越激烈,“产品早上市一天,就早挣一天钱,挣的就比花的多,所以一定要多挣”,基于这样一个理念,软件开发越来越追求开发效率,大家从技术、工具、管理上寻求更多更好的解决之道。基于高效的原则,对项目的管理需要从几个方面来考虑:要选择精英成员;目标要明确,范围要清楚;沟通要及时、充分;要在激励成员上下工夫。 3.分解原则 “化繁为简,各个击破”是自古以来解决复杂问题的不二法门,对于软件项目来讲,可以将大的项目划分成几个小项目来做,将周期长的项目化分成几个明确的阶段。 项目越大对项目组的管理人员、开发人员的要求越高,参与的人员越多,需要协调沟通的渠道越多,周期越长,开发人员也容易疲劳,将大项目拆分成几个小项目,可以降低对项目管理人员的要求,减少项目的管理风险,而且能够充分地将项目管理的权力下放,充分调动人员的积极性,目标会比较具体明确,易于取得阶段性的成果,使开发人员有成就感。 4.实时控制原则 实时控制项目进度的机制,依靠一套规范的过程来保证实时监控项目的进度,以实现实时控制项目的进展,将项目的进展情况完全的实时的置于你的控制之下。实时控制确保项目经理能够及时发现问题、解决问题,保证项目具有很高的可见度,保证项目的正常进展。 5.分类管理原则 对于不同的软件项目其项目目标差别很大,项目规模也是不同的,应用领域是不同的,采用的技术路线差别也很大,因而,针对每个项目的不同特点,其管理的方法、管理的侧重点应该是不同的。就像古人讲的,“因材施教”,“对症下药”。项目经理需要根据项目的特点,制订不同的项目管理的方针政策。 6.简单有效原则 项目经理在进行项目管理的过程中,往往会得到开发人员这样的抱怨“太麻烦了,浪费时间,没有用处”,这是很普遍的一种现象。当然这样的抱怨要从两个方面来分析,一方面从开发人员本身可能存在不理解,或者逆反心理的情况,另一方面,项目经理也要反思:我所采取的管理措施是否简单有效?搞管理不是搞学术研究,没有完美的管理,只有有效的管理,而项目经理往往试图堵住所有的漏洞,解决所有的问题,恰恰是这种理想,会使项目的管理陷人一个误区,作茧自缚,最后无法实施有效的管理,导致项目的失败。 7.规模控制原则 该原则是和上面提到的其他原则相配合使用的,即要控制项目组的规模,不要人数太多,人数多了,进行沟通的渠道就多了,管理的复杂度就高了,对项目经理的要求也就高了。在微软的MSF中,有一个很明确的原则就是要控制项目组的人数不要超过10人,当然这不是绝对的,也和项目经理的水平有很大关系。但是人员“贵精而不贵多”,这是一个基本的原则,这和我们上面提到的高效原则、分解原则是相辅相成的。 8.组织的知识积累原则 有效的积累知识的方法是:人员专业化培养,知识与载体分离。具体的做法是,把需要度量的知识实体分为固定知识(项目成果)和流动知识(参与人员),再把知识实体的价值体现划分成不同的度量平面。根据所有知识实体在不同度量平面上的知识度量值,可以形成不同的知识平面指数和公司知识指数,并可根据此知识指数体系来全面分析公司的知识积累状况,并迅速做出恰当的反应。知识与载体分离体现的是,在组织中人力资本与组织资本是有区别的,简单地说,人力资本属于员工个人,企业只可租借使用;而组织资本就是8小时以外员工带不回家的企业资产,它为公司所有。对企业来说,相比于人力资本,组织资本更为重要。一个管理者(领导者)必须知道如何容纳和积累知识,使之为公司所有。 软件管理论文:浅析软件项目管理中人员流动风险的管理 论文关键词:软件项目 风险管理 策略 监控 论文摘要:在软件项目管理中,频繁的人员流动是软件项目的一个风险,为了缓解这种风险,项目管理者必须建立一套策略来降低人员流动,同时,还需要监控某些因素,这些因素可以提供风险是否正在变高或变低的指示,通过这种监控管理,妥善地处理风险事故造成的不利后果,最终实现项目的总体目标。 一、引言 在软件公司中,技术人员的流动性一直处于比较高的水平,因此给公司带来了很大的损失,要想改变这种现状在短期内恐怕难以做到。但这个问题又一直困扰着公司的项目管理者,特别是与软件项目组人员组织相关的频繁的人员流动给软件项目带来了极大的风险。那么,认识到这种风险后,怎样来对这种风险进行有效的控制,采取主动行动,创造条件,尽量扩大风险事件的有利后果,妥善地处理风险事故造成的不利后果,最终实现项目的总体目标,这是本文笔者要讨论的问题。 软件风险是指软件开发过程中及软件产品本身可能造成的伤害或损失。风险关注项目未来的发展,这意味着风险涉及选择及选择本身包含的不确定性,在软件开发过程及软件产品都要面临各种决策的选择。风险是介于确定性和不确定性之间的状态,是处于无知和完整知识之间的状态。同时,风险将涉及思想、观念、行为、地点等因素的改变。 一般来说,在软件项目中,存在以下一般性风险:(1)产品规模风险—与要建造或要修改的软件的总体规模相关的风险;(2)商业影响风险—与管理或市场所加诸的约束相关的风险;(3)客户相关风险—与客户的素质以及开发者和客户定期通信的能力相关的风险;(4)过程风险—与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险;(5)技术风险—突破技术的极限极具挑战性和令人兴奋,但这也是有风险的;(6)开发环境风险—与用以建造产品的工具的可用性及质量相关的风险;(7)与人员及经验相关的风险—与参与工作的软件工程师的人数、稳定性、总体技术水平及项目经验相关的风险。 二、降低风险可采取的策略 如果软件项目组对于风险采取主动的策略,则“避免”永远是最好的目标。这可以通过建立一个风险缓解计划来达到。在软件项目中,频繁的人员流动被标注为一个项目风险,基于以往的历史和管理经验,人员流动的概率为70 %,被预测为对于项目成本及进度有严重的影响。而软件项目中,人员的频繁流动又是一个无法改变的现实,为了缓解这个风险,项目管理者必须建立一个策略来降低人员流动。可采取的策略如下: 1.找出人员流动的原因。可以与项目现有人员一起探讨人员流动的原因,比如是否公司提供的工作条件不如人意、报酬偏低、竞争激烈等。找出原因后,提出解决问题的策略,在可能的范围内改善工作条件,至于报酬,不可能无限地增加,可以把工作业绩和报酬挂钩,提高员工的工作积极性,适当控制竞争的程度,最重要的一点是要培养员工对公司的归属感。 2.在项目开始之前,分清哪些是可控的,哪些是不可控的原因,采取行动以缓解那些在管理控制之下的原因,“预防”总比“救治”更主动。 3.一旦项目启动,假设会发生人员流动并采取一些技术措施以保证当人员离开时的工作连续性。 4.对项目进行良好组织,使得每一个开发活动的信息能被广泛传播和交流,定期召开项目组工作协调会议,随时掌握项目的进展情况。 5.定义文档的标准,并建立相应的机制,以确保文档能被及时建立。 6.对所有工作进行详细复审,使得不止一个人熟悉该项工作。 7.对于每一个关键的技术人员都指定一个后备人员。 三、降低风险的监控因素 1.随着项目的进展,风险监控活动开始进行。项目管理者监控某些因素,这些因素可以提供风险是否正在变高或变低的指示。在项目组的人员管理中,应该监控下列因素:(1)项目组成员对项目压力的一般态度;(2)项目组的凝聚力;(3)项目组成员彼此之间的关系;(4)与报酬和利益相关的潜在问题;(5)在公司内及公司外工作的可能性。 2.除了监控上述因素之外,项目管理者还应该监控风险缓解步骤的效力。例如:上述风险缓解步骤要求定义“文档的标准,并建立相应的机制,以确保文档能被及时建立”。如果有关键的人物离开了项目组,项目管理者应该仔细地监控这些文档,以保证文档内容正确,当新员工加人该项目时,能为他们提供必要的信息,这是保证工作连续性的条件。 3.风险管理及意外事件计划假设缓解工作已经失败,风险变成了现实。继续前面的例子,假定项目正在进行中,有一些人宣布将要离开。如果按照缓解策略行事,则有后备人员可用,因为信息已经文档化,有关知识已经在项目组中广泛进行了交流。此外,项目管理者还可以暂时重新将资源调整到那些需要人的地方去,并调整项目进度,从而使新加人的成员能够赶上进度。同时,要求那些要离开的人员停止工作,进人“知识交接模式”。 总之.当对软件项目期望值很高时,一般都会进行风险分析。不过,即使进行这项工作,大多数软件管理者都是非正式地和表面地完成它。用在标识、分析、管理风险上的时间可以从多个方面得到回报:更加平稳的项目进展过程;较高的跟踪和控制项目的能力;因为周密计划而产生的信心。 四、总结 风险管理意味着危机还没有发生之前就对它进行处理,这就提高了项目成功的机会和减少了不可避免风险所产生的后果。实践经验证明,最成功的项目就是采取积极的步骤对要发生或即将发生的风险进行管理。对任何一个软件项目,可以有最佳的期望值,但更应该要有最坏的准备,“最坏的准备”在项目管理中就是进行项目的风险管理。 软件管理论文:浅析软件项目的质量管理 论文关健词:软件项目 软件质量 软件质量管理 软件项目管理 论文摘要:软件产品是软件项目的最终结果,其功能度和复杂性要比制造业的产品高得多,而且在投入使用后,软件发挥的功效也是其它任何形式的硬件产品所无法比拟的。为了保证软件产品在交付后能够按照用户的需求发挥正常的功效,因此在项目实施过程中进行有效的质量管理是很有必要的。本文结合作者的经历就软件项目中的质量管理做了一些探讨。 一、引言 软件产品是软件项目的最终结果与其相关的质量问题主要来自项目开发过程。但软件是一个纯智力的特殊产品描述软件质量的定义则比描述实际物品质量定义面临着更多的潜在因素。所以保证软件质量比保证设备质量更具挑战性和不确定性。 国际化标准组织Iso在ISOPIEC9126中将软件质量定义为:“反映软件产品满足规定需求和潜在需求能力的特征和特征的总和”。而M .J .Fisher将软件质量定义为:“所有描述计算机软件优秀程度的特性的组合“。目前对软件质量的研究主要从两方面展开:一是软件开发过程的质量保证以过程文档化和管理科学化为内容:二是软件过程和产品的质量评估包括中间产品和最终产品采用软件度量技术作为软件质量特性量化的主要技术。本文将就第一个方面展开讨论通过给出或设计一些符合文档化开发标准的管理规范和文档模板以达到使软件质量满足之前用户对各项功能或性能的精确定义的目的。 二、项目概况及背景 某船厂在信息集成系统CIMS第一期结束后初步建立起企业的基础信息资源的共享平台,并将物资管理与财务管理进行了整合。但在第一期CIMS平台中没有对其涂装生产管理建立相应的系统。为尽快解决涂装生产管理的问题项目组在进行一个月的需求调研后就进入了开发。但是由于前期需求阶段没有细化需求涉众范围太小在开发阶段代码管理松散导致项目在开始不久后就处于一边开发一边继续需求分析细化的状态并伴随不断的需求变更最后在拖期半年后才交付了一个带有隐患的产品而且原定两周的试运行期因为修改不断发现的缺陷也延长为两个月。 在完成涂装项目后,项目组又接到船厂关于开发生产安全监管系统的任务为了避免同样的问题发生和提高软件质量,项目组认为要在软件开发项目过程中引入完善的质量管理,并针对船厂项目特点,结合实际情况重点覆盖需求、编码、测试三个阶段。 三、分析及应对措施 1.定义合适的项目过程 软件过程是指开发和维护软件产品的活动技术和实践的集合。在以计算机网络为基础的现代社会信息化背景下过程管理作为现代企业管理的先进思想和有效工具,随着外部环境与组织模式的变化而变化。因此作为一个好的软件项目过程,必须针对企业和项目的实际情况,确定软件项目运作流程,定义软件功能及相关性能明确各阶段的进入条件和退出条件进行有效的过程控制与管理,在提高软件开发的效率和项目的成功率的基础上进一步保证所开发软件的质量。 在现阶段主流的软件工程过程主要是RUP (Rational Unified Process)和XP (Extreme Programming)。由于新项目的需求明确,并且项目组成员的构成方式是新老搭配,在经过综合考虑后,我们决定采用RUP方法。最后,项目组根据项目实际情况对传统的RUP模式进行按需裁剪,具体方案是将”需求与分析”和‘’设计”两个活动合并为‘’需求分析”,将”配置”和”变更管理”统一纳入’‘项目管理‘’,移除”环境活动‘’环节。 2.明确项目需求 对于任何软件项目过程而言,需求不仅是一个不可避免的环节,也是软件开发的基础。往往用户需求明确变更少的项目的成功率就高而那些用户需求混乱变更频繁的项目几乎从一开始就注定了失败的命运。但是,在现实生活中,用户需求总是在开发进入中后期时,因为各种不同的原因而发生变化。这就给软件项目过程实施带来不确定因素。在涂装项目中,由于前期需求不明确以及随意变更需求,导致项目组在开发阶段不停的返工,进而造成代码质量低下,测试拖期等一系列问题。因此在项目实施过程中,为了保证软件开发的顺利进行和最后交付的产品质量,应该对项目需求变更进行管理。 (1)需求说明书要描述明确详尽。由于与用户沟通的需求人员并不是最后的开发人员,所以有可能导致开发人员对需求说明书的理解与用户真正的意图会产生一定的偏差。另外,当项目在进行到开发(编码)阶段时,由于记忆的缺失,对当初所作的需求说明书的理解也会产生偏差。 (2)要对需求变更进行管理。通常需求分析完成后项目就进入开发阶段,用户可能会因为市场或策略的变化而提出需求变更的要求。此时,若是合理变更则有利于项目实施,但有时所作的变更可能会影响项目整体的设计和开发,造成项目进度的延期。对于这一情况,项目组应该积极与用户沟通,制订需求变更说明书,在双方都认可的情况下方可实施。 (3)在项目开发过程中要尽早明确用户需求,有些内容一时无法确定则应该暂缓该部分的开发,尽量降低因需求变更而带来的风险。 3.代码走查 软件质量在很大程度上依赖于代码质量。在实际环境中对于同一项目而言,由于项目组成员的编程能力、习惯、风格、对需求的理解和个性的不同所开发的代码质量也不尽相同。再加上一些难以预测的人为因素由此带来的隐患将严重影响代码质量最终造成软件质量低下,使得用户无法正常使用并为以后的维护带来更大的工作量和难度。 考虑到项目进度以及实际情况,要进行完整的代码评审不太现实,因此在软件开发过程中可以根据需要引进代码走查。每周在规定的时间内,轮流让程序员讲解其所开发代码的主要部分。这项措施一方面可以从侧面促使程序员本人注意所开发代码的质量,另一方面在走查过程中可以获得他人的意见进一步改善代码效率,使开发成员共享项目实施过程中问题解决的思路和方法同时还可以促进项目组成员之间的交流并加深对需求的理解关注软件开发过程中的各个环节并进行过程改善的讨论,使得软件质量更有保障。 4.进行正式的测试,并形成制度 测试就是对软件产品的检验。软件测试的目的是根据用户需求检查系统是否符合项目合同与任务书规定的要求。项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试性能一效率测试用户界面测试、安全性测试、压力测试可靠性测试安装/反安装测试等活动。测试过程通常在模拟环境中进行。只有通过了上述全部测试的软件,才可以称之为符合用户质量要求的合格的软件。 测试活动要尽可能覆盖整改项目过程,从最初的需求到部署阶段,都应该制订详细的计划并编制相应的文档,如测试计划测试用例文档测试报告等。通过测试活动尽可能早得发现每个阶段中软件存在的缺陷,以方便后续阶段的实施。在这测试活动过程中,我们应该遵守一条基本原则—按照用户需求进行测试。我们即不能为求速度而缩短测试规模,也不能忽视用户需求而提高测试要求。总之一切测试应该符合用户需求。 四、结论 除了上述几个方面外,对于软件产品的质量管理还有其他要考虑的因素,如风险控制、变更管理和配置管理等等。其实,美国软件工程研究所(SEI )开发的软件过程能力成熟度模型(CMMI )和}S09001标准,都着眼与质量和过程管理。而且在组织结构方面,国外成熟的软件企业一般都设有单独的QA (Quality Assure)部门,它与开发部门独立,负责监督流程的执行。但是,对于任何一个具体项目的实施都应制订合适的质量管理方案,不能生搬硬套而这些需要项目经验的积累以及不断的学习新知识。 软件管理论文:浅谈软件开发管理策略 论文关键词:软件项目管理 项目经理 项目计划 论文摘要:在软件项目开发的过程中,软件项目管理的成功与否是决定一个项目是否能够顺利高效率完成的重要保证。但是我国大部分的软件企业在进行项目管理对都存在着各种问题,从而使项目不能顺利有效地完成。文章探讨了在嚼目管理过程里出现的常见问题,并给出了相应的解决策略。 我国软件产业的现状是数量已上规模,但质量亟待提高。在软件项目开发中,发现了一些普遍存在的问题,如项目严重误期、代码质量达不到标准、程序员疯狂工作仍然毫无进展等。本文针对软件开发过程中存在的一些问题,分析这些问题产生的原因,并且提出一些解决方法和管理策略。希望有助于程序员以较少的无用工作开发出高质量的软件,有助于项目以较快的速度圆满地完成。 1软件开发中实行项目管理的意义 项目管理就是在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求,实际上就是通过项目各方干系人的合作,把各种资源应用于项目,以实现项目的目标,满足项目千系人的需求,其本质就是对时间、质量和成本的管理。随着软件开发的深入、各种技术的不断创新以及 软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,项目开发的管理日益受到重视。 2目前在软件项目管理中存在的误区 现在大多数企业都认识到了在项目中进行管理的重要性,但是仍然有许多企业在实施项目管理的过程中存在着这样那样的误区,主要表现在以下几点。 项目经理不够专业。在软件企业中,缺乏专业的项目管理人员来实施项目管理及担任项目经理,通常被任命的项目经理主要是因为他们能够在技术上独当~·面,但是他们在管理方面特别是项目管理方面的知识比较缺乏。 项目计划缺乏纲领性。项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。 缺乏有效的管理意识。部分项目经理不能从总体上把握整个项日,而是埋头于具体的技术工作,造成项目组成人员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。 缺乏有效的沟通制度和机制。在项目中一些重要信息没有进行充分和有放的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。 风险管理意识淡泊。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。 项目干系人的不确定性。在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。 缺乏项目团队的合理分工。项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。 3解决软件项目管理中存在的误区的有效策略 要想解决上面描述的误区,归根到底还是要从管理学的角度入手,即在软件项目的开发过程中加入过程管理的内容,这样我们可以在软件开发中对各个过程的质量加以控制,从而达到保证软件产品质量的目的。为了有效提高管理水平,我们应该努力做到以下几点。 项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。 计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。 加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项E1经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。 制定有效的沟通制度和沟通机制,提高沟通意识;采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。 通过学习项目管理知识掌握风险识别、量化、对策研究,反应控制的工具和方法,掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。 项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。 项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。 实施有效的项目管理绝非易事,对于软件企业而言,这不是一个小的改变,而是一种变革,企业需要为此付出艰苦的努力,同时,成熟有效的项目管理无疑将对企业起着至关重要的作用,项14管理的水平将是企业核心竞争力之一。 软件管理论文:试谈软件开发项目管理 论文关键词:软件项目管理 项目经理 项目 论文摘要:在软件项目开发的过程中,软件项目管理的成功与否是决定一个项目是否能够顺利高效率完成的重要保证。但是我国大部分的软件企业在进行项目管理时都存在着各种问题,从而使项目不能顺利有效地完成。文章探讨了在项目管理过程里出现的常见问题,并给出了相应的解决策略。 计划软件行业在现在的众多行业里是一个极具挑战性和创造性的行、体现了软件开发者的智慧和汗水,同时软件开发是‘项复杂的系统]:程,牵涉到许多方面的因索,在实际工作中,经常会出现各种各样的问题,甚至会面临失败。如何总结、分析失败的原因,得出有益的教训,对于项目开发人员来说,是在今后的项目中取得成功的关l键。 一、软件开发中实行项目管理的意义 项目管理就是在项目活动中运用系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求,实际上就是通过项目各方干系人的合作,把各种资源应用于项目,以实现项日的目标,满足项日于系人的需求,其本质就是对时问、质量和成本的管理。 随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程l}f,项目开发的管理日益受到重视。 二、目前在软件项目管理中存在的误区 现在大多数企业都认识到了在项目中进行管理的重要性,是仍然冉许多企、在实施项目管理的过程中存在着这样那样的误区,主要表现在: 1.项目经理不够专业。在软件企业中,缺乏专业的项目管人员来实施项目管理及担任项H经理,通常被任命的项日经主要是因为他们能够在技术上独当一面,但是他们在管理方面特别是项目管理方面的知识比较缺乏。 2.项目规划缺乏纲领性。项目经理对总体计划、阶段计划的作用认识不足,凶此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。 3.缺乏有效的符理意识。部分项目绎理不能从总体上把握整个项目,而是埋头具体的技术工作,造成项目组成人员之间忙的忙、闲的闲,计划不周、任务小均、资源浪费。有些项目经押没有很好的管理方法,不好安排的工作J好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。 4.缺乏有效的沟通制度和机制。在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至=无法及时接收最新的信息。 5.风险管理意识淡泊。有些项目经理没有充分意识到风险管理的重要性,对计划中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。 6.项目干系人的不确定性。在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付:项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩火。 7.缺乏项目团队的合理分工。项目团队内有时由于各阶段不同角色或同阶段不同角色之间的责仟分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己邢部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。 三、解决软件项目管理中存在的误区的有效策略 要想解决上面描述的误Ⅸ,归根到底还足要从管理学的角度入手,即在软件项目的开发过程中加入过程管理的内容,这样我们可以在软件开发中对各个过程的质量加以控制,从而达到保证软件产品质量的目的。为了有效提高管理水平,我们应该努力做到: 1.项目经理接受系统的项目管理知识培训是非常必要的,有了专、I领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平 2.计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项臼经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。 3.加强项H管理方面的培训,并通过对考核指标的合理设定和宣传f导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并Ⅱ在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。 4.制定有效的沟通制度和沟通机制,提高沟通意识:采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。 5.通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌揖项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。 6.项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。 7.项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。实施有效的项目管理绝非易事,对于软件企业而言,这是一个小的改变,而是一种变革,企、世需要为此付出艰苦的努力,同时,成熟有效的项目管理无疑将对企业起着至关重要的作用,项日管理的水平将是企业核心竞争力之一。 软件管理论文:浅谈软件项目管理的决策支持系统 论文关键词:软件项目管理 软件可靠性 决策支持系统 论文摘要:本文在解释软件项目管理和决策支持系统的基础上,分析出软件项目管理的局限性,进而说明应用软件项目管理的决策支持系统的必要性。最后从软件项目管理的角度来分析决策支持系统的目标,以及软件项目管理的决策具有多级性。 随着现代科技的发展,计算机应用于各个领域的管理,各个领域需要用软件系统扩展和提高自己的业务。针对不同的行业和产业,研制出了不同的项目管理软件。项目管理软件主要完成的项目管理活动分为管理活动和工程活动两类。例如:项目立项评审:评估项目立项条件是否具备,如相关部门移交资料是否齐全,客户信息是否完整,团队成员是否恰当等等;项目计划评审:评估项目计划合理性,是否与公司其他项目资源和运营目标冲突(回款):SCM(项目配置管理、Software Configuration Management):系统管理和项目有关的各类文档和软件版本,确保项目的惟一性资料信息被留存,可随时追溯项目各阶段关键文档记录(例如备忘录)。工程活动包括项目要获得实质性进展必须要做的工作,例如写计划,做需求调研,写解决方案,变更项目范围,项目启动大会,项目例会,项目里程碑会议,项目紧急事件处理会议,项目备忘录,项目验证,项目培训,项目小范围试运行,项目验收报告等等都是工程活动。 软件项目管理能完成若干事情,但是,由于软件开发过程以及应用过程中,诸多因素会造成软件的不可靠性,例如:1.需求分析定义错误。如用户提出的需求不完整,用户需求的变更未及时消化,软件开发者和用户对需求的理解不同等等。2.设计错误。如处理的结构和算法错误,缺乏对特殊情况和错误处理的考虑等。3.编码错误。如语法错误,变量初始化错误等。4.测试错误。如数据准备错误,测试用例错误等。5、文档错误。如文档不齐全,文档相关内容不一致,文档版本不一致,缺乏完整性等。另外程序代码错误,也可以造成软件的不可靠性。程序代码一个最直观的特性是长度,另外还有算法和语句结构等,程序代码越长,结构越复杂,其可靠性越难保证。所以提高可靠性从原理上看就是要减少错误。而决策支持系统(Decision Support System,简称 DSS)正好可以解决这些问题,它能很好的将那些微结构或无结构、不确定和零散的关联因素有机的综合起来,进行分析、比较和定量化,给决策者以支持,减少了决策的主观性。可见,研究并开发一个软件工程项目质量决策支持系统(Decision SupportSystem For Software Engineering Project Quality,简称SEPQDSS)对于软件企业的管理者,对于企业开发出高质量的软件产品,对于企业的长期发展来说都是至关重要和必要的。 这里所说的决策支持系统(decision support system,简称dss)是指辅助决策者通过数据、模型和知识,以人机交互方式进行半结构化或非结构化决策的计算机应用系统。决策支持系统作为一种新兴的信息技术,能够为企业提供各种决策信息以及许多商业问题的解决方案,从而减轻了管理者从事低层次信息处理和分析的负担,使得他们专注于最需要决策智慧和经验的工作,因此提高了决策的质量和效率。 决策的进程一般分为4个步骤:发现问题并形成决策目标、用概率定量地描述每个方案所产生的各种结局的可能性、决策人员对各种结局进行定量评价,一般用效用值来定量表示、综合分析各方面信息。决策支持系统的基本特征:对准上层管理人员经常面临的结构化程度不高、说明不够充分的问题:把模型或分析技术与传统的数据存取技术及检索技术结合起来;易于为非计算机专业人员以交互会话的方式使用;强调对环境及用户决策方法改变的灵活性及适应性;支持但不是代替高层决策者制定决策。 决策支持系统的灵魂是先进的管理思想。一个成功的DSS应用,应该融合了优秀的管理思想,能给应用者提供分析和解决问题的有效的方法论。DSS中所包含的计算机软硬件技术,则是将这种管理思想和方法论具体表现出来,从而让DSS用户在使用过程中能够贯彻这种管理思想、实践这种方法论。组织整体的管理绩效因此而得到提高。这从另一角度说明,应用者必须首先整合自己的管理思路,提升管理意识,明确通过DSS将实现的管理目标,才能开始DSS的实施。 从软件项目管理的角度来讲,决策支持系统的目标是使软件的功能更好地满足客户的要求,并且能在规定的时间内,在预计的资金下,开发出一个高效率,质量和可靠性能够满足要求的软件。具体包括以下五方面:软件功能完备(软件的需求完备),资金控制在计划之内,时间控制在计划之内,软件的效率和可靠性符合要求,人员之间能够合理协调达到最好的效率。 软件项目管理的决策具有多级性。因此,决策制定程序是比较复杂的。一般来说可分为三个层次:第一层,决策路线层,反映了由决策任务的提出、多级决策、批准实施的全过程;第二层,决策工作层,由决策对象进入某一个部门开始,到送出这个部门截止的部门内部处理;第三层,决策分析层,指一个部门内单个决策者或决策小组分析问题所处的环境、确定目标,并提出方案(设计)、评价分析及解决方案抉择和实施反馈的具体步骤。 由此可见,决策支持系统在软件项目管理中的应用是非常必要而且有其重要价值的。 软件管理论文:浅谈软件项目管理中的阶段收尾管理 论文关健词:软件项目管理 收尾管理阶段管理 论文摘要:在实际软件项目管理中,阶段性的收尾管理工作往往不被大家重视,其实阶段管理收尾工作也是非常重要的。本文从阶段评审,文档记录等方面来阐述软件项目管理中阶段收尾管理的重要性 随着计算机和信息产业的发展软件产品的规模也是越来越庞大,随着软件规模的扩大软件人员的增加软件项目管理的复杂性增大,各个软件企业都意识到将项目管理的理念引入到软件开发活动中开始对开发过程进行有效的管理又所谓“IT项目管理”或“软件项目管理’软件项目管理就是为了使软件项目能够按照预定的成本、进度、质量的顺利完成而对成本、人员、进度、质量、风险等进行分析和管理的活动。随着软件开发规模及开发队伍的逐渐增大软件开发活动不再是像过去的几个开发人员就可解决的事情,它需要使用开发规范或开发流程控制来约束每个开发人员、测试人员和维护人员的工作.以保证每个项目组成员按开发计划及进度准时、保质完成自己的任务。软件项目管理的各个过程主要包括二需求管理范围管理任务分解规模估算成本管理进度计划质量计划配置管理计划,风险计划文档管理团队建设,跟踪控制收尾管理项目结束。项目收尾管理作为项目结束前的最后管理工作也显得及其重要一般包括合同收尾和管理收尾两部分。合同收尾就是项目管理人员与客户对照合同一项项的核对审核是否完成了合同所要求的内容是否达到合同所提出的指标或条件也就是我们通常所讲的客户验收管理收尾就是对于项目组内部把做好的项目文档、代码、与客户交流的文件等归档保存对项目中遇到的问题及解决方法、有效的创新技术进行及时地总结,对外宣称项目结束转入维护期把相关的产品说明及技术文档转到维护组。 一、阶段收尾管理 软件项目结束的状态: 1.正常结束。2提前结束3延期结束4暂停。5取消(因变更或不可完成)。软件开发是一项复杂的系统工程牵涉到各方面的因素在实际工作中经常会出现各种各样的问题甚至面临失败。而如何总结、分析失败的原因得出有益的教训.这对一个公司来说则是今后项目中取得成功的关键。 以前会听说过这样的项目:客户验收后项目活动就随之收场,项目资料没有认真归纳总结不是束之高阁就是缺失不全但是当新项目启动时.面对新的项目问题项目组成员才发现:其实这类问题以前也遇到过,但是却无法找到相应的解决方案资料只好再投入人力、时间甚至金钱来重新经历一遍为什么相同的问题会重复出现,究其根源是因为缺少项目总结也就是说没有做好项目收尾工作。那么是不是我们只能等到项目结束或收尾时才能开始进行项目总结文档保存的工作呢:当然不是在软件项目管理的各个阶段我们都可以做收尾管理工作,也就是阶段收尾管理工作。 二、阶段收尾管理的重要性 在实际软件项目管理中.阶段性的收尾管理过程和工作往往不被大家重视其实阶段性的收尾管理工作也是非常重要的。阶段收尾管理工作的重要性主要体现在如下几个方面: 1进度管理中的里程碑每个项目都是由若干个相对独立的任务链组成的软件项目也是如此。只有在任何一条任务链都已经优化的基础上才可能进行系统的全面的优化因此保证每条任务链的效率是整个项目进度完成的前提和基础.只要能保证里程碑事件的按时完成,整个项目的进度也就有了保障。那么我们在里程碑点都来做些什么呢: 在计划好的阶段管理工作中.收集项目的最新信息和数据.并将这些数据与项目计划进行比较,来判定项目的阶段效率,进度是提前了还是落后了,成本是在控制中还是超支了?质量是否符合要求。客户对阶段工作结果满意么,及时总结经验与教训.同时及时发现项目存在的或潜在的问题以便近早采取纠正措施这就是阶段管理工作中的收尾管理,所以说阶段收尾管理是进度中的里程碑是整个项目进度优化的前提和基础。 2沟通管理中的契机沟通是保持项目顺利进行的润滑剂。与传统项目相比软件项目具有较高的技术含量和较大的风险。参与软件项目建设的用户并不都是软件开发专家.他们具有丰富的业务经验但是很少能了解软件开发的技术.随着项目工作进程的深入就会有许多新的问题出现与客户的及时有效沟通更显得尤为重要。软件项目是客户和用户共同面对的项目只有双方的积极参与才能促进项目的成功,而只有进行有效的项目沟通管理才能确保用户的积极参与。一个阶段的项目工作完成后与客户一起就前一段时间的工作进行总结和检查是十分必要的。一方面可以及时了解客户对项目工作的满意程度及时统计、分析客户对项目的意见.为下一阶段工作的顺利进行提供了保障另一方面有些因工作繁忙未能及时签署的文件,也尽快找客户给予签字确认。当双方出现纠纷时,只有双方签字的文字记录才是最有用、最有说服力的证据。 3收尾管理的基础。一个项目阶段的工作刚完成时项目组成员都保留着最新的阶段记录如阶段文档或最新的代码版本这个时候收集起米是非常容易的时间随着人员的变动或者项目的需求变更有些项目成员可能离开了项目组那时再去收集他们保存的文档资料就非常困难了,甚至有些记录永远也找不到了。好多大的软件开发项目跨几年的时间项目经理可能已经换了几任客户的项目主管也换了几位最后项目收尾管理时的文档收集、总结的工作,就是在阶段收尾管理的基础上来确保每个阶段的文档、资料都能按时完整地保存、归档。只有阶段管理收尾提供的数据信息越真实、越准确.才能保证在项目最终收尾时客观评定项目的绩效总结的经验教训和文档资料才有真正借鉴的价值总而言之.作为一个好的项目经理,一定要重视进度中的里程碑事件抓住与客户沟通的契机做好项目阶段工作的总结收尾工作如何做好这些工作呢。也就是要做好项目阶段管理收尾工作。阶段收尾管理工作是保证项目成功的重要管理手段它和项目的其他工作一样应该纳入项目计划并按计划落实。
管理软件论文:对适合我国企业应用管理软件的探讨 管理软件作为一种实现现代企业管理的手段,与社会生产关系和社会生产制度没有直接关系,属生产力范畴,旨在提高企业的管理水平和生产力水平。因此,大力推广应用管理软件,并使其迅速转化为现实生产力,乃是世界各国企业所共同追求的目标,不受任何国界、国情、厂情的影响和限制。 我国加入wto,以及政府部门的大力推进,使得企业管理进步的需求也比以往更为迫切,更为实际。当前,我国广大企业,尤其是大中型企业,几乎都将推行管理软件乃至erp列为“技改项目”,并投入大量资金。因此,在厂商需要、政府推动和媒体宣传的共同作用下,我国企业对管理软件的应用及管理软件的发展显得格外令人关注。 一、我国企业应用企业管理软件的状况 我国一些大型企业于80年代初曾花大力气引进以mrp为代表的国外先进生产管理信息系统,开始应用mrp系统。以求提高企业的生产制造管理水平,达到“既要降低库存,又不出现物料短缺”的目的。90年以来,国家863高技术计划cims应用示范工程在很大程度上大大推动了我国制造业应用mrpii系统的进程。目前,我国已有上千家企业应用mrp ii管理系统。随着企业应用mrp/mprii的深入,人们又提出了新的问题,他们希望管理信息系统在处理物料计划信息的同时,要能同步处理财务信息。也就是说,企业要求财务会计系统有同步地从生产系统中获得资金信息,并随时控制和指导生产经营活动,实现资金流与物流的统一。 我国绝大部分企业走的是另外一条路,同样在20世纪80年代初开始起步,为了提高会计核算的效率与准确度,开始采用会计软件来代替人工作账,并由此开始了“会计电算化”的历程。不久,企业便不满足于这种事务型的会计核算软件,他们需要“财务管理”,即能对会计信息进行分析与决策,并为企业经营提供指导作用。于是,他们开始应用管理型的财务软件。从1997年开始,一些企业又在此基础上提出了新的需求:将财务管理与监控职能扩展到销售、采购等业务环节,实现财务核算、控制与进销、存业务的事务处理一体化。在大多数企业的心目中,集财务、分销、生产等管理于一体的管理软件能解决他们遇到的管理难题。 二、我国企业对企业管理软件的要求 1、适合我国企业的管理软件应满足企业多样性需求 中国的企业千差万别,发展水平也参差不齐。大型企业实力雄厚、业务处理流程复杂,需要实现资金、物流、信息、业务等方面的一体化管理,因此,大型企业对全面的管理软件系统实施有着很强的需求。对于中型企业,尤其是对1000多万的中小企业而言,出于成本的考虑、企业自身管理基础的影响,不可能全部选择大型的全面管理软件产品,即使选择了,但是国内很多企业的现状是产品信息(比如零配件的统一称谓)都不准确,对全面质量管理和及时制造的理解和应用都还差了很远,在这种条件下实现企业和企业上下游的信息高度集成,难度是可想而知的,造成实施困难,上线不易,不容易用起来的结果。因此,我国相关管理软件市场上的企业管理软件应该满足不同规模、不同管理水平用户的多层次的需求。 企业推行管理信息化建设,最需要的是解决现实问题,需要不同层次的企业管理软件有效地解决不同类型企业经营管理中的个性化需求。适合企业的管理软件应该是在发展中坚持“以客户为中心,以应用为重点”思想的管理软件,更多的是聆听企业的声音,关注企业管理的需要,因为管理软件的基本目标是辅助企业管理,所以管理软件的根本着眼点应该是管理应用。适于我国国情的管理软件的标准应该是满足企业需求的多层次化、多样化。 2、适合我国企业的管理软件应将国情、厂情与管理创新有机结合起来 对企业管理软件尤其是erp管理软件,有不少企业存在一些误区,认为erp软件是万能的,企业的所有问题都可以解决。还有些企业仅仅把上erp管理软件当成一种时髦,好像不上erp,企业不够档次。实际上,企业管理软件乃至erp软件,其成功的关键是要用先进的管理思想和方法去规范企业里面人的行为。企业管理软件涉及到企业生产、经营、技术和管理的各个方面,还涉及到企业体制、市场环境等诸多因素,其复杂性可想而知。 由于我国经济环境、企业管理体制的原因,我国企业管理中还有一些“人治”的色彩,有许多地方是无章可循或有章不循;有的企业管理基础薄弱,数据不完整,不规范,工作方式因人而异等等。我国企业往往没有经历西方企业的充分工业化阶段,比如,在业务标准化方面,我国绝大多数企业往往侧重于专业标准化而忽视事务性标准化。西方企业经历了充分的工业化发展阶段,在经历了业务流程优化后,一般以目前最好的运行办法作为标准,以达到规范运作和高效运行的目的,并且不断的从目前的标准上升到更高的标准。 对于中国企业而言,最迫切需要解决和提高的是基础管理,包括基础数据管理、基本业务流程设计、内部控制设计和人的行为规范等,企业要上企业管理软件,通常希望最好能通过这个过程帮助企业解决当前存在的问题和困难。适合我国企业的企业管理软件必须是根据中国企业的实际情况,对企业本身所面临的问题有着较为清晰的认识,抓住主要问题,并结合人员素质以及企业文化等诸多因素,本着实事求是、因地制宜、脚踏实地的态度而定位的。如果不考虑国情、厂情,这样开发出来的企业管理软件肯定是要遭遇失败的。 需要指出的是,国情、厂情虽然是客观存在的,但也是在不断变化的。如果企业管理软件以国情、厂情为由,强调客观,迁就现状,不思进取,实际上就是固步自封,保护落后,就将严重影响管理软件的应用水平,制约企业的生存与发展。 有些旧式的管理过程,可能在原来的物质技术条件下是非常合理的,能够起到提高效率、保证质量、帮助决策的作用。但是随着信息技术的应用,它会与企业的物质流、信息流显得格格不入,往往会对提高效率、辅助决策起副作用,至少无法起到充分发挥信息技术优势的作用。 我国广大企业应用管理软件的目的之一就是要在学习、研究和应用现代企业管理思想和方法的基础上,尽快改变落后的企业管理模式,进而建立起一套新的符合市场经济体制的企业管理模式。管理创新是企业根据企业经营的内外部环境的变化,根据企业的生产力发展水平,及时调整和优化企业的管理观念和管理方式的过程。管理创新是提高企业效率和效益、增强企业活力的根本途径,没有管理创新,企业将不可避免地停滞不前甚至衰退,以致最终被市场淘汰。企业应用管理软件一定要立足于管理创新,带动企业管理现代化,努力实现企业管理水平和生产力水平的跨越式发展,进而推动我国工业化进程。 因此,适合我国企业应用的企业管理软件一方面需要结合我国目前尚未实现工业化,而且大多数企业又长期处于传统、粗放管理的实际状况,但是更重要的是,另一方面又一定要同时立足于企业管理创新,引进、消化、吸收先进的方法和经验,并把两个方面有机地结合起来,相辅相成,互为作用。 三、适合我国企业应用管理软件应具备的特点 考虑到我国企业及企业管理的现状,以及企业对企业管理软件的要求,可以归纳出,适合我国企业应用企业管理软件主要应包括如下几个方面的特点: 1、管理思想的先进性。是指管理软件本身所蕴涵的先进的管理理念、管理思想和管理模式。企业管理信息化系统的应用,并不是简单地将计算机技术和信息化技术应用与企业管理中,更重要的是在这些现代化技术的应用中,引入先进的管理思想和管理模式及经验、方法,以提高企业管理水平。 2、开放性。开放性是指管理软件系统与其他系统之间可以方便地进行数据传递及信息交换。企业信息化的发展,使信息化技术在企业生产经营和业务管理的各个领域得到普遍应用,这些系统间的相互衔接、集成应用是企业信息化进一步发展的要求。另外,企业信息化系统与外部系统的数据交换和信息传递,同样对管理软件提出了开放性的要求,要求管理软件系统不仅能向外以标准数据格式传送数据,而且能接受外部系统的标准格式数据。 3、可扩展性。可扩展性是指管理软件的功能随企业管理要求的发展而逐步扩展的特性。企业及企业管理的发展,必然对企业管理信息化系统提出功能和性能扩展的要求,甚至会进一步要求业务流程及管理流程的变化。 4、可集成性。管理软件的可集成性是指其与企业信息化系统的其他子系统如办公自动化系统、生产过程控制系统等的可集成应用。 5、架构的先进性。架构的先进性是指管理软件所采用的技术架构和开发技术的先进性。管理软件的技术架构和开发技术,是管理软件的基础。先进的技术架构不仅可以确保上述应用特性的顺利实现,而且可以防止技术进步所造成的原系统投资的浪费。 6、适合我国企业应用企业管理软件的规模和行业划分。对我国企业来说,企业规模的不同、行业特点的不同、企业管理的不同要求,决定了企业管理软件的规模差异。 四、结束语 企业管理信息化作为一项复杂的系统工程,经济、实用是企业管理信息化建设的基本原则。管理软件不仅应充分目前先进的计算机软硬件及相关技术、现代企业管理理论和技术的发展方向,同时还应该考虑满足当前及将来企业各个层次、各个环节的管理需求。满足用户需求的技术是最好的技术,满足用户需求的企业管理软件是最好的管理软件。管理软件系统作为以现代信息技术为依托的一种先进管理思想、管理模式,需要实现一种“人尽其能,物尽其用,财尽其值”的管理目标。适合我国企业应用的企业管理软件必须适合不同行业的管理特点,满足用户管理上的个性化的需求。 管理软件论文:关税电算化管理软件操作方法 国家税务总局和大连市国家税务局于1995年联合开发了适用于外贸出口企业的出口退税计算机管理系统,经过试点,于1999年逐步向全国推广应用。有条件的税务机关又在全国统一软件的基础上,结合本地的出口退税的实际情况,自行完善或开发了部分管理功能,适用于不同层次的退税管理需要。2000年开始实施的“金税工程”,其软件系统更加完善。我们现将适用于外贸进出口企业的出口退税软件操作系统中的退税申报系统介绍如下,仅供参考之用。 一、出口退税申报流程 外贸进出口企业在进行出口退税时,其申报退税的程序是: (一)收集、装订退税资料及填报电子申报表格 外贸进出口企业办税员按照税务机关的规定,收集并装订出口退税货物进口凭证和出口凭证,并分别填写进货凭证和出口凭证及汇总凭证的电子申报所需表格。 (二)退税信息采取(亦称初次录入) 将电子申报表格中的有关信息利用电子计算机申报系统输入到计算机的硬盘中。 (三)初次(预)申报 将录入的信息通过操作系统进行汇总、计算、打印、存储等,生成正式申报软盘,输出有关信息,形成出口退税稽核申请资料。 (四)稽核准备(亦称二次录入) 根据退税机关的审核,企业进一步修改和完善申报资料和信息,生成正式申报软盘,输出有关信息,形成出口退税稽核申请资料。 (五)申请稽核 将正式申报的软盘和退税资料向主管出口退税稽核的外经贸部门申请稽核。 (六)出口退税稽核 主管出口退税稽核的外经贸部门利用出口退税计算机管理系统中的稽核子系统,对企业出口退税的退税资料进行全面的稽核。 (七)正式申报 企业将已经过外经贸部门稽核过的退税软盘和退税资料向退税部门进行二次(再次)申报。 (八)退税审核 税务机关利用出口退税管理系统中的审核子系统,并根据其信息对企业二次申请的资料和信息进行电子对审。 (九)打印收入退还书 退税机关根据管理系统中的退税管理子系统输出的退税信息,形成收入退还书资料,并按规定送当地国库处办理退库手续。 二、出口退税申报子系统的操作方法 (一)系统数据指标说明 1.出口退税进货凭证指标说明 1)企业代码:长度10位,出口企业的海关编码,印在报单的左上方位置,企业可录入代码,也可录入拼音索引。 2)企业名称:长度30位,出口企业全称,由代码库管理人员在企业办理出口退税登记时,在企业代码库中录入,由企业代码带出。 3)部门代码:长度2位,凡需分部门核算的企业应该录入,不选择分部门核算的企业可不必录入。 4)计退税方法:长度1位,出口退税计算的方法,外贸企业选择“1”,表示外贸出口退税的加权平均单价法,在企业代码库中录入,由企业代码带出。 5)企业类型:长度1位,外贸企业选择“1”,在企业代码库中录入,由企业代码带出。 6)接单号:长度7位,申报年月各占2位,共占4位,流水号(退税申报资料编号)占3位。 7)序号:长度4位,以出口企业为例,每月从0001开始,不断号,不重号,但其序号与出口凭证的序号排列无关。 8)进货凭证号:长度18位,增值税专用发票上左、右上角分别占用10位和8位,增值税专用税票或其分割单号和项号分别11位和2位。录入时,前满后空。 出口转内销证明加“nx”,进口海关代征增值税完税凭证号前加“hg”,上年结转凭证号前加“jz”,普通发票号前加“pt”(限12种特种退税商品),对非专用发票和税票类的数据,系统不做类似本身检测。 9)开票日期:长度8位,年月日各占2位,前满后空。 10)供货方税务登记号:长度15位,按增值税专用发票上的供货方税务登记号录入。 11)商品代码:长度10位,海关在出口货物报关单上打印的对出口商品管理的分类编码,国家税务总局下发的《出口退税工作手册》中可以查找。录入时,没有使用商品扩展码的,按原代码录入,有使用商品扩展码的,按10位录入,也可按系统规定的“f2”功能健带出。 12)商品名称:长度20位,商品代码由代码库管理员录入,由商品代码带出。 13)单位:长度8位,由商品代码带出,需要使用与原计量单位不一致的计量单位,可以采取追加商品扩展码来实现。进货凭证录入的计量单位必须与出口凭证录入的计量单位相一致。当进货凭证上的单位与报关单上的单位不一致时,应折算成一致单位,不能折算的,以追加商品扩展码方式来改变,但应保持企业在一个年度内出口同种商品都以该扩展码所对应的计量单位申报退税。 14)数量:长度15位,小数位4位,进货数量须与计量单位相对应,当录入的数量可能与进货凭证上的数量不一致时,以该商品代码计量单位进行换算,使其一致。 15)计税金额:长度12位,小数位2位。 16)法定征税率:长度5位,小数位2位。 17)征税率:长度5位,小数位2位。 18)实缴税额:长度12位,小数位2位。数字由系统自动生成,若自动生成计算的税额与纸介质不符,经确认单位有效后以单证数据为准。 19)退税率:长度5位,小数位2位,由代码库带出,若代码对应的税率有两个,系统将从低选择,若要选择较高类的税率,应选用商品扩展码,特殊情况可人工修改。 20)可退税额:长度12位,小数位2位,由系统自动生成。 21)抵扣税额:长度13位,小数位2位,录入外贸出口企业当期从事进料加工贸易申报退税时税务机关核准的进料加工应抵扣的税额。 22)调整标识:长度1位,一般为空,若有调整项,置“1”。 23)备注:长度10位,可录入数字和字符作标志并与其他命令结合对系统作控制。 24)标识:长度1位,录入时,为空的表示一次录入,置“2”的表示二次录入。审核时,此项为空时表示该条信息未审核,为“r”时表示该条信息审核通过,为“e”时表示该条信息不严重错误,为“w”时表示该条信息为警告性错误,为“p”时表示的是人工挑选过。其中“r”“e”“w”不需录入,在审核时由系统自动生成:“p”在“设置标志”中生成。 25)系统保留标识:长度1位,为空时,表示一般数据,为“1”时表示被冲申报区数据,为“2”时表示被冲历史区数。 2.增值税出口凭证指标说明 1)企业代码:长度10位,出口企业的海关编码,印在报单的左上方位置,企业可录入代码,也可录入拼音索引。 2)企业名称:长度30位,出口企业全称,由代码库管理人员在企业办理出口退税登记时,在企业代码库中录入,由企业代码带出。 3)部门代码:长度2位,凡需分部门核算的企业应该录入,不选择分部门核算的企业可不必录入。 4)计退税方法:长度1位,出口退税计算的方法,外贸企业选择“1”,表示外贸出口退税的加权平均单价法,在企业代码库中录入,由企业代码带出。 5)企业类型:长度1位,外贸企业选择“1”,在企业代码库中录入,由企业代码带出。 6)贸易性质:长度1位,“1”代表一般贸易:“2”代表进料加工:“3”代表补偿贸易。 7)接单号:长度7位,申报年月各占2位,共占4位,流水号(退税申报资料编号)占3位。 8)申报日期:长度8位,年月日各占2位,前满后空。 9)序号:长度4位,以出口企业为例,每月从0001开始,不断号,不重号,但其序号与出口凭证的序号排列无关。 10)出口发票号:长度14位,按企业出口发票上的号码录入,使用数字编号,不使用汉字编号。 11)记销售账日期:长度8位,年月日各占2位共占6位,表明出口企业出口货物在财务上作销售的日期。 12)报关单号:长度12位,报关单号和条数号分别占9位和3位;若报关单号码为12位,应去掉前3位,再录入后9位号码和条数号;若报关单号码只有8位数,按报关单号码8位十分关号码2位十条数号2位的方式录入或按前面加“0”录入后再录入8位报关单号和3位条数号方式录入;若报关单号编码不规范,可在“数据查询”中的“历史参考数据”中的“海关数据”通过快速索引“s”键或组合条件“l”键查询。 13)报关单货物离境日期:长度8位,以报关单上海关放行货物的日期为准,年月日各占2位,共占6位。 14)出口美元数:长度13位,小数位2位,录入出口美元数,不是美元的应由企业折算。 15)核销单号:长度10位,外汇管理局代码2位,其出具的核销单号码7位,前满后空。 16)商品代码:长度10位,海关在出口货物报关单上打印的对出口商品管理的分类编码,国家税务总局下发的《出口退税工作手册》中可以查找。录入时,没有使用商品扩展码的,按原代码录入,有使用商品扩展码的,按10位录入,也可按系统规定的“f2”功能健带出。 17)商品名称:长度20位,商品代码由代码库管理员录入,由商品代码带出。 18)单位:长度8位,由商品代码带出,需要使用与原计量单位不一致的计量单位,可以采取追加商品扩展码来实现。进货凭证录入的计量单位必须与出口凭证录入的计量单位相一致。当进货凭证上的单位与报关单上的单位不一致时,应折算成一致单位,不能折算的,以追加商品扩展码方式来改变,但应保持企业在一个年度内出口同种商品都以该扩展码所对应的计量单位申报退税。 19)出口数量:长度15位,小数值4位,录入出口货物的数量。 20)实退税额数:长度15位,小数位4位,由系统审核时自动生成,不需录入。 21)平均单价:长度15位,小数位4位,系统根据平均单价公式自动生成。 公式为: 平均单价=(上期进货金额+本期发生金额+释放出口金额)/(上期进货数量节余+本期发生数量+释放出口数量) 22)出口进货金额:长度13位,小数位2位,由系统根据公式自动生成。计算公式为: 出口进货金额=实退税数量×平均单价 23)退税率:长度6位,小数位3位。 24)可退税税额:长度13位,小数位2位。由系统根据公式自动生成。计算公式为: 可退税税额=出口进货金额×退税率 25)出口货物证明:长度12位,按证明上的号码录入,不够位时,前满后空, 26)远期收汇证明:长度12位,按外汇管理局出具的远期收汇证明上的编号录入,前满后空。 27)备注:长度10位,可录入数字和字符作标志并与其他命令结合对系统作控制。 28)调整标识:长度1位,一般为空,若有调整项,置“1”。 29)标识:长度1位,录入时,为空的表示一次录入,置“2”的表示二次录入。审核时,此项为空时表示该条信息未审核,为“r”时表示该条信息审核通过,为“e”时表示该条信息不严重错误,为“w”时表示该条信息为警告性错误,为“p”时表示的是人工挑选过。其中“r”e“w”不需录入,在审核时由系统自动生成:“p”在“设置标志”中生成。 30)基本审核标识:审核未通过时或无进货时为空,审核通过或有进货时为“r”。 31)系统保留标识:长度1位,为空时,表示一般数据,为“1”时表示被冲申报区数据,为“2”时表示被冲历史区数。 32)转换标识:长度1位,为空时表示未转换。 3.进货凭证汇总信息指标说明 1)企业代码:长度10位,出口企业的海关编码,印在报单的左上方位置,企业可录入代码,也可录入拼音索引。 2)企业名称:长度30位,出口企业全称,由代码库管理人员在企业办理出口退税登记时,在企业代码库中录入,由企业代码带出。 3)计退税方法:长度l位,出口退税计算的方法,外贸企业选择“1”,表示外贸出口退税的加权平均单价法,在企业代码库中录入,由企业代码带出。 4)申报日期:长度8位,年月日各占2位,前满后空。 5)审核时间:长度8位,年月日各占2位,前满后空。 6)部门代码:长度2位,凡需分部门核算的企业应该录入,不选择分部门核算的企业可不必录入。 7)商品代码:长度10位,海关在出口货物报关单上打印的对出口商品管理的分类编码,国家税务总局下发的《出口退税工作手册》中可以查找。录入时,没有使用商品扩展码的,按原代码录入,有使用商品扩展码的,按10位录入,也可按系统规定的“f2”功能健带出。 8)商品名称:长度20位,商品代码由代码库管理员录入,由商品代码带出。 9)单位:长度8位,由商品代码带出,需要使用与原计量单位不一致的计量单位,可以采取追加商品扩展码来实现。进货凭证录入的计量单位必须与出口凭证录入的计量单位相一致。当进货凭证上的单位与报关单上的单位不一致时,应折算成一致单位,不能折算的,以追加商品扩展码方式来改变,但应保持企业在一个年度内出口同种商品都以该扩展码所对应的计量单位申报退税。 10)上期节余数量:长度15位,小数位4位。 11)上期节余金额:长度13位,小数位2位。 12)上期节余应退税额:长度13位,小数位2位。 13)本期发生数量:长度15位,小数位4位。 14)本期发生金额:长度13位,小数位2位。 15)本期发生应退税额:长度13位,小数位2位。 16)释放出口数量:长度15位,小数位4位。 17)释放出口金额:长度13位,小数位2位。 18)释放出口应退税额:长度13位,小数位2位。 19)平均单价:长度15位,小数位4位,系统根据平均单价公式自动生成。 公式为: 平均单价=(上期进货金额+本期发生金额+释放出口金额)/(上期进货数量节余+本期发生数量+释放出口数量) 或: 平均单价=(上期进货节余金额+本期进货金额)/上期进货节余数量 20)平均退税率:长度6位,小数位3位,系统根据平均退税率公式自动生成。 公式为: 平均退税率=(上期节余应退金额+本期应退税金额+释放出口应退金额)/(上期节余金额+本期发生金额+释放出口金额) 或: 平均退税率=(总税额-已占用税额)/(总金额-已占用金额) 21)本次占用数量:长度15位,小数位4位。 22)本次占用金额:长度13位,小数位2位。 23)本次占用应退税额:长度13位,小数位2位。 24)剩余数量:长度15位,小数位4位。 25)剩余金额:长度13位,小数位2位。 26)剩余应退税额:长度13位,小数位2位。 27)标识:长度2位,进货汇总为“e”的,不参与退税计算;为“r”的,表示机审通过;为“p”的,人工挑选过;综合审核中为“e”的,表示错误。 (二)申报子系统软件运行环境及安装说明 1.部分运行环境 1)硬件环境:主机,486及486以上档次的微机;内存8m及以上;显示器,vga;i/q设备:宽行打印机。 2)软件环境:ms-dos6.0及以上;config\dos\基本配置应包括: device=c:\dos\himen.sys device=c:\dos\emm486.exe dos=high,umb files=60 butters=20 3)汉字操作系统如联想汉字系统税务版,希望汉字系统等。应用数据库管理系统为: foxpro for dos v2.5 2.软件安装及进入系统 1)启动计算机在根目录状态下; 2)将退税申报子系统的软盘插入驱动器(a或b); 3)键入a或b:ts-sb5 4)启动汉字系统和打印机程序; 5)进入ts\ts-sb; 6)输入口令并按回车键,系统口令初始值是“0”; 7)输入“本期统计日期”并按回车键; 8)如果是第一次安装,应对系统初始化工作,操作方法如下: ①光条移动到“系统维护”的系统初始化功能项; ②键入“yes”,按回车键确认,其他输入不执行该项功能,执行该项功能时,系统自动清理数据库并重新建立索引; ③按前述方法重新进入系统。 (三)基础数据采集 1.将光标移到“基础数据采集”下的“增值税进项凭证”按回车键。 2.按a键追加信息,将进货凭证有关数据录入。录入过程中,部门代码,部门名称可不填,直接按回车跳过。一条信息录完后,屏幕下方有[确认]、[修改]、[确认并继续追加]的提示: ①[确认]:确认本条信息的录入; ②[修改]:修改本条信息的内容; ③[确认并继续追加]:确认本条信息,并追加录入下一条信息; ④若对录入的信息作删除处理,应按f5键设置删除标志“*”,注意:如此删除,只是作逻辑上的删除,并没有作物理删除;可按[d]键,显示“删除”对话框,在删除了“*”标志后,对其才能作物理删除。 3.将光标移到“增值税待申报明细”按回车键,录入出口凭证信息。 4.根据有关规则将出口发票、海关报关单、外汇核销单、出口货物证明、远期收汇证明等数据录入,按“esc”键退出。 5.二次录入: ①光条移到“二次录入增值税进货凭证”项并按回车键。 ②进入“二次录入”对话框后按“x”键,进行数据复核和二次录入,如果二次录入的数据与原数据内容不一致,在屏幕下方将显示原数据并有响声,经检查若是二次录入的错误,则直接更改;若是原录入的数据有误,可不修改数据,在本条数据二次录入完毕确认后,以二次录入的数据为准。已作二次录入的数据,系统自动将二次录入的标志置为“2”。然后按“esc”键退出。 ③光条移到“二次录入增值税待申报明细”对出口凭证信息进行二次录入。 6.如果申报退税出口货物的消费税,则还需录入消费税退税申报的有关凭证,其中,消费税申报明细不需录入,系统根据增值税申报明细自动生成。光条移到“消费税专用税票”按回车键,录入确认后再按上述方法做二次录入。 7.内部数据的传递: 对于数据量大的企业或分部门核算的企业,如果企业内部使用一台以上的计算机录入,可通过“内部数据传递”汇总到一台计算机上作数据处理,统一申报出口退税。 操作方法如下: ①生成内部传递数据: 在“基础数据采取”的“内部数据传递”菜单中按回车键;选择“2”生成传递数据;用“tab”键将光条移到“drive”处按回车键,并使用上下光标移动键,选择相适应的驱动器“a”或“b”盘符,并按回车健;用“tab”键将光条移到“select” 处回车,按“esc”健并选择“中止”提示确认退出,完成生成。 ②读入内部传递数据: 在“基础数据采取”的“内部数据传递”菜单中按回车键;选择“1”传递数据;用“tab”键将光条移到“drive”处按回车键,并使用上下光标移动键,选择相适应的驱动器“a”或“b”盘符,并按回车健;用“tab”键将光条移到“select”处回车,按“esc”健并选择“中止”退出,完成读入。 (四)数据加工 1.汇总进货凭证 系统接商品分类汇总增值税专用发票并据此计算每种商品的总数量、总计税金额、总税额、平均单价、平均退税率,然后写到增值税专用发票汇总库中,系统自动做汇总计算,在屏幕右上角出现提示。有关平均单价、平均退税率见前述。若平均退税率超出合理上下限,则系统将设置错误标志“e”,应对错误进行查询并更正后重新汇总。 汇总数据正确,机审通过,则标志为“r”。查询时,将光标移到“数据加工处理”的“汇总并查询进货凭证”菜单并按回车键,再选择“汇总进货凭证”项按回车健。执行完毕后,屏幕右上方显示“完毕”提示。 2.基本申报资格检查 在基本申报资格检查过程中,若出现下列情况中的一种,数据则为错误数据: 1)无报关单或无出口货物证明; 2)未核销且无远期收汇证明; 3)商品的退税率为零; 4)禁营商品; 5)无权经营此产品; 6)无此商品码; 7)进货金额和退税金额均为零。 对符合申报条件的数据,置申报标志“s”,对不符合申报条件的数据,置错误标志“e”,并在屏幕上显示检查结果。 在“数据加工处理”的“基本申报资格审查”菜单下按回车键,再选择“检查所有数据”。运行完毕后,屏幕会显示检查中发现错误记录的条数和检查已通过的记录条数;然后按“esc”键退出。 3.数据调整 1)检查出错误数据查询调整。查询所有标志“e”数据,并可进行修改,但修改后须重新作资格检查。按“x”键,进入外加功能; 检查当前记录,屏幕提示当前记录的错误原因; 设置当前记录可申报标志:此项用来人为设置可申报标志“p”,即机审未符合申报条件,人为可给其加上申报标志,强行使其通过申报资格检查。 2)可申报数据查询调整。对申报明细库中标志为“s”和“p”的数据进行调整,按“x”键,进入外加功能; 取消当前记录的可申报标志和取消所有可查询数据的可申报标志等。 3)不申报数据查询的调整,即对申报标志为空的数据进行调整。检查当前数据,符合条件的数据标志为“s”;设置当前记录的可申报标志为“p”等。 4.进货足额检查 通过“基本申报资格审查”的退税申报数据,系统按商品逐笔检查该商品申报数据是否大于该商品结余数据。 若大于,则将该笔申报的可申报标志清空,生成本次申报时只有进货足额的商品生成申报,不足额的商品不作申报。需做进货足额检查的做出以下处理: 1)设定检查标志: 在“系统配置”的“系统参数设置与修改”中,将进货足额检查标志置为“t”,然后系统重新进入。 2)进行检查: 在“基本申报资料检查”菜单下选择“进货足额检查”并按回车键,系统作检查后显示进货不足的数据,进货足额时检查结果为空,按“esc”键;如果不作进货足额检查,在上述操作中置标志“f”。 (五)生成本次申报 将通过基本申报资格检查并已置标志“s”或“p”的申报数据,从待申报状态转本次申报。 1.在“数据加工处理”下选择“生成本次增值税申报”项并按回车键; 2.确认申报年月:若屏幕显示申报年月适合当前申报年月,按[确认]后数据转到本次退税申报;否则,须重新进入申报系统,输入合适的申报期,并重作本步骤操作; 3.若生成申报后,又输入了新的数据,且欲对其进行调整,可撤销本次申报,将申报数据送回待申报,调整后重新生成申报。操作方法是: 在“统计上报”的“查询本次退税申报数据”下选择“撤销本次申报”按回车键确认。若不撤销申报。再作“生成本次增值税申报”或“生成本次消费税申报”,系统提示“本次申报库已有申报数据,无法生成”字句; 4.计算本次申报:在“查询本次退税申报数据”下按回车键,选择“计算本次退税”回车,即可计算出本次退税的增值税和消费税申报金额。按“esc”键退出。 (六)打印申报表 1.打印机的配置和打印 打印机配置确定打印输出方向和打印驱动程序,在系统安装和启动时,应根据需要,选择适当的打印机驱动程序进行安装和配置。若配置不变,每次打印不必重设。 打印报表时,可不经过选择打印项目、打印表格,就直接打印。因为对每一个数据库来说,其报表打印参数都有缺省值。若在打印机配置中选择输出至打印机,则系统开始打印;若在打印机配置中选择输出至文件,则系统将打印内容输出至指定的文件,并显示该文件,用户可以浏览。在打印过程中,用户可以按“esc”键中止打印,此时系统将返回到打印以前的状态。选择[确认]退出后,系统将返回至上一级菜单,用户可根据需要重新进入或修改等选择。 2.增值税进货凭证申报表 1)在“数据统计上报”中的“查询本次退税申报数据”按回车键,选择“增值税专用发票”功能项按回车键; 2)按“t”键; 3)选择“打印报表”模块,进入申报表打印对话框,选择打印固定报表,打印出口申报表。 3.退税明细申报表 1)在“数据统计上报”中的“查询本次退税申报数据”按回车键,选择“增值税退税明细”按回车键; 2)按“t”键; 3)选择“打印报表”模块,进入申报表打印对话框,选择打印固定报表,打印出口申报表。 (七)生成申报软盘 1.选择“数据统计上报”菜单下的“生成退税申报软盘”按回车,进入文件选择对话框; 2.插入软盘到相应的a或b驱动器,按“tab”健将光条移到“drive”,按回车键; 3.按“tab”键,将光条移到“select”,回车确认; 4.系统自动将申报数据拷贝到软盘上。 已生成申报软盘的数据,可通过“查询增值税已申报数据”及“查询消费税已申报数据”进行查询,并将税务机关审核通过的数据转入已退税数据,对审核未通过的删除或转待申报调整后重新申报。 我们在实际工作中特别应注意的是出口企业持申报软盘向外经贸主管部门申请出口退税稽核前及向税务机关申请出口退税审核前,应该进行防病毒处理。 管理软件论文:试论网络数据信息管理软件中间层设计 【论文关键词】xml 中间件 节点 【论文摘要】基于xml的新一代互联网网管已经成为当今网络软件中间件管理发展的新趋势,越来越多的设备、服务及平台都宣称支持xml技术。它是一种数据交换格式,允许在不同的系统或应用程序之间交换数据,通过一种网络软件中间件化的处理机构来遍历数据,每个网络软件中间件节点存储或处理数据并且将结果传输给相邻的节点。 xml是一种使用标记来标记内容以传输信息的简单方法。标记用于界定内容,而xml的语法允许我们自行定义任意复杂度的结构。它是一组用于设计数据格式和结构的规则和方法,易于生成便于不同的计算机和应用程序读取的数据文件。这使得xml具有以下特性: (1)通过使用可扩充标记集提供文档内容的更准确说明 (2)可用标准化语法来验证文档内容 (3)使用户与应用程序之间文件交换更容易 (4)支持高级搜索 (5)将文档结构与内容分开,易于用不同形式表现相同内容 (6)xml改进用户响应、网络软件中间件负载和服务器负载 (7)xml支持unicode xml还有其他许多优点,比如它有利于不同系统之间的信息交流,完全可以充当网际语言,并有希望成为数据和文档交换的标准机制。 由于xml具有以上诸多特性,使得它的实际应用范围十分广泛。采用基于xml的网络软件中间件管理技术采用xml语言对需交换的数据进行编码,为网络软件中间件管理中复杂数据的传输提供了一个极佳的机制。xml文档的分层结构可以对网络软件中间件管理应用中的管理者-模式提供良好的映射,通过xslt(extensible stylesheet language transformations)样式表可以对xml数据进行各种格式的重构和转换,加上xml已经被广泛应用于其它领域,各种免费和商业的xml开发工具发展异常迅速,因此使用xml来定义管理信息模式和处理管理信息十分便利。 1.插件技术设计 我们已经习惯于一个人独立进行软件开发,每个人都使用自己的风格进行程序设计,但随着工程项目变大或者是对时间要求比较紧时,就需要几个人,十几个人,甚至是上百个人协作进行软件开发与设计,这时一个比较棘手的问题就是如何将若干人所编写的软件代码(有可能是链接库、组件)进行无缝地集成,纵然进行源代码集成是个比较传统也比较成熟的方式,适当使用链接库或组件,也可减少源代码的泄露,但经常的情况是每一次的程序集成和代码维护都需要重新编译与链接源代码和重新新软件,这种工作有时又是非常麻烦的。那么就有疑问产生,能不能有一种方法将需要开发的目标软件分为若干功能部件,各部件之间遵循着标准接口规定,这样在各个部件按要求开发之后,在进行整个软件集成时只是将需要的部件进行组装,而不是集成各源代码或链接库进行编译与链接,需要新的功能组件时也是按规定开发,之后只进行组装软件就可以使用,这就是使用一种二进制的软件集成方法。这就是平台+插件的软件设计方法。 1.1 软件插件中间件技术流程 软件插件技术是现代软件设计思想的体现,著名的photoshop、word、excel都或多或少的利用了插件技术。插件技术改变了以前的单窗体、多窗体界面,实现了不同功能模块的无缝结合。插件技术更易于造就一个庞大复杂的软件。各用户软件领域所应用的插件技术可分为三种类型: 一是类似批命令的简单插件(文本插件)。事实上这种插件的自由度非常低。使用这种方法的软件有win hacker等,运行这种插件后,会一步步要求用户进行选择/输入,最后根据用户的输入来执行一系列事先定义好的操作。这种插件一般是文本文件。功能比较单一,可扩展性极小。优点是插件做起来非常方便,即使是对程序设计了解不多的人也可以制作。如winamp的skin。 二是使用一种特殊的脚本语言来实现的插件(脚本插件)。这种插件比较难写,需要软件开发者自己制作一个程序解释内核。比如微软惹了很多麻烦的宏就是这种类型的。microsoft office就提供了开发者用于扩展辅助功能的内置vbscript(vba)。这种方法的优点在于无需使用其它工具来制作插件,软件本身就可以实现,普 遍出现于各种办公自动化软件中。 三是利用已有的程序开发环境来制作插件(程序插件)。例如photoshop等软件使用的方法。使用这种方法的软件在程序主体中建立了多个自定义的接口,使插件能够自由访问程序中的各种资源。这种插件的优势在于自由度极大,可以无限发挥插件开发者的创意,这种插件是狭义范围的插件,也是真正意义上的插件。而这种插件机制的编写相对复杂,对于插件接口之间的协调比较困难,插件的开发也需要专业的程序员才能进行。 1.2 插件技术在中间件系统的应用模式 网络中间件管理系统的多处设计都使用了插件技术,比如在:数据采集方面即使用了java script,也用了程序插件;在配置管理方面使用了简单插件;在故障管理的处理行为方面使用了程序插件。 总之,管理平台本身已实现一种通用的平台+插件软件开发的框架模式,通过实践证明这种思路和设计方法可行,可以应用到具体软件开发上。通过这种方式可以很好地解决软件合作开发与集成问题,对有版本级别的软件开发更为有用。高级版的软件安装有高级版的插件,低级版的软件不安装高级版的插件,这就给程序分发和开发带来极大的便利。对于有系列化功能的软件,系列化功能由插件实现。 flow技术设计 netflow技术首先被用于网络软件中间件设备对数据交换进行加速,并可同步实现对高速转发的ip数据流(flow)进行测量和统计。经过多年的技术演进,netflow原来用于数据交换加速的功能已经逐步由网络软件中间件设备中的专用asic芯片实现,而对流经网络软件中间件设备的ip数据流进行测量和统计的功能也已更加成熟,并成为了当今互联网领域公认的最主要的ip/mpls流量分析,统计和计费行业标准。netflow技术能对ip/mpls网络软件中间件的通信流量进行详细的行为模式分析和计量,并提供网络软件中间件运行的详细统计数据。 为对运营商网络软件中间件中不同类型的业务流进行准确的流量和流向分析与计量,首先需要对网络软件中间件中传输的各种类型数据包进行区分。由于ip网络软件中间件的非面向连接特性,网络软件中间件中不同类型业务的通信可能是任意一台终端设备向另一台终端设备发送的一组ip数据包,这组数据包实际上就构成了运营商网络软件中间件中某种业务的一个数据流(flow)。如果管理系统能对全网传送的所有数据流进行区分,准确记录传送时间、传送方向和数据流的大小,就可以对运营商全网所有业务流的流量和流向进行分析和统计。 由于netflow技术支持所有类型的网络软件中间件端口类型,所以每台内置有netflow功能的网络软件中间件设备都可以作为网络软件中间件中一台能够测量、采集和输出网络软件中间件流量和流向管理信息的数据采集器。而且因为netflow实现的管理功能是由网络软件中间件设备本身完成的,所以运营商无需购买额外的硬件设备,也无需为安装这些硬件设备占用宝贵的网络软件中间件端口或改变网络软件中间件链路的连接关系。这些都将转化成对网络软件中间件运营成本的大幅度降低,对运营商级的大型网络软件中间件优势尤其明显。 3.业务流程中间件技术 业务流程技术从出现发展到现在,已逐渐发挥越来越重要的作用。它已成为信息化建设方案中必不可少的内容之一。从简单的办公自动化系统的开发,到企业erp系统的实施,再到为提高企业运营效率而出现的bpr及bpm系统,工作流技术都发挥了相当重要的甚至是关键的作用,工作流技术为实现应用层而的集成提供了有力的支撑。 从故障维护的角度来看,使用目标、业务功能、限制等来代替流程所需资源信息对故障流程进行描述是非常重要的。在流程设计过程中,需要用户与流程设计人员之间经常进行交流,以保证流程管理的顺利实施。 4.总结 业务流程技术为故障流程维护提供了一种有效的决策辅助方法,保证流程的灵活性和一致性,而不必考虑更多的细节问题。能够迅速使流程调整通过流程概念和流程目标等形式付诸实施,并且这些实施几乎可以是实时进行。能够从领导管理的角度对任何业务流程的调整进行分析和评价,找出流程中的瓶颈点。 管理软件论文:项目管理软件的开发应用 论文关键词:项目管理 类 数据库 论文摘要:软件项目管理有利于将程序员的个人开发能力转化成企业的开发能力。而且,软件工程强调软件开发过程的工程性,把软件的设计、开发、测试、维护和管理工作当做一项系统工程来抓,表明软件不仅仅是编写代码的工作,而需要各个学科的综合应用,才能形成真正的产业化。 随着信息技术的飞速发展,软件产品的规模也越来越庞大。我们知道,软件开发是一个带有一定风险的工作,为了把风险降到最低,项目经理一定要进行严格的项目管理。软件项目管理就是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。本项目就是试图解决中国软件公司的管理实际问题而开发的软件(协同平台) 1应用技术 1.1 sqlserver2000 microsoftsqlserver2000是新一代大型电子商务、数据仓库和数据解决方案。sqlserver2000在分级服务、数据转换服务、数据仓库等方面引入大量新特性。它为web标准提供了强劲的支持,并为系统管理和调整提供了许多有力的工具。在网络组件的顶部添加了服务特有的中介组件,如开放式数据库连接(opendatabaseconnectivity,odbc)能使不同客户机进行相互连接,而不要求变更服务器及其他现存客户应用程序。 2.2 ado microsoft activex dataobjects(ado)使得客户端应用程序能够通过任何ole.db提供者来访问和操作数据库服务器中的数据。 ado使您能够编写应用程序以通过ole.db提供者访问和操作数据库服务器中的数据。ado最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ado支持建立客户端/服务器和基于web的应用程序的关键功能。ado的另一个功能是“远程数据访问”(rds),能够通过一个来回的传输将数据从服务器移动到客户端应用程序或web页中,然后在客户端对数据进行操作,最后将更新数据返回服务器。 基本的ado编程模型ado提供执行以下操作的方式: (1)连接到数据源。同时,可确定对数据源的所有更改是否已成功或没有发生。 (2)指定访问数据源的命令,同时可带变量参数,或优化执行。 (3)执行命令。 (4)如果这个命令使数据按表中的行的形式返回,则将这些行存储在易于检查、操作或更改的缓存中。 (5)适当情况下,可使用缓存行的更改内容来更新数据源。 (6)提供常规方法检测错误(通常由建立连接或执行命令造成)。 2.3 vb 6.0 vb具有强大的数据库操作功能,提供了包含数据管理,数据控件以及ado等功能强大的工具,利用vb能够开弄发各种数据库应用百系统,建立多种数据库,并可司以管理、维护和使便用这些数致倨据. 2实现 3.1项目管理流程 3.2协同平台的开发环境 软件环境 操作系统:windows2000,windowsnt 数据库服务器:sqlserver2000,access2000 系统开发软件:visualbasic6.0 版本控制系统:visualsourcesafe6.0 3.3设计、分析需求和实现 当完成第一阶段之后,就要对整个软件的大体架构进行简单设计,包括其中所需要的模块,功能、包括哪能些数据、数据类型、各种数据之间的关联等。再对第一阶段所取得的资料进行详细、具体的分析,对设计进行进一步的完善。把所有的资料和分析编写成为文档。根据文档建立数据库。建立各模块的模板和界面,方便在进行开发时作为参考。还要编写好各模块共同使用的函数,如:数据的联结和读取数据等。每个开发人员都要编写自己的负责部分的文档,而且还要作好个人的计划书。开发人员之间还要相互协作与及要沟通好,不能单独的进行开发。这样会造成不必要的重复的工作,或使得各部分之间失去关联。 为科学管理项目任务工作,加强工作信息交流与跟踪任务进度,及时准确了解任务进程,以保证项目质量及按期交付;方便快速统计任务完成情况,计算项目开发成本;合理调配资源使用,提高个人工作质量及效率,以降低项目开发的成本。对客户的需求进行各种调查和进行分析,包括软件开发的过程,其中各开发人员之间所需要共同合作和相互之间的沟通。还要考虑开发的时间和所要的成本,以及所需的人员。进行各个开发阶段的时间预测,以便能很好地控制开发的进程,不能因为管理不力而造成软件不能在既定的时间内完成。 ado[~然有较好的性能。但它编程起来却很复杂,比较麻烦,不是一般的新手所能达到的。那么怎样应用ado呢?经过不断的摸索,方法如下:启动,在模板中选择类库,在名称中输入类库如adoaccess.确定,则进入类库开发环境中,把class1换名为cadoaccess。 在项目菜单中加入引用,选择com页,找到microsoftactionx dataobject20library或更高版本确定。com是microso~为了区分现在的.net,兼容以前的开发方式而设置的,凡是.net之前的组成件都可在com页中可找到。(microso~actionx dataobject20library是microso~提供的ado组件。它极大地方便了数据库的访问,是开发数据库有关软件的最实用的工具之~)在类名上面写上usingsystem;usingadodb;2条引用语句,这里分别是引用system,ado来源。 在类中定义~局部连接对象变量。privateconnectionmcnndb;然后定义连接access数据库的过程.access数据库是microso~开发的本地数据库,用aduseclient指定。它通过microso~.jet.oledb数据访问方式访问数据库,microso~.jet.oledb又有多种版本,其中4.0是最高版本,它能访问access2000,所以这里的数据提供者指定为microsoft.jet.oledb.4.0。指定了本地数据库和提供者后,就可打开一个数据库了,用open方法实现。 我们开发了以下子系统: (1)基本资料子系统: (2)项目计划子系统 (3)业绩考核子系统 (4)后台管理子系统 (5)系统维护子系统 3.4以下为模块功能图 4结论 本文是应香港冠亚软件公司要求开发的一个it项目管理软件,从项目需求,计划,进程,成本,质量,控制等方面进行管理,较好地解决软件公司开发过程中的问题,并已投入试用,经测试:开发时间减少50%,成本减少60%,具有很好的使用价值。该软件同样可适用一般工程项目管理。与国外的project2000相比,简单实用,符合中国公司,但功能不够齐全,尚有改进的地方。 管理软件论文:论项目管理软件PROJECT在设计项目管理中的运用 摘要:本文主要从设计项目计划的制定、计划的应用,以及计划的控制等方面,论述了如何运用project 2007来做好设计项目管理工作。 关键词:项目管理软件;项目管理;运用 项目管理是为了完成一个预定的目标,而对任务和资源进行计划、组织和管理的过程。要在施工中管理好一个项目,就要建立一套行之有效的项目控制系统,就要用到网络计划技术,需要处理大量的数据。实际上,设计项目管理完全靠人工管理一个项目常常会遇到很大的困难,微软新推出的microsoft project 2007是一种强大的项目管理软件,应用了它,就能够系统地、迅速地收集数据,进行分析处理,可以直观地、量化地了解项目的实施情况,便于及时调整。 大多数设计项目都包括:新建计划,项目实施过程中管理(包括进度管理、成本费用管理、资源管理)和完成项目等三个阶段。这三个阶段进行得越成功,成功完成这个项目的概率就越大。笔者下面就如何应用project professional 2007(以下简称project 2007)进行设计项目管理,谈谈自己的一些体会。 1、projeet 2007使用前的环境设置 在进行计划编制前,需先设置好project2007的使用环境。环境设置,一是要根据自己的习惯,二是要根据项目的实际情况。下面介绍几种常用的环境设置项: (1)设置项目摘要信息,在摘要信息中需输入该项目的标题、项目负责人和业主单位等信息。主要是便于打印时显示的信息。操作方法:选中菜单文件一属性一摘要信息。 (2)设置项目的日历,默认从星期日开始。操作方法:选中菜单工具选项日历每周开始于。 (3)设置任务类型,默认为“固定工时”,固定工时的含义是当一项任务分配给一个人做是10天,当增加一人时,则工期自动变为5天。我们的操作习惯应该是人员增加时,原工期一般要求仍不变。所以需选择为“固定工期”。操作方法:选中菜单 工具选项日程默认任务类型。 (4)设置wbs编号,默认无wbs编号,建议设置大纲编号作为wbs编号。操作方法:选中菜单工具选项视图选中显示大纲编号。 (5)设置工作时间,默认是按标准工作日,即周六、周日休息。不但要考虑周六、周日休息,而且考虑到中国的传统节假日(如国庆、五一等)。工作时间一般要根据项目的具体情况确定,如该项目工期比较紧,项目组要求每周六加班,周日休息,那么就需将周六设置为“非默认工作时间”。操作方法:选中菜单工具一更改工作时间一选中对象非默认工作时间。 (6)设置条形图样式,根据自己的习惯,设定关键任务、非关键任务、进度条、里程碑为不同的样式和颜色。操作方法:选中菜单格式条形图样式。 说明:建议环境设置可以设置为一个模板,以提高计划编制的效率。 2、新建项目文件 启动project 2007将自动新建一个空白项目文件“项目1”,为了便于管理,可将其以工程名称保存。新建的文件自动打开一个“开始工作”向导,可以按照它的提示一步一步设置,也可以手工设置。 (1)在项目菜单下选择“项目信息”,打开项目信息对话框。在对话框中的日程排定方法处选定从项目开始之日起。 (2)在开始日期下输入计划开工日期。在project 2007中日程的排定方法是:“从项目开始之日起”,此时开始日期可选,完成日期不可选,工期只能由要求的开工之日向将来顺序排。 3、创建任务及任务排序 用鼠标在甘特视图左侧的工作表的“任务名称”列中选定要添加的任务行,然后输入任务名称,回车或选择其它单元格确定。此时,project 2007会自动为其分配一个工作日的估计工期,并且自动按照开始设定的开工时间排定工期,每个任务的工期可根据实际情况输入所需时间。 任务排序的确定涉及到各任务之间相互关系的识别和说明。任务的执行必须依赖于一定任务的完成,这就是任务的先后依赖关系。按照项目中各任务间逻辑关系的顺序建立相互之间的链接关系。并由管理人员根据实际情况来确定任务排序。 4、设计项目进度的控制 编制施工进度计划,就是确定一个控制工期的计划值,并制定出保证计划实现的有效措施。根据项目内容的分解,找出各组成要素工作的先后顺序,估计出各工作的延续时间之后,就要安排好项目的时间进度。在生产过程中的进度计划会受到各种因素的影响,所以应根据需要对进度进行调整。进度安排要根据实际情况确定。进度安排的方法: (1)关键路径法。关键路径是指机动时间为0的工作,如果延期,会导致总工期延期,需特别关注。 (2)里程碑计划法。为更好的对项目进度进行测量,需设置合理的里程碑点,用于检查阶段性成果的输出,以及实际进度与计划的偏差。 5、资源管理 资源包括人、设备和材料等。在设计项目中通常只有一个就是人力资源计划,也就是我们要计划好每项任务由谁来完成,我们计划的资源能否满足要求。 在project 2007中,首先要建立资源库,具体操作:工具一资源一分配资源。将项目所需人力资源录入,人力资源包括本部门、协作部门等。资源库建立完后,就可采用拖放的方式来对每条任务分配资源。 资源分配完毕后,还要检查资源分配是否超负荷,如资源超负荷过多,则计划很难执行。检查资源超负荷的方法是:要检查哪些资源已超负荷分配了。操作方法:击点左边栏中的“资源工作表”,红色并且标志列中有感叹号的,则为该资源超负荷分配了。需要对该人力资源分配的工作进行调整。 6、成本费用的估计 成本费用估计指的是预估完成项目各工作所需资源的费用的近似值。目前设计项目中考虑的资源主要是人力资源和差旅费用。 在project 2007中,通常采用成本费用估计的方法,采用的方法是“从下到上估计法”,这种技术通常首先估计各个独立工作的费用,然后再汇总从下往上估计出整个项目的总费用,估计相对比较准确。 在project的资源工作表中,首先要输入人力资源的单位价格,人力资源基本单位为:工时。在数据录入时要进行换算,需将每天标价除以8,转换为工时单价。人力单价估计完后,还要对差旅、加班、通信费、办公等其它费用进行单价估计,如差旅费平均每趟多少,加班费平均每次多少等,这些单价要依据项目规模、复杂度和地域等因素确定,还要参照公司财务制度标准(如通信费用报销规定、差旅补贴规定等)。在project2007的差旅、加班费等的单价录入中,类型选择为“材料”。当成本费用估计完成后,一般来说项目的成本便自动计算出来了。 7、输出图表 全部任务输入完成后,要将该进度计划打印出来。由于系统默认的打印格式与通常使用的计划表格式不同,需要进行如下调整: (1)在格式菜单下选择“条形图样式”,打开条形图样式对话框,如:设置“任务”的条形图格式,选定“任务”,在“条形图”选项卡下按照常规头部及尾部均不设置,在“中部”、“形状”里选择细线,在图案里选择实心,在颜色里选择自动,单击“确定”确认,可以看到整个视图中所有的任务条形图已经变成了需要的黑实线样式。 (2)甘特视图中双击列标题,在弹出的“列定义”对话框中,在“标题”里添上需要的文字,如序号等。对不想显示的列,在右键弹出菜单中选择“隐藏列”即可隐藏:若想添加列,在右键弹出菜单中选择“插入列”,在弹出菜单中选择“域名称”中列的类型。全部调整好后打印即可。 至此,一个完整的设计项目进度计划图就完成了。如果对设计项目实施过程中各工序都很熟悉,可以报方便地利用project2007创建项目进度计划,并可随时根据变化进行及时调整。 总之,运用project 2007对设计项目进行管理控制,不仅节省成本,充分利用了资源,还提高了经济效益。 管理软件论文:天心天思管理软件开发的先行者 在管理软件开发行业,广东天心天思软件有限公司无疑是其中一颗灿烂之星。作为一家专注管理软件的开发、销售、咨询服务于一体的软件供货商和企业信息化解决方案的服务商,天心天思软件集团如今已形成在全国拥有十几家研发培训基地和数百家合作伙伴的集团规模。 天心天思软件集团潜心专注管理软件行业已有十余年的历史。在全国拥有十几家研发培训基地和数百家合作伙伴。随着公司业务地不断拓展,以及多年来在管理软件行业积累的实施经验,天心天思逐渐形成了一条覆盖erp、pdm、财务软件、分销系统以及天心天思t.o.k集成办公管理系统等系列的产品线。 依据企业成长路线精心设计的优质产品线组合,是天心天思根据多年的实践经验所开发出的与企业需求相适应的模式。其完全从客户角度出发,充分满足其差异化的需求,其中包括:面向成熟型企业客户的erp产品系列—sunlike-erp、online-erp以及企业家erp、经理人erp;面向初创型和成长型客户的t系列—财本文由论文联盟//收集整理务管理软件t6、精细生产管理软件t8以及集成办公管理软件tok;面向连锁专卖客户的分销产品系列,以及pdm产品数据管理系统等。这样的产品组合模式充分满足了不同规模企业在不同发展阶段的不同管理需求。 作为微软在亚洲地区的重要合作伙伴,及国家《企业信息化erp规范》标准制定者之一,天心天思一直以推广管理软件在企业中的普及应用为己任,以诚信服务为根本,深受广大用户的好评。 值得一提的是,2012年,天心天思了二次开发工具just design。just design软件应用构建平台是采用全新的开发理念设计出的应用软件开发平台和运行平台,从软件设计、开发、测试,到运行、维护、更新等整个产品开发的生命周期全部在同一个平台中实现;通过平台提供的各种功能支持完成产品的定义,无需编码即可完成产品的开发,开创了这一领域的创新先河。 稳定、规范的法人治理结构和内部管理架构;拥有一支在技术研发、市场营销、客户服务、人才培训等方面具有专业功底和丰富经验的高素质管理队伍;年轻、专业化的员工团队,这一切都让天心天思软件集团在管理软件市场中不断开拓进取、锐意创新。 管理软件论文:一种基于Java技术的网络管理软件的设计方案 论文关键词:网络管理 软件体系结构 java xml 论文摘要:提出了基于java技术的网管系统体系结构。这种结构是典型的三层体系结构:客户表示层、中间服务提供层以及数据永久存储层,同时对每层中涉及到的相关技术进行了阐述,并给出了具体的实现方法。 1. 引言 随着web/java技术的成熟及其在internet上的广泛应用,网络管理技术和模式迎来了又一次革命。在网络管理领域,通过web技术(如web服务器,http协议、html和java语言等)来集成网络管理系统,就能够获得可运行于各种平台的简单有效的管理工具。特别是目前人们对计算机网络管理工具的要求已不仅仅局限于集中式管理模式,而要求网络管理工具具有分布计算能力。近几年来随着java、ejb[1]、xml[2]等技术的发展与成熟使人们对网络管理的分布式要求已成为现实。 2. 基于web的网络管理模式 网络管理系统从结构上来说,由两部分组成:管理应用层和为之提供服务的下层结构软件。下层结构软件包括管理信息库(mib)、图形化用户接口(gni)、网络通信接口(nci)。它们通过一组应用编程接口(api)向应用程序提供服务。 2.1基于web的网络管理模式的特点 基于web的网络管理[3]之所以受到广泛关注,是由于具有如下特点: (1)分布性。没有地理位置的限制,适合于分布式网络管理。 (2)跨平台性。网管人员可以从任何平台的任何一台计算机上访问网络,这就解决了由多平台异构而导致的互操作性问题。 (3)成本低。界面更加友好,管理方式更加简单方便,降低了网管成本。 (4)效率高,安全性好。采取瘦客户机/胖服务器模式,大量繁重的计算和存储任务交给web服务器完成,这样提高了管理效率并使用户能更灵活的操作网管系统,同时借助/network/" 网络管理软件的实现 4.1前端与后端服务器数据的交换 位于中间层的前端与后端服务器可以通过xml来实现数据交换。xml是一种标准的数据交换语言,通过利用xml使系统间的数据访问变得更加容易。具体实现可以通过前、后端服务器中的xml解析器来对xml的语法及语义进行具体的分析与提取。通过灵活的配置文件实现了应用的可扩充能力。 4.2客户表示层 通过web客户端可以查看t比特路由器故障告警信息、路由器性能、各种统计图及进行路由器的配置等。通过浏览器,用户可以直接对数据库中不需要的信息进行删除。 客户表示层通过基于浏览器的方式来访问中间服务层,这种访问包括两种方式:一种为基于web的java客户端,另一种是基于web的html客户端。基于web的java客户端与前端服务器采用rmi、corba、socket或http协议进行通信;基于web的html客户端采用http协议实现与前端服务器的通信。这两种基于web方式的客户端是是目前在网络管理中比较流行的方式。 4.3实现中涉及到的java、java相关技术以及xml技术 java、java组件技术以及xml技术为开发t比特路由器网管系统提供了相当丰富的工具支持。 4.3.1xml技术 在现代网络管理中,利用xml技术有利于实现管理信息交换与存储的标准化。例如在网管系统中不同权限的用户所关联的菜单功能是不同的,有些用户只能对系统进行查询,而有些用户除了查询功能外,还有修改功能。这样对不同的用户可以通过xml作为配置文件来进行相应的功能定制,以满足不同用户对系统权限的需求与管理。利用xml作为配置文件,有效地增加了系统的灵活性与扩充性。 4.3.2ejb技术 ejb技术提供了分布式组件模型,这一技术可以使开发人员将精力集中在解决自己业务方面的问题上,而依靠j2ee平台来解决系统级的复杂问题。这种侧重点分离的开发方式有利于快速地开发出具有可扩充的、易于理解的以及高可靠性的应用软件。前端服务器通过利用ejb技术,可以实现许多的高级功能,如可扩充性、事物支持、数据库集成及负载均衡等。 4.3.3java applet技术 java applet是java的小应用程序,以class的形式嵌入到html,通过主页到internet,网络用户访问服务器的applet时,applet就下载到本地,然后在浏览器中由本地java虚拟机解释执行。applet客户端是实现网络实时管理的有效工具。基于swing的applet客户端弥补了纯html客户端与用户互动性差的弱点。 5. 结束语 通过对t比特路由器网管系统的开发,可以抽象并提出现代网络管理系统的多层软件体系结构模型。整个模型的体系结构层次分明,各层完成各自的任务。其中位于中间层的后端服务器完成网络管理的五大功能的核心部分,如故障告警、性能管理等。位于中间层的前端服务器起到连接客户表示层与后端服务器的功能,处理客户端的请求。当客户请求对数据库进行写操作时,直接将这种请求交给后端服务器来处理,通过后端服务器安全认证后,才可以进行相应的操作;当客户请求对数据库进行读操作时,前端服务器可以直接与数据库通信,这样就保证了数据的安全性。通过利用xml技术、java及java相关技术使开发的系统具有较强的可扩充性、安全性以及跨平台性。这种基于web的网络管理方式正是符合现代网络管理的特点与要求,希望这种网管软件体系结构对其它类似软件具有借鉴与参考价值。 管理软件论文:基于RBAC的权限管理软件的开发及应用 现在几乎每台个人电脑上都安装了浏览器,这导致了只要在一个局域网的范围内,如果不做权限限制,每台计算机都能轻易的访问web项目,所以权限管理是web应用项目中关键环节之一。如果不建立权限管理系统,任何“非法用户”都可以轻而易举通过浏览器访问到web应用项目中的所有功能,这将对信息系统的安全造成威胁。因此,应用系统均需要相关的权限管理软件进行权限检测与管理,确保只有经过授权的用户才能正常合法的使用已授权的功能,同时禁止那些未经过授权的非法用户进入系统。 因此,开发一套具有通用性并能克服上述不足的权限管理软件来确保信息系统的信息安全是十分必要作。本文基于b/s架构,设计开发了一套权限管理软件。该软件用户体验性强,客户端无需下载控件,能同时支持多种数据库;实现了按一定的组织结构访问网页,确保信息系统安全。 1 软件设计 1.1软件整体设计 权限管理软件设计是基于角色的访问控制(role-based access control,简称rbac)设计模型。rbac是美国nist于20世纪90年代初提出了一种基于角色的访问控制模型。其核心思想是:不是直接将用户和权限进行关联,而是引入“角色”概念,将代表行为的权限和角色相互关联,角色与用户相互关联,用户和权限通过角色而间接关联。 在软件具体设计中,首先通过系统的域验证来保证用户合法性;域验证通过后,从数据库中读取该用户具备哪种角色,然后根据用户的角色,来确定该用户可以访问的页面;最后将这些页面生成菜单,从而实现权限管理的功能。 1.2软件体系架构的设计 在软件体系架构设计中,采用分层式结构,添加了model层,并将数据访问层做了一定程度上的扩展,具体软件体系架构图1所示。 表示层:是系统的展示部分,负责用户与整个系统的交互。表示层仅仅包含页面上控件的逻辑代码,只与界面上的元素有关,而与系统的业务逻辑无关。 业务逻辑层:是整个系统的核心。它与这个系统的业务逻辑相关。在权限管理软件中,业务逻辑层的相关设计主要涉及到页面、角色和菜单处理的业务逻辑。如果涉及到数据库的访问,则调用数据访问层。 数据访问层:其功能主要是负责数据库操作。该层包括dal接口、dal工厂、oracle dal、sqlserver dal以及最后产生的model层。该数据访问层中完全采用了“面向接口编程”的思想。抽象出来的idal模块,脱离了与具体数据库的依赖,从而使得整个数据访问层更加有利于数据库迁移。只需添加一个相应数据库版本的dal并且实现idal接口即可连接到各种数据库。业务逻辑层和表现层不需要任何的改动,从而提高了代码的复用率。 实体层:该层主要将数据库中定义的表映射成程序可以访问的业务实体,并且只定义实体的属性,并无实体的行为。该层由数据访问层产生,贯串了业务管理层和表示层。权限管理系统主要涉及的实体有:用户类、页面类和角色类等。 1.3系统功能设计 权限管理软件主要包括四个模块:用户管理、页面管理、角色管理和菜单管理。具体功能架构图如图2所示。 d:\飞腾导入图片目录\李莉 基于rbac的权限管理软件的开发及应用-f4\image2.jpeg 图2 权限管理软件功能架构图 1.4系统数据库设计 数据库设计是软件开发过程中的基础环节。良好的数据库设计不但有利于提高系统的整体性能,而且也方便将来使用过程中的数据维护。权限管理软件数据库设计达到了第三范式(3nf),这种设计能够有效保证数据的完整性和参照完整性,同时降低数据的冗余度。 2 软件实现 该软件实现了与域无缝集成。用户登录后首先通过域验证来确保登录用户的合法性。这样既方便了用户,避免用户记住多个用户名和密码也保证了系统的安全性。 在权限管理系统中,利用了c#中dllimport直接调用windows已经存在的域验证功能。dllimport所在的名字空间是 using system.runtime.interopservices。 msdn中对dllimportattribute的解释是这样的:可将该属性应用于方法。dllimportattribute 属性提供对从非托管 dll 导出的函数进行调用所必需的信息。作为最低要求,必须提供包含入口点的 dll 的名称。 3 软件应用 权限管理软件已应用在多个系统中,系统运行稳定,响应速度快,操作简单,功能健全,满足了用户的需求。权限管理软件的直接使用,在很大程度上节省了开发人员的时间和精力,提高了软件开发效率。随着信息化建设的步伐越来越大,b/s架构的系统的投用越来越多的投用,该软件的应用范围将越来越广阔。 管理软件论文:数字化实验室管理软件设计分析 【摘要】随着计算技术、网络、数据库的不断发展,从而实验室的规模和功能也在不断扩大,引用了先进的管理模式和观念,先进的实验室管理软件的实现方式和软件的可行性。 【关键词】实验室管理系统;数字化;软件设计 引言 随着信息技术的快速发展,实验室是每所高校的一个必不可少的组成部分,实验室管理的繁琐复杂的给办公人员带来了很大的麻烦,为了给实验室管理人员、老师、学生提供方便,可以从以下几个方面来说: 1.实验室的主要任务 高校实验室管理主要有两个任务:第一、为了实验教学任务顺利完成,应首先维护、管理好仪器设备;第二、为了给学生提供较多的实践机会和优越的实践环境,满足学生的实践需求。以前一直是手工管理,才导致了设备的管理工作普遍比较混乱,使管理者无法准确掌握自有资产的状况,这会影响实验室对承担教学能力的分析误差,会造成实验室不能够满足教学计划之外的实验需求,不仅降低了仪器设备的使用效率,而且也不利于对学生的实践锻炼的提高。 2.实验室的管理手段 实验室管理手段的落后是造成实验室管理水平落后的主要原因,所以,必须采用先进的管理理念应该用到实验管理的流程当中。利用计算机的辅助将管理者从以前复杂的手工劳动中解放,推进实验室走向现代化,跟进时代的步伐,并且要坚持用现代化、标准化、科学化,逐步实现现代化的思路,通过信息化的管理,建立完善的综合管理信息系统。 3.实验室缺少信息交互 由于以前的手工管理,实验室设备的使用报废情况都要在相应的卡片上进行登记,这些卡片填完后都是会被存档,但是由于学生使用实验仪器是否登记在卡片上,不能准确反应设备的真实使用情况,每当年末查资产时,去年的资产统计对于今年来说并没有多少参考价值,所以管理设备的人员不得不花费大量的时间和精力来清理和统计资产的使用情况和数量上报。 4.实验排课管理 全校有多门课程应用计算机实验教学中心实验室,实验课程的管理任务较多,各个实验室从教务处获得学生上课课表,根据学生的实验课程的多少及实验室的使用情况,安排学生上实训课,并将各个班级的实训情况反馈到各系,到辅导员、任课老师。为了满足实验课需求,每个实验室为每个实验项目制定了实训课程登记表,表中有计算机配置、操作系统、软件的应用版本、实验人数等信息,来合理安排实验人数,和实验负责的人工分配,这样比较费时间和精力。然而安排的得结果也不能达到最优化的实验室配置。 5.实验规划 实验室要为每个实验项目制定实验计划,来保障实验教学任务顺利进行,实验的时间、地点、任课老师都要有明确的分配。以前,除特殊情况外,计算机的中心实验室一般不对个人的教学提供教学服务,这种情况是因为这种个人实验的安排比较繁琐,实验室的实验安排从没有对外公开,所有的实验都必须与实验管理者进行沟通来使用实验室。实验课计划表的制定是在学生的理论课进度、实验室的实验计划和仪器设备之间找到平衡点,来完成实验项计划。如果一直按照以前那种管理模式,会限制对外提供实验服务,势必会影响计算机实验室的实验资源利用率,无法给学生提供足够的实验需求,这个也是与教育的目的背道而驰的。 6.项目开发的目标和意义 通过信息化的管理来构建科学合理的实验室管理体系,用“数字化校园”的概念来规划、组织、建设完整的数字化实验室管理体系,在这一目标下,统一建设网络结构、数据库、信息资源的共享、管理效率的提高、最终提高学校的实验室管理效率。 6.1计算机的实验教学中心的局域网上链接上数字化的实验教学管理平台,因为计算机实验教学中心设备是分时间段逐一配置的,有些新的一些多媒体软件对计算机的运行速度和存储空间的要求较高,有的计算机已经不适应,需要改进和对计算机进行更新,来准确保证计算机实验教学中心的电脑、网络可以正常使用。 6.2想要进一步提高办学效率和实现现代化教学水平,需要开发基于Web实验室排课和网上选课系统,实现数字化实验室管理,使网络服务于工作,提高办公效率。 6.3实验教学资源库的建立,是为广大师生提供方便快捷的资料信息获取渠道和手段。因为实验教学资源库主要包括原有的教学资源、在线实验课程、数字化的实验指导书、计算机虚拟实验室、在线的讨论区、实验目录等。满足广大师生的需求。 6.4 任课教师可以在上课的班级登录学校的服务器账号和储存空间,使整个教学系统完全实现信息化、自动化、网络化。 6.5及时更新和补充网络上的实验课件,老师可以引用先进的教学课件或者自己修改开发高质量的课件给学生讲课,充分发挥网络的作用,使讲课内容更加生动活波,来提高教学质量和教学水平。6.6信息公告模块,方便内部信息、交流和共享。 7.数字化平台的性能需求分析 7.1具有开放性 作为校园网的组成的一部分,本平台应具有良好的开放性,既要满足现有集成的需求,还要为未来的数字化平台预留接口,因为考虑到实现高校内部各数字化管理平台的横向和纵向集成是高校管理信息系统的发展的必然倾向。 7.2具有高度的可靠性 数字化平台在功能完整的同时,还应该具有良好的可靠性,作为支撑实验室的管理工作的基础,数字化平台出现故障将会直接影响实验室的正常工作,所以平台应具有高度的可靠性。 7.3易于操作和维护 数字化平台应该简单易懂,使人一看就学会,系统使用起方便快捷,使对计算机了解的少的人,也可以轻松学会。7.4具有较强的保密性应该提供安全可靠的数据储存服务,拒绝没有授权的人员按使用访问和篡改数据,只向授权的人员提供一致的数据服务。 8.标准化的实现 实验室管理的标准化系统反应在两个方面: 8.1工作流程的标准化是实现信息系统化的一项重要指标。 8.2遵循实验室的规章制度,来实现业务流程与数据的标准化。通过系统的优化,来实现实验室管理的优化,优化的规章制度的实施,通过思想教育,使全体人员遵守新的要求,规章制度。系统对仪器进行标准化管理,为将来实现计算机辅助实验室管理提供预留接口。 9.实验室教学系统功能分析 9.1课程的信息管理方面,老师可以随意修改课件,而学生可以在上课之前预习老师将要讲课的内容。 9.2学生可以直接从这个实验教学系统下载课件,下课后可以进行自主学习。 9.3老师可以通过实验室管理来预定实验室。 9.4老师通过“通知管理”来完成信息的。网络方便了师生的交流的场所并且协同工作教学方式辅助了传统的教学设施。 作者:李伟伟 王瑞利 单位:河南医学高等专科学校教务处 管理软件论文:网络管理软件企业信息化研究 【摘要】 随着计算机技术和网络技术的不断发展,现代企业信息化水平越来越高,人们对网络管理软件的要求和重视程度也随之提高。当前,市场上网络管理软件有很多的种类,功能及侧重点也都有差异,所以企业在选择网络管理软件时饱受困扰。本文对网络管理的概念进行了分析,研究了网络管理软件的应用原则,希望能够对现代企业信息化的建设起到一定的促进作用。 【关键词】 网络管理软件;企业信息化建设;应用研究 随着现代企业对信息化建设重视程度的提升,企业网络规模逐步增大,但传统的网络管理模式无法对大规模的信息网络进行有效的管理,导致企业网络故障频发,给企业的正常生产经营造成了一定的不利影响。网络管理软件能够对企业网络资源进行统一监管和调控,减低网络故障发生的概率,提升网络的工作效率。所以,选取合适的网络管理软件对企业来说是非常重要的。 一、网络管理的概念 网络管理是随着计算机技术和网络技术发展而自然出现的重要技术,它指的是通过对硬件、软件与人力的使用、综合与协调,实现对网络资源进行监视、分析、评价与控制的各种工作活动的总称。它的根本目的是为了及时发现并排除网络中的各种问题,保障计算机网络处于良好的运行状态。 二、企业在信息化建设中选用网络管理软件的原则 现在,我国正处在企业信息化建设高速发展的阶段,对信息网络不完善的企业,引入合适的网络管理软件可以更加科学的指导企业的信息化建设;对信息网络建设已经比较完备的企业,引入网络管理软件可以有效提升企业的网络管理水平,促进企业信息化建设的良性发展。但是对市场中品类繁多的网络管理软件,企业在选择时要把控好下面几项原则: (1)软件功能完整的原则。一个好的网络管理软件首先要有完整的功能,即必须包含故障管理、性能管理、配置管理、安全管理和计费管理五大功能模块,五大模块齐全的管理软件才能实现对企业网络内部资源的优化配置和统一管理,真正做到全面深入的监测企业网络构架与工作状态,保障企业的网络稳定与安全。 (2)高效准确的原则。向企业中引入网络管理软件主要目的是实现对企业内部网络的精准管理,提升其运行效率。所以,网络管理软件一定要具备通过网络系统运行状况的分析和判断,快速精准的定位故障能力。快速精准定位故障是及时采取有效措施解决问题的必要前提,所以一款良好的网络管理软件必须拥有高效性和准确性。 (3)主动预警防护原则。通过近几年时间的建设,大多数企业信息网络的基本框架已经确定,各类功能逐渐稳定,目前处在正常运行与合理维护的阶段。这一阶段中所有的管理工作都是为了确保网络的安全顺畅运行。但传统的网络管理模式基本上都是在“亡羊补牢”,即发现网络故障后才能进行补救,这对企业信息网络的正常使用造成很大的不便。所以,这就要求网络管理软件必须有主动预警与防护的机制,通过对整个网络系统的监测与评估,在问题发生之前或者刚发生就能够进行有效捕捉,提供有效的解决方案,避免更大损失的发生。 (4)良好的兼容原则。现代企业在建设信息网络时,大多数都无法一次到位,而是通过不断的向系统中增设服务器及其他设备最终才能形成比较完善的信息网络。网络中的设备型号不一,使用的操作系统也不相同。所以网络管理软件必须拥有非常良好的兼容性能,才能保障不同型号不同操作系统的设备能够在一个系统中顺畅的运行。 (5)方便扩展的原则。企业的信息网络是随着企业的扩张而不断变化的,所以网络管理软件也要能够适应这种变化,具备良好的扩展性能,以便能够满足对企业信息网络的跨地域、跨平台管理和运营。 (6)灵活性原则。现代较大规模企业的信息网络通常是统一一个平台,但分级实现管理和运营的系统。所以网络管理软件据需要拥有高度的灵活性,能够良好的实现分布式部署并且在部署时不需要安装其他软件,适应现代企业集中管理与区域自治管理的发展模式。 (7)安全的原则。现代企业信息网络安全事故频繁,对企业信息网络的建设造成了一定的不利影响。所以企业网络管理软件必须拥有完善的安全机制,在应用中可以对其进行加密,确保数据收集与传输过程的安全。 (8)智能性原则。企业引入网络管理软件的目的是为了更好的辅助网络管理人员进行网络监测、管理与维护,所以网络管理软件要能够智能的对故障进行诊断,并提出相应的处理措施。智能性良好的管理软件能够在运行过程中自行发现并排除问题,依据不同部门的需求合理的调配网络资源,实现网络资源利用效率的最大化。 三、结论 随着企业信息网络规模的逐渐扩大,企业对网络管理软件的需求也越来越高,这就要求网络管理软件必须向着高效、安全和实用的方向发展。 作者:闻华 单位:中国电信股份有限公司上海分公司 管理软件论文:侦测系统管理软件设计 摘要: 针对现代侦测系统综合化和信息化的发展趋势,分析了侦测系统的特点,采用四层架构模式设计实现了侦测系统的系统管理软件。在需求变化的情况下,通过软件的扩展接口,可使系统管理软件具有管理灵活、模块通用、可扩展特点。 关键词: 侦测系统;四层架构;系统管理;软件扩展 0引言 随着电子技术的发展,现代军事装备的设备复杂化程度在不断增加。在装备有多种侦查设备的侦测系统中,如何对多个设备进行管理和协同工作,以及如何对多个设备侦测到的信息数据进行存储、挖掘、统计分析等操作变得至关重要。而作为侦测系统的系统管理软件在系统中起着举足轻重的作用,其操作灵活性、可扩展性、稳定性及维护性尤其重要。一般侦测系统软件组成主要包括9个软件单元:多源信息控制与融合软件单元、对外接口软件单元、数据采集与分析软件单元、安全管理软件单元、系统管理控制软件单元、控制硬件MIO软件单元、数据库服务管理软件单元、显示与控制软件单元、信息处理软件单元。 1软件架构设计 软件架构设计的目的是为了使软件系统能够适应需求的变更、易于维护和升级,同时尽可能地节约开发成本[1]。在软件的架构设计中,常用的架构模式有三层/四层开发架构、SOA(面向服务架构)、DDD(领域驱动设计)等,目的在于实现高内聚、低耦合的思想[3]。由于系统管理软件需要处理系统内大量不同实体间复杂的逻辑业务关系,需要用到大量的事件、消息、多线程等方式,采用分层架构比较合适且方便后期扩展和维护。本文采用四层架构进行设计。根据侦测系统的业务逻辑将系统管理软件抽象成四层,即用户界面层(UI层)、问题领域层(PD层)、数据管理层(DM层)和系统交互层(SI层)[2]。用户界面层主要实现人机交互和各类信息进行显示,负责提供侦测系统内设备的管理控制,同时与外部系统进行协同工作,包括界面展现和控制软件单元、对外交互软件单元等。问题领域层主要用于对上下层之间交互数据的逻辑处理,包括操控和调度管理软件单元、故障检测和维护软件单元、领域可扩展软件单元等。数据管理层主要完成对侦测系统中数据的分发、分析、加工、获取等,主要包括数据记录和回放软件单元、系统版本管理软件单元、系统配置管理软件单元等。系统交互层负责封装光纤采集卡、采集器、数据库服务器的具体交互方式,包括各类原始数据的采集和控制命令的下传等操作,主要包括数据查询软件单元、数据库管理维护软件单元等。 2软件内各软件单元的设计 软件单元设计是描述系统需求的一个过程,需要将需求中的感性描述进行抽象,提取要实现的功能,是整个系统开发的一个关键过程[4]。根据需求,系统管理软件设计分为界面展现和控制软件单元、对外交互软件单元、数据库管理维护软件单元,以及数据库记录与回放软件单元、任务调度与操控软件单元、故障检测和恢复软件单元、系统版本管理软件单元、系统配置管理软件单元、数据库查询接口软件单元。各软件单元完成的功能如下:(1)界面展现和控制软件单元:实现系统信息的显示和对系统内设备的控制。(2)对外交互软件单元主要实现:向其他侦测系统发送协同侦察请求,或响应其他侦测系统的协同侦察请求,控制系统进行协同控制,同时完成内外系统的数据格式化。(3)数据库管理维护软件单元主要实现:数据库的备份、还原、故障修复及完成数据库的同步更新工作。(4)数据记录和回放软件单元主要完成:对系统内各类信息的入库、回放等操作,为研究人员提供二次分析的资料。(5)操控和调度管理软件单元主要完成系统内操控的转发、分析、加工等工作。(6)故障检测和维护软件单元主要完成系统各个软硬件模块的故障检测、显示、对外上报、开关机的初始化控制等工作。(7)系统版本管理软件单元主要完成系统各个模块的软件版本的上传、下载等更新和入库备份、还原操作。(8)系统配置管理软件单元主要完成系统各个模块初始化参数的推送和系统实时工作参数的分发等工作。(9)数据查询软件单元主要完成系统内对数据库中数据的插入、更新等操作,以及用户操作相关界面完成侦测信息的查询,包括目标活动规律查询、系统工作日志查询等。 3软件各接口的设计 由上文知,一般侦测软件系统由9大软件单元组成,软件的设计中最重要的就是其软件各个单元间的业务通信机制,即接口设计。接口设计是后期代码编制的基石。所以,接口设计的好坏直接决定软件系统的复杂性和扩展性。本文对软件系统中的各个软件单元根据其在问题领域中的功能进行切割分类。系统管理软件和系统内其他软件单元都有业务通讯。侦测系统内其他软件单元与系统管理软件单元的接口关系,从中可看出系统管理软件的重要性。后期的编码中采用数据抽象(ADT)、多态和继承类的方式抽象出软件单元。软件单元由一组类表达,方便后期的扩展和维护。由于系统内各个软件单元的交互频繁且产生的数据量大,本软件采用消息队列、事件、多线程、内存映射、双缓冲等技术构建软件工作流引擎,使得本软件在多任务、高频率、大流量数据时整个工作流不堵塞。 4结束语 本软件在服务器上作为后台程序运行,其中的所有功能和服务都是自动运行,无需人工交互。该软件已经在多套装备中实际应用,目前运行状态良好,具备完善的系统管理和数据存储功能,可将数据永久保存在后台数据库。由于该软件具备通用性好、管理功能完善等特点,可以在更多的侦测系统中得到广泛应用,进而指导相关领域的开发活动。 作者:李树文 王爱矛 盛震宇 邢朦 单位:中国船舶重工集团公司第七二四研究所 管理软件论文:项目管理软件重要性分析 1缺乏项目管理软件给企业带来的问题 从一般意义而言项目的投资情况、工程进度和施工质量是企业管理层面最为关心的方面。在这其中最为重要的是公司每个部门需要对信息进行共享,由于每一个不同的项目都会关联到公司的各个方面甚至还和政府以及其他企业有一定的联系,所以需要相互之间沟通的信息很多。为了掌握项目的进度等信息企业一般采用传统开会等方式,但这种方式有时会受到各个方面的制约效率比较低。企业各个项目相关审核文件、施工进度、合同以及原材料的采购等信息非常复杂并且随着工程进度发展会牵扯到更加复杂的事情。尤其是对于大型项目而言相关的管理者很难对项目的进展程度做到实时的掌握。并且相关的项目进展信息都是以纸质档的形式保存在查阅的时候很难查找。 2项目管理软件要解决的问题 2.1建立完善的授权机制 在相关公司对项目建立相应的授权机制时有几点需要特别注意。首先项目管理软件的最高权限属于领导者,从此可以放心将重要文件放在网络之上,而不必担心泄密。其次,当项目的领导者拥有软件的最高权限后,相关的项目执行软件者将拥有相对应权限,并且随着授权机制的采用使项目管理者能够实时的掌握项目信息并且保证项目相关的信息的安全性。 2.2增强部门之间的沟通效率 在企业内部每个项目包含的信息量非常大,并且会涉及到不同的部门之间的合作。如果项目的相关信息沟通不畅将造成项目进展的进度降低并且影响员工的工作效率。所以应该依靠项目管理软件建立完善的信息交互共享机制,这样项目相关的信息能够得到最大限度的沟通共享。项目管理软件在功能上应该具备强大的自动记忆功能能够满足相关人们实时的信息查询需求。另外,还应该具备相关文件的快速传递能力,相关的工作人员能够通过项目管理软件快速接收项目文件。最后,能够实现不同部门间、员工间、领导和员工间之间的实时交流。 2.3建立协同的工作管理系统 公司中的每一个项目不是单独的一个部门能够完成的,这需要每个部门之间的通力合作才能够实现的。由于每一个部门主要负责的业务内容不同,作业应当建立一个有效的工作管理系统。可以使用WBS技术实现不同部门之间的有效沟通,并且依靠本系统能够将项目中的每一个任务分配到具体的个人上面,从而有利于提高项目的进度并且有利于相关考核工作的实行。 2.4能够实现对项目的动态控制 由于公司的每一个项目牵扯到不同的部门,并且还有可能涉及到其他的公司,项目在实施过程中有很多的不确定因素,所以对项目的实时信息的掌握在一定程度上决定着项目质量。相关实践证明,采用相关网络计划技术能够将相应的建设周期缩短到原来的80%左右,并且整个工程的施工成本将降低到原来的90%左右。所以可以将网络计划技术作为对项目实施信息掌控的重要核心技术之一。应用网络计划技术能够将整个项目进行科学合理划分,对工程进度能够合理的安排并且进行统一的规划,从而使用最少的时间和最少的资源保证项目进度和施工质量,提高项目实施效率同时降低成本。 2.5实现全员管理 对于项目进行管理从本质上而言是对参与项目的人员的科学管理,对全员进行管理时应该合理的处理好不同部门之间的权利和责任等不同问题,应用那些具体的矩阵式组织形式的项目管理软件从而充分发挥人的积极性,从而保证项目实施的质量提高人员的工作效率。 3项目管理软件对企业管理的重要性 项目管理是企业改革、创新的重要管理方法,市场竞争越来越大,并且随着经济环境的不断发展,企业需要不断根据实际情况适应性的市场变化,重新组织企业资源,整合工作流程,加强技术创新是企业提升竞争力的有效方法,变革管理已经成为企业适应变化而生存的基本出路,而项目管理正是被实践证明、且行之有效的变革管理方法。以项目管理软件系统为基础,可将公司各种与项目相关的关系通过集中、明晰的方式管理起来,进行统筹协调。在企业的经营活动中,存在着事务型和项目型两种工作类型,这两者之间存在一定的重叠。另外,项目的管理需要设计、技术、实施、财务、市场、设备、物资、运营等部门的密切配合,利用项目管理软件系统,能够打破部门的界限按照项目管理的需要建立企业网络化的工作模式,将与项目管理相关的部门通过集中、明晰的方式管理起来。这样可以将事务型工作和项目型工作区分开来,避免因二者隐含和混淆的关系而影响项目的管理效率。将公司的项目管理软件系统与其他软件系统进行相应的关联,从而形成一个整体高效的管理平台。现阶段各个大型企业常用的项目管理软件已经能够将企业网资源、应用软件管理、信息交流、数据安全和远程监控等一体化管理,从而共同形成统一高效的企业管理平台,是企业各个部门和管理系统进行同步。这样就能够实现上级领导对企业相关信息的实时掌握和决策,另外采用项目管理软件能将相关的管理等部分整合进去,从而提高项目实施的效率降低企业的管理成本。 4结语 通过上面的分析可知,企业采用项目管理软件能够给企业解决诸多实际问题,能够提高企业的工作效率对于企业的长远发展具有重要的意义。因此,在未来项目管理软件具有很好的发展和应用前景。 作者:赵薇娜 单位:中国核动力研究设计院 管理软件论文:医院管理软件对医院经济发展的影响 一、医院管理软件的应用能更好的展现医院的形象 过去医院的门诊诊室里:患者随便进出,医生身前围着一圈患者。有的患者需要查体,要求其他患者回避的,其他患者也不主动退出诊室,秩序很乱,看起病来着实不变。挂号处、收费处前乱成一片,经常有为排队发生纠纷的情况出现。现在应用上医院管理软件后,排队取号机、自动叫号器的使用让门诊和挂号处、收费处等地方变得秩序井然。医生可以更专心的为患者看病,挂号处、收费处再也没有发生过为排队起争执的现象了。整个门诊大厅给人一种“高端、大气、上档次”的感觉,看上去像个上规模的“正规大医院”。良好的就诊环境使患者来本院就诊的意愿更强烈了。 二、医院管理软件的应用使医院的门诊收入增加 以前我们医院都是手写处方,开好后患者拿着处方去交费、取药。由于过去卫生部门管理体制主、客观问题的存在,导致医院药品价格居高不下(现在已经实现药品零差价,这种现象基本好转),这就出现了“逃方”的现象。医院外面药店里的药品大多质量有保证,价格也便宜,有的药品院内外差价能相差2-3倍!这种现象下就会有好多患者拿着医院医生开具的处方跑到外面药店去买药。当然从患者的角度来说也可以理解,但从医院的角度来考虑,这既不尊重医生的劳动,又让医院受到了经济损失。我院应用管理软件后,处方的开具全部是无纸化办公。患者在拿到药品前是看不到处方内容的。既想在院内就诊又想在院外拿药的情况被杜绝了。处方不再白白的外流,医生的劳动得到了尊重,医院的收入也增加了。我对比过医院使用管理软件前后的业务收入,使用后比使用前门诊处方的业务量多出(同比)约30%,相当可观的增收幅度。 三、医院管理软件的应用提高了住院医生的诊疗水平和业务收入 我院过去手写病历的时候,住院医生在管理住院患者的时间里大约有60%的时间都用在了埋头伏案处理未完成的病历当中。如此大的病历书写量导致医生对患者的诊治活动疲于应付:一成不变的使用陈旧、保守的诊疗方案。没有足够的时间静下心来思考患者的诊疗方案有没有更安全、高效的方法。长期下来不但医术没有提高,而且让病历文书弄得身心乏力、精神萎靡,很容易导致医疗差错,甚至是医疗事故,给个人、科室、医院都带来名誉、经济上的损失。电子病历、电子病历质量控制、临床路径等先进的软件模块的应用扭转了上述现象。医生使用电子病历管理软件十分钟就能完成一份高质量的病历。电子病历质量控制软件可以适时的提醒医生该干什么、哪些文书的书写质量不行等。 医生根据软件的提醒及时处理需要处理的病历文书、修改病历中的各种错误等。临床路径管理软件的应用对于典型病症更是解放了临床医生——符合进入某条典型病症的临床路径的患者在事先设定好相应诊疗方案的该条临床路径里诊治,医生只是在需要的时候点点鼠标。所有这些都会把医生从繁重的病历书写中摆脱出来,能够使之静下心来思考或者和其他同事探讨患者的病情、优化诊疗方案,使之更合理、更科学。长期下来医生的诊疗经验就会有很大的提高,医院就会拥有越来越多的高素质的医师。医院要想有更大的发展空间,高素质的人才是关键,只有医院的整体诊疗水平提高了,才能有更多的患者愿意来本院就诊、治疗,相应的医院业绩也就越来越好。我院在使用医院管理软件前后的业务收入对比(同期按月汇总数据)从340多万元猛增到430多万元,看来前期的软件资金投入是肯定的。 四、医院管理软件结合智能化医疗设备为医院特色发展添彩 我院是中医院,众所周知,虽然中医在我国是“国粹”,但是这些年来中医院的发展无论是政策环境还是医疗环境都很严峻。要想在西医医院当道的环境里谋出路、求发展,就必须走具有中医特色的发展道路,比如:中医院要大力发展针灸、中医理疗按摩、中药制剂等。我院自行研制的一些中药制剂过去由于没有先进的生产设备,虽然药品很受欢迎,但是产量总跟不上去。为此我院专门从外地购入先进的智能化中药制剂生产设备。该设备通过软件自动控制,医院管理软件开发公司授权该设备软件获取HIS数据库里面的中药处方数据,然后根据这些处方数据设备自动生产患者需要的中药制剂。如果没有医院管理软件提供的数据支持,单靠人工向设备的软件内输入处方数据,工作量就会成倍的增加,效率也会大打折扣。而医院管理软件和该生产设备的结合,让该设备的生产效率提升了十倍,医院极大地缓解了自制中药制剂供不应求的状况,满足了患者,也给医院增加了收入。自制的中药制剂收入由以前的2万多元激增到18万元左右(同期月收入)。 五、医院管理软件的应用能更精确的控制科室消耗 前几点介绍了医院管理软件对于我院增技(业务技能)、增收的好处,现在再谈下医院管理软件对我院科室消耗的有效控制。过去我院没有应用专门的后勤管理软件,科室需要在后勤处领取近百种耗材物品(如:毛巾、肥皂、纸张、笔墨、灯泡、电池等等),科室众多,管理起来难度很大。后勤没有对账目进行科学的分类、账目记录不规范、没有形成统一口径、查对起来太繁琐。财务上想要获取精确的物品数量、金额等数据太难。这也是其他好多医院同样遇到过的问题——医院无法对科室进行有效的成本控制。我院财务科进行成本核算,低值易耗品占总成本的比例一直居高不下。我院使用后勤管理软件模块以后很好的解决了这一问题。后勤物资分门别类的维护到系统里,每个科室都有专门的明细账目,并设置了“耗材消耗预警线”,控制每个科室每种耗材领取的数量,进行成本控制。全院所有科室任意时间段的消耗数据都能准确无误的汇总出来并上交财务科。财务科会根据这些数据进行成本核算,有了这些精确的数据,医院的成本控制就更高效、明晰。 培养后备人才梯队、“开源节流”是医院生存发展的两大法宝,医院管理软件在我院的使用让我院拥有了这两大法宝!相信会有更多的医院会在医院管理软件的助力下发展壮大,为更多的患者提供更优质的服务! 作者:张冬明 单位:河北省辛集市中医院
软件毕业论文:计算机软件开发类毕业设计改革研究 随着计算机科学技术的迅速发展,尤其是网络技术与Web服务的出现,社会对软件开发类人才需求日益增加,软件开发类课程也成为高校计算机专业的教学重点[1]。然而,软件开发所学内容涉及面非常广泛,最基本的课程就包括C语言、C++、JAVA、数据结构、软件工程、数据库原理及网页制作等[2],如果只是学好某些课程,做好这些课程的实验,甚至这些课程的课程设计也非常优秀,但也无法满足社会对应用型人才的需求。因为学生所学和所用都只是片面的知识点,不仅没有将所有软件开发知识有机地结合和整理,更没有结合社会实际开发能够应用于公司企业的项目。计算机软件开发类毕业设计正好弥补了这些不足,大四学生已经具备了软件开发的基础,能够将所学知识综合整理设计,并通过市场调查、资料查阅和企业调查等形式了解项目实际需求,开发一套满足社会基本需求的软件系统。由此可以看来,计算机软件开发类毕业设计是实现软件开发类专业人才培养目标的综合性实践教学环节,在提高了学生程序开发能力、综合设计能力和分析研究能力的同时,也锻炼了学生解决实际问题的能力,更加全面培养了学生的业务能力和专业素质,为学生毕业求职创造了有利条件。因此,对计算机软件开发类毕业设计教学改革研究具有非常重要的意义。 1计算机软件开发类毕业设计存在的问题 自21世纪高等教育改革以来,全国各高校招生规模不断扩大,导致毕业生数量也相应大规模增加,给高校学生的求职择业带来了严峻的考验。为了可以跟上时代的步伐,为求职带来一些实际项目经验,计算机专业越来越多学生选取了软件开发作为毕业设计课题。然而,在各高校实际当中,本科毕业设计质量已经下降,软件开发类论文与实际完全脱节,归根结底是没有一个可以从头到尾指导学生进行软件开发的学习模式,主要存在下面几个不足之处。 1.1学生问题 学生设计能力低,编程水平差,无项目实际经验,既不知道软件开发的基本理论与方法,也不知道程序语言代码编写和开发工具界面操作,甚至不知道从何处开始下手准备毕业论文,成为目前软件开发类毕业论文质量差的根本原因;学生思想上存在误区,不重视毕业设计的重要性与必要性,认为毕业设计与普通课程一样,对毕业设计敷衍了事,不愿意花时间和精力认真努力开发软件,总是被动、消极地接受学习,成为软件开发类毕业论文质量差的直接原因。 1.2学校问题 学生在大一至大三期间,一般只是简单地开设各科课程,并没有将所有软件开发类课程结合起来,直接导致出现学生软件设计能力低与开发水平差的现象;从论文开题、中期检查到论文答辩等过程中,并没有严格按照各种材料上交的日期进行,普遍是最后答辩时上交补交所有材料,甚至包括论文开题报告,直接导致学生消极怠慢的态度;最后的毕业论文考核是最关键的问题,也是目前毕业论文相关制度中管理最混乱的一部分。既没有一套规范毕业论文考核标准,也没有对毕业论文的中间过程进行监控,就连最后的论文答辩也只是流于形式。 1.3教师问题 大部分教师没有项目开发实际经验,只知道软件设计理论基础,不能全方位地指导学生,更加无法让学生能够主动积极地学习,成为毕业论文水平不高的原因之一。 2CDIO教育模式 CDIO教育模式继承和发展欧美20多年以来的工程教育改革理念,将“做中学”和“基于项目教育和学习”的集中概括和抽象表达,是2004年由麻省理工学院和瑞典皇家工学院等四所大学研究创立,CDIO分别代表了构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)等四个学习过程,它以产品研发到产品运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习[3]。CDIO培养大纲将工程毕业生的能力分为工程基础知识、个人能力、人际团队能力和工程系统能力四个层面,大纲要求以综合的培养方式使学生在这四个层面达到预定目标[4]。本文将CDIO模式的构思、设计、实现和运作等四个学习过程引入到计算机软件开发类毕业设计中,要求严格按照构思、设计、实现和运作这四个阶段进行,并将每一个阶段的成果都作为毕业论文考核的依据,以此调动学生的积极性与主动性,既能让指导老师清楚整个设计流程,并根据阶段安排加以指导和督促,也能让学生愿意付出时间和精力努力投入到毕业设计当中。在弥补学生软件开发水平不足的同时,提高学生思考问题、综合设计的能力,最后达到提高毕业论文质量的目的。 3基于CDIO模式的计算机软件开发类毕业设计 3.1构思阶段 毕业论文是从学生的选题开始,一般是由老师提供一系列题目,再由学生根据自己的具体情况选择,这种方式遏制了学生的主动性。应该由学生根据自己的爱好、专长和对将来的职业规划等情况,利用各种参考资料主动搜索与查找适合自己的题材范围,再在老师的指导下确定毕业论文题目。不仅能够调动学生的设计积极性,为后面的毕业论文工作提供有利条件,而且还可以培养学生查阅资料和思考问题的能力。之后,指导老师提供软件开发类参考资料,并在中国知网等学术平台搜索课题相关文献,确定论文的基本要求,给学生下达论文任务书。学生根据接收到的任务书,利用软件工程专业书籍、中国知网等学术平台、论文相关的Web网站,查阅大量的资料,了解论文的背景、研究现状和开发意义,确定论文的研究内容和开发中的关键问题,撰写论文开题报告,完成软件开发的构思阶段。 3.2设计阶段 设计阶段主要包括需求分析和总体设计,正式开始毕业论文的设计工作。根据资料查阅、市场调查和企业要求等形式分析软件产品操作流程、功能列表,完成系统需求分析,并在需求分析的基础上重点进行功能设计、模块划分、模块接口规范、数据库概念设计及数据库逻辑设计,在老师的指导下反复修改不断完善,最终确定系统的总体设计。然而,在软件开发设计阶段,学生论文还没有开始写,软件程序也没有完成,指导老师无中期检查依据,不能有效地督促学生开发设计。因此,在设计阶段完成之后,应该形成需求分析、数据库设计、概要设计等相关说明书,作为毕业论文中期检查的材料,纳入论文考核的范围。 3.3实现阶段 实现阶段是学生毕业论文工作的重点,也是毕业论文设计工作量最大、所需时间最长的一个阶段,直接决定最终毕业论文的质量水平。学生需要掌握软件开发工具、程序设计语言等基本理论与方法,根据系统总体设计的功能模块、接口规范等进行数据库的实现、程序代码的编写,并反复运行与测试。此阶段生成详细设计说明书、编程规范、测试等文档,作为毕业论文第二次中期检查材料。在这个阶段有了指导老师的督促,能够完全确定系统功能,不至于在后期阶段又需要反复修改。 3.4运作阶段 根据前期产生的开题报告、需求分析、数据库设计、概要设计、详细设计、编程规范、测试等文档和开发好的软件系统撰写毕业论文,并参与论文答辩,是学生毕业论文的总结阶段,不仅着重体现学生的写作水平,更能了解学生对软件的学习情况,是分值比重最大的一部分。最后,将所有文档和论文、答辩情况一起评分,获得毕业论文成绩。 4结语 计算机软件开发类毕业设计是实现软件开发类专业人才培养目标的综合性实践教学环节,对计算机软件开发类毕业设计教学改革研究具有非常重要的意义。因此,本文将CDIO模式引入到计算机软件开发类毕业设计中,既能让指导老师清楚整个设计流程,并根据阶段安排加以指导和督促,也能让学生愿意付出时间和精力努力投入到毕业设计当中。在弥补学生软件开发水平不足的同时,提高学生思考问题、综合设计的能力,最后达到提高毕业论文质量的目的。 作者:陆汝华 颜文燕 单位:湘南学院软件与通信工程学院 软件毕业论文:软件工程本科毕业设计质量提升策略 一、利用多方资源做好毕业设计选题与立题工作 恰当的选题是做好毕业设计的必要条件和前提。近年来,随着信息技术高速发展,国家对高素质软件工程人才需求十分旺盛,并有逐年扩大的趋势。同时各个高校软件工程专业的招生数量也在逐年增加,从目前全国319所设有软件工程专业的学校看,2013年该专业平均招生300人左右。专业招生人数的增多给毕业设计选题带来了带来巨大挑战[3]:一方面软件工程专业的毕业设计选题要求具有一定的应用价值、创新性,同时还要与行业需求相吻合;另一方面要保证选题的唯一性,不仅要避免学生之间的题目重复,还要避免与之前毕业生的题目重复,因为重复的选题会使学生产生投机的心理,导致“打酱油”现象。针对上述问题,黑龙江大学软件学院主要采取了以下几个措施:1.充分利用企业资源,对一部分在企业实习的学生采取“三位一体”的双导师指导模式。即企业项目为载体,学生为主体的模式,校内和校外导师为主导。这部分学生一般是在大三下学期暑假就已经进入企业实习,而我们每年毕业设计选题工作是在十一月末,也就是学生进入企业实习后三到四个月的时间,学生经过企业阶段的培训,对企业的生产过程、企业文化有了一定的了解。此时,学院组织校内外导师和学生共同协商,以企业项目或子项目为学生确定毕业设计选题。2.充分发挥导师的资源优势,学院大部分教师都有自己的科研课题,这些科研课题有些是直接来源于企业的横向课题,还有一些是信息技术领域的应用研究课题,我们鼓励教师从这些课题中提取出一些子项目让学生实践,作为毕业设计的选题。3.充分挖掘学生的专业技术特长和兴趣点并结合学生的择业倾向,确定最能发挥自身优势和潜能的选题。毕业设计的选题不仅要与实际需求相结合,更重要的是应该结合学生自身的技术优势和兴趣。只有学生对选题有兴趣,他们才能尽早地进入状态,发挥自己的创造能力和积极主动意识。所以,选题阶段导师和学生的沟通交流就显得尤为重要,通过沟通导师可以了解学生的能力、兴趣和择业倾向,学生也可以对选题,有进一步的认识,对于不感兴趣的选题学生也可以通过与导师进一步的探讨进行题目的修订。 二、注重环节审查,加强过程监管 虽然“好的开始是成功的一半”,但是如果缺乏中间环节的监管,仍然不能保证好的效果[4]。因此,为保证毕业设计(论文)的质量,我们制定了明确的质量标准、管理条例,并由院长、学术委员会、系主任和教务办主任组成毕业设计(论文)工作委员会,负责毕业设计(论文)工作的组织、评定和监管,同时保证管理条例的严格落实及各个环节工作的正常进行。为健全毕业设计(论文)的监管机制,学院先后规范和完善了《毕业设计(论文)工作管理办法和实施细则》《开题报告》《开题评分标准》《中期报告》《中期检查标准》《毕业设计(论文)撰写规范及模版》《毕业设计(论文)盲审表》《答辩程序和评分标准》等一系列管理办法和文档标准,使毕业设计工作在制度和规范下能顺利有效地进行。每年毕业设计工作之初,我们都要给学生开一个动员会,在会上阐明毕业设计(论文)的重要性,以及毕业设计对他们未来工作的影响,调动他们学习的主动性、积极性和创造性。此外,系主任还要向学生介绍学院毕业设计(论文)管理办法和实施细则,各阶段的工作要求和时间节点,以及各环节检查的内容、需要提交的文档,使学生在毕业设计开始时能做到心中有数。同时,我们也要求指导教师随时解答学生的问题,坚持每周开例会,检查学生的工作完成情况,并提出一些有技术含量和理论深度的问题启发他们思考,激发他们的学习热情,并与学生一起确定后续任务。此外我们组织开题检查、中期检查,对开题检查成绩后30%的学生,不但检查中期报告,还要现场检查程序。对于中期检查不合格的学生,要求限期整改,如果仍然不合格则取消答辩资格。在答辩之前,我们还要对论文进行盲审,盲审不合格的学生不允许答辩,对有异议的论文要提交学术委员会做最后论证。虽然学院对毕业设计(论文)工作在各个环节上的审查都非常严格,但我们鼓励学生之间进行研讨交流,博采众长,相互提高,因为我们的目的不是抓出多少不合格的学生,而是想通过大学阶段最后的综合性实践教学环节训练,培养学生的学习能力、知识的综合运用能力、分析解决问题能力和沟通交流等综合素质。 三、严把答辩关,保证毕业设计质量 答辩是毕业设计(论文)考核阶段的最后环节,这个环节既是学院对学生毕业设计的验收和鉴定,同时也是学生对自己工作的总结和汇报。通过答辩,学生不仅展示了毕业设计工作的效果,更展示了自己的专业知识、技术水平和综合素质。作为教师,每年都要指导多个毕业设计(论文),而学生一生只能经历一次本科毕业设计,而且毕业设计答辩能否顺利通过,直接关系到学生毕业及学位资格的认定。因此对学生来讲,毕业答辩至关重要。这有点像外科医生与患者的关系:医生每年要做很多手术,对他们而言手术已是司空见惯,但对于患者本人,可能一辈子才上一次手术台,而且生命攸关。所以,我们要在毕业设计指导过程中,认真对待每一位学生。同时在毕业答辩中严格把关,保证质量,更要秉承“公开”“公正”“公平”的原则。我们的毕业设计(论文)答辩采用小组面试形式,每组由四位副高职以上教师组成,答辩流程如图1所示。答辩当天向学生公布成绩,毕业设计(论文)总成绩由开题成绩(10%)、中期成绩(10%)、指导教师成绩(10%)、答辩成绩(70%)构成。对于优秀的和不及格的学生,我们还会重新组建答辩组进行二次答辩。这是考虑到答辩组之间认同度的差异而导致评分标准出现偏差,可能有些答辩组打分会偏低,有的组打分会偏高,即各个答辩组评分信度不能达到一致。二次答辩可以有效地消减组间评分差异,从而使申报校优秀论文人选和未通过人选的确定做到公正、公平和有效。针对软件行业特点,我们通过强化实践教学环节,合理利用多方资源拓宽毕业设计(论文)选题途径、健全和完善毕业设计(论文)的监管机制等手段,确保了毕业论文质量的稳步提高。几年来,黑龙江大学软件学院的毕业设计(论文)质量受到校内外专家的一致好评,获校优秀论文比率一直位于学校前列。实践证明,加强毕业设计(论文)质量的监管,不但提高了学生工程实践能力、独立科研能力和创新意识,为学生进入工作岗位打下了良好的基础,进而也提升了学生的就业率。 作者:任美睿 金英 郭龙江 单位:黑龙江大学 软件毕业论文:高职院校软件技术专业毕业设计论文 一、高职院校毕业设计存在的问题 (一)对毕业设计的重要性认识不足 毕业设计一般开设在高职教育的第五学期,此时很多学生都已经签约了用人单位。学生在思想上会认为自己已经毕业,毕业设计只是个形式,只要把论文完成,按时上交就可以了。因此,很多学生在做毕业设计时态度不积极,课堂上有些学生占用大部分时间上网聊天、看视频或者玩游戏,有的甚至不来上课。等到要交作业的时候,随便从网上下载一篇毕业论文应付了事。在每年的毕业论文答辩会上,都出现过这样的情况:学生对自己的论文题目解释不清,对所开发系统的功能描述不准,对专家提出的问题回答不上来。这些都是因为学生没有充分认识到该课程的重要性。 (二)毕业设计选题不当 选题是毕业设计开展的第一步,也是关键的一步。好的选题能够激发学生的创作热情,提高学生的学习兴趣。但是目前有些高职院校的毕业设计选题陷入了恶性循环,主要存在两个方面的问题。一是题目陈旧没有新意。很多教师在毕业设计指导课上会习惯性地给学生一些参考题目,这些题目往往是连续使用了很多年的旧选题,严重影响了学生创新能力的培养和发挥。二是选题不准确。学生缺乏实际项目开发经验,很容易出现选题过大、过小或题目缺乏实际应用价值的现象。题目过大,系统功能复杂,技术要求高,超出学生的能力水平会导致设计任务完不成;题目过小,难度和工作量上就不能满足毕业设计的考核要求[2]。 (三)课程管理不到位 不少高职院校的学生在进行毕业设计时都已经到用人单位顶岗实习,这给毕业设计的管理带来不便。毕业设计的教学模式不同于普通课程,教师一般是定期对学生的工作进展情况进行抽查,对学生设计过程中遇到的问题进行集中答疑。对于已经到单位顶岗实习的学生,只能通过网络进行在线辅导。学生的选题不一样,难度不一样,加上自身素质的差异,他们在进行毕业设计时的工作进度往往是不一致的。由于缺乏统一的管理,最终毕业设计完成情况就各不相同,部分学生到最后草草收场,严重影响了毕业设计课程的教学质量。 (四)考核方式不科学 基于毕业设计课程的特殊性,很多高校都采用集中答辩的方式进行最终考核。答辩时,学生用PPT解说自己的毕业设计项目,评审老师检查毕业论文,进行提问。由于时间有限,评审老师主要检查论文编辑格式是否符合要求,论文是否有明显的抄袭痕迹,项目是否有详细的设计过程,项目是否实现以及专业知识提问能否回答正确。这种考核方式就给部分投机取巧的学生提供了机会。他们从网上下载现有系统,抓取操作截图,把网上相关的毕业论文重新编辑整理,蒙混过关。因此,毕业论文完成情况并不能反映学生的真实水平,这种考核办法存在很大的漏洞。 二、解决方法 (一)提高认识,端正态度 首先要让学生明白毕业设计课程的重要性。教师要利用第一节课给学生讲明白毕业设计的意义、主要工作任务、上课方式和考核办法,让学生对这门课有清晰的认识,在思想上高度重视起来。同时,在平时的课堂教学中,教师除了传授知识和技能外,可以有意识地强调本门课程在进行毕业设计时发挥的作用,让学生对自己所学的知识有系统的认识,为最终的毕业设计打下基础。 (二)解放思想,发展个性 在选题上,教师一方面可以给学生提出专业性的建议,另一方面要充分尊重学生自己的想法。具体做法是:一要充分了解新时代大学生的个性,综合考虑学生对所学课程的理解和掌握程度,关注学生感兴趣的热点话题,从实际出发,鼓励学生选择自己喜欢的课题;二是教师可积极吸收学生加入到自己的科研队伍,感受真实项目的开发过程;三是参加顶岗实习的学生可以选择企业的实际工程项目,在工作的同时完成毕业设计。这些做法可以充分调动学生的学习积极性,锻炼学生的创造力和想象力,充分发挥毕业设计课程的价值。 (三)细化任务,重视过程 细化毕业设计任务,重视过程化管理是保证毕业设计质量的重要手段。一般高职院校学生进行毕业设计可2~3人分组完成。按照自由组合的原则,教师可适度调整,保证每组人员搭配合理。比如两名优秀的学生可以帮助一名中等生;每组中既有编程能力强的,又有数据库设计好的,还有擅长文档编写的,尽量模拟企业真实情况,充分发挥每个学生的特长,做到各尽其才[3]。软件技术专业学生开发管理信息系统的工作任务分解及过程化考核指标如表1所示。(四)全程监控,量化考核毕业设计任务安排清楚后,实施有效的过程化考核手段是非常必要的。合理、详尽的考核措施可以更好地约束和引导学生完成毕业设计。这里,我们建议利用网络作为交流平台,对学生的毕业设计开展过程实施全程监控,对每一步的工作成果实行量化考核。教师首先教学任务安排;学生在规定的时间内提交阶段工作成果,教师审阅并给出修改意见;学生修改并上传修改结果,教师对本阶段作业以百分制打分;当整个毕业设计课程结束时,教师按相关比例进行换算,给出最终成绩。这种考核方式既给了学生充分的自由空间,又能有效督促学生保质保量地完成毕业设计。学生在专业技能得到综合运用的同时,也在自我管理、自我约束和团队协作方面得到了一定的锻炼,为今后进入职场打下良好的基础。 三、结语 毕业设计不仅是学生对所学专业技能的一次综合应用,也是学生职业素质的一次综合培养。积极正确的引导,新颖恰当的选题,规范开放的管理,科学合理的评价是提高毕业设计质量必不可少的四个要素。对软件技术专业学生而言,毕业设计的实施方式贴近企业实际项目开发,能鼓励学生主动参与研究,培养其严谨周密的思维和有效合作的团队意识,改变学生被动接受,疲于应付的学习状态[4],是有效开展毕业设计的重要举措。 作者:张丽景 单位:兰州石化职业技术学院 软件毕业论文:三维软件之毕业设计论文 1现有毕业设计指导方法存在的问题 通过以上现状进行对比,可以看出,后者的优点是课题是实际课题,教师对题目有着足够的了解,并且有机会亲自指导学生进行实验,学生也可以在设计的过程中始终看到实物,对所设计的题目有全面生动的认知,对毕业设计的质量将有所保障。而前者虽然完成了毕业设计过程,却很难保证质量。因为在毕业设计初期存在如下问题:第一,一个指导教师带多个学生,按一生一题的要求,即一个指导教师有多个题目,很难做到每个题目都是实际课题,必然有一些题目是理论课题,无法提供实物给学生研究或所设计的机械不能实际生产,更谈不上教师有机会在现场指导学生。第二,学生查阅资料能力较弱,即使能找到资料,也往往多为文字资料、外观图片、局部平面图或类似题目的结构图。可以完成毕业设计的前提是必须对这些资料进行阅读、理解、掌握,这要求学生要有一定的识图能力、理论与实践结合的能力和一定的科研基础。但这些是大四学生不具备或者很薄弱的。只有通过指导教师的反复讲解,才可以帮助学生理解题目和资料。换言之,查阅资料阶段会消耗指导教师和学生大量的时间,这将影响毕业设计的整体进度。另外,目前毕业设计过程中也存在着学生对工程设计的一般程序规范不明确,需要教师逐个对学生进行明确的讲解,这也在一定程度上占用了教师的指导时间。以上种种都将影响毕业设计质量。综上,寻找有效的提高应用型本科大学机械类专业毕业设计质量的新方法势在必行。 2毕业设计三维范例库文件对毕业设计指导的重要性及实际应用效果 2.1建立毕业设计三维范例库文件对毕业设计指导的重要性 针对前面所论述的毕业设计存在的问题,利用三维软件UG、Pro/E、3DSmax等,对现有的机械设计进行规范化建模仿真,并编制数据管理软件类应用程序,将之完善成毕业设计范例库文件,以方便调用的方式,允许学生调用查阅。用生动形象的方式,模拟所设计机械实体结构,使学生对毕业设计题目有更深刻的印象,以解决学生查阅资料难、指导难的问题,提高毕业设计质量。同时,将建模过程分解,以动画的形式将设计过程演示给学生,使学生更明确工程设计的一般程序和规范,提高设计能力,保证毕业设计质量。另外,将以上机械中的通用部件提取形成基础库文件,该基础库不仅可以对除这四大类机械以外的其他设计有所帮助,而且可以为相关课程教师授课时的多媒体课件动画演示制作提供素材,以提高教学质量。 2.2将毕业设计三维范例库文件应用于毕业设计指导的应用效果 笔者曾在毕业设计当中,指导学生设计Stewart平台电液驱动机构,该平台是六自由度并联机构的基础平台,通过六个作动器的协调伸缩来实现平台沿x、y、z向的平移和绕x、y、z轴的旋转运动(共6个自由度),以及这些自由度的复合运动。可用于娱乐业的运动模拟,机器人、飞行器空间交会对接,仿真器、舰船及汽车模拟器,新型加工机床,卫星、导弹等飞行器的精确运动仿真。平台结构并不复杂,但其运动及控制极其复杂,这给学生查阅资料阶段增加不小的难题,并消耗大部分的时间进行消化资料和理解平台的运动方式,影响后续的设计进度和质量。其相关资料图为平面图(见图1),结构不容易理解。经调阅三维范例库文件,找到了相关类似的毕业设计,使学生看到了三维软件构建的“实物”和动画模拟的运动(具体见图2),帮助学生了解其运动和设计搭建过程,为以后的设计打下了坚实的基础,最后,学生以优异的成绩完成了毕业设计,自信满满地走向了工作岗位。 3结语 综上所述,寻找一种有效的适用于应用型本科大学机械专业毕业设计的方法势在必行,而将应用型本科机械类毕业设计和三维软件、数据管理软件三者相结合,建立三维范例库文件,突破传统毕业设计指导方法的局限,可以缩短毕业设计初期查阅理解文献资料的时间,加快设计进度,从而为保证毕业设计质量打下坚实的基础。 作者:徐莉 苗淑杰 刘喜平 刘春香 王巍 付彦虹 单位:黑龙江工程学院机电工程学院 软件毕业论文:软件工程毕业实习设计论文指导论文 随着软件学院的不断发展,为适应市场需求,近年来软件工程××方向专业应运而生,如软件工程机电一体化方向专业,该类专业培养既掌握软件工程领域扎实的专业知识和技能,又掌握一定的机电专业方向背景知识的人才,毕业生适宜在机械工程及自动化产业、软件产业或其他部门从事产品、零部件设计、制造、控制以及软件开发研制、管理工作,也可以继续攻读机械工程及自动化专业、计算机学科以及与计算科学等相关学科的硕士学位研究生。目前中北大学、大连交通大学、华东交通大学及江西理工大学等的软件学院都开设有类似专业。毕业设计是教学计划中培养学生综合运用本专业基础理论知识、专业知识与基本技能增强自身实践、创造、就业和创业能力的重要教学过程。毕业实习及其设计(论文)质量的高低对培养高素质人才教学目标的实现程度和学生的就业与发展有着举足轻重的影响[2]。 1目前存在的问题 我国高等教育长期存在重理论、轻实践的问题,因此教育部多次强调并明确指出要大力加强实践教学,建立和完善校内外实习基地,高度重视毕业实习,提高毕业设计、毕业论文的质量。软件工程专业是一门理论与实践联系非常紧密的学科,若按照传统重视理论的培养模式,毕业生则难以满足当前社会用人单位的需求[3]。对于相对新兴的软件工程机电一体化方向专业,其专业知识结构及培养目标决定学生面临的毕业实习与设计问题更复杂,目前存在的主要问题表现在如下几方面。(1)就业与选题的矛盾。基于该类专业的培养目标,毕业生目前就业意向主要有三:一是在软件产业从事编码测试、系统分析设计或具有软件领域知识的复合型技术服务、销售和管理(软件方向);二是在机械电子工程应用背景专业领域从事软件开发及机械研究、产品设计、制造、管理等工作(工程应用方向);三是考研、考公务员和自主创业等(考研方向)。因就业方向的多元化、毕业实习设计老师(包括软件企业导师)的专业领域和人数限制、实习条件的限制等多重原因,学生难免产生选题与就业意向不相符的矛盾。(2)毕业实习设计与考研、公务员招考时间安排上的冲突。毕业实习设计一般都安排在第4学年的第7学期、第8学期,而这期间,每年一度的全国研究生招生考试和公务员的国考、省考也同时举行,这就导致“考研方向”的学生在备考和完成学业间的矛盾,如不进行相应调整,势必影响毕业实践环节的教学质量。(3)软件方向与专业方向的不协调因素。软件方向学生一般采用3+1的培养模式,也就是说,第4学年大多在软件企业完成基于项目驱动的毕业实习和毕业设计;而工程应用方向和考研方向往往还有几门课程需要在校学习,在时间和内容安排上往往存在冲突。(4)毕业实习与毕业设计不能有机对接。毕业实习是毕业设计的重要准备阶段,毕业实习要结合毕业设计课题,到生产第一线进行专业实践与社会实践,收集与毕业设计有关的信息和资料,毕业实习的内容和质量对毕业设计的质量有直接的影响。毕业设计要将所学基础知识、专业理论与毕业实习的实践相结合,注重分析问题、解决问题能力的培养,它能在一定程度上检验毕业实习的效果[4]。软件工程培养实用型、复合型人才的特点使其对毕业实习与设计的衔接要求更高,而且该类专业多元的就业意向及其他复合因素使得学生的实习与设计内容往往不能有机衔接。目前软件工程专业毕业实习设计的教学工作中,面对学生就业自主化的严峻形势,存在着毕业实习与毕业设计不能有效衔接、教师对两者核心含义把握不好、设计(论文)选题及内容与经济社会对人才需求脱离以及忽视对学生的创造能力意识培养和训练等影响毕业设计论文质量的问题,因此进行全新的教学改革已经迫在眉睫。 2毕业实习设计指导需考虑的因素 1)学习动机。自我效能感、学习动机和学业成就三者之间存在相关关系,且自我效能感与学业成就、学习动机和学业成就之间均呈显著正相关[5]。自我效能感是人们对自身能否利用所拥有的技能完成某项工作行为的自信程度;学习动机是推动学生进行学习活动的内在动因,是激励、指引、维持、调节学生学习的强大动力[6];学业成就指经过学习和训练后所获得学业方面的知识和技能,是学生学习状况和水平的集中体现。高校毕业班级学生处于即将告别学生时代而走向社会的特殊阶段,毕业、考研和就业等诸多问题以及社会价值日趋多元和竞争压力日益加剧的强烈冲击,对其学习和心理产生了重大影响[7]。为增强学生的学习动机,从选题入手,贯穿毕业实习设计各环节,融学生兴趣爱好、就业意向与学生毕业实习设计于一体,激发学生的内在动力,是取得好的设计质量的关键因素之一。2)项目驱动。有效地整合指导教师的各类纵向、横向在研项目并将其进行深入的挖掘和提炼,根据毕业实践环节具体要求细分软件工程项目,将其引入到学生毕业实习设计中,采用以项目驱动为主体的人才培养模式,优化管理体制与实验室运行机制,探索一种新的实践教学模式,以期实现实践教学过程可控化、项目实施团队化、项目资源共享化的目标,培养具有扎实的工程实践能力、较强的技术创新能力、良好的团队协作能力和可持续发展能力的人才[3]。3)导师制。采用指导教师全程负责制是确保后续创新模式实现的关键。导师可以是从学校选定的各方向专业教师,也可以是从企业选出的工程技术人员,还可以是两者的结合(双导师制)。导师既要完成毕业实习与毕业设计的组织工作,又要完成这两个环节连贯且相互渗透的业务指导工作。为确保这种教学模式有条不紊地实施,指导教师应认真履行相应的职责。首先,根据毕业实纲和设计大纲的要求,与企业协调好学生的毕业实习设计课题和企业的生产技术工作需要之间的关系,落实毕业实习内容及合适的毕业设计课题;其次,要对学生毕业课题进行方案论证,及时提供指导和质量监督,确保教学任务的完成[4]。 3毕业实习设计指导创新模式的设计 结合软件工程机电一体化方向的专业特色,在现有基础上设计的毕业实习设计创新模式总体框架如图1所示,其主要内容包括如下几方面。1)以学生为本,模块化组织。基于学生的学习动机,根据学生某方面的专业特长和未来的发展取向,该模式分为3个大模块:以软件设计、软件测试、软件维护和软件项目管理等为目标的软件模块(软件方向);立志于进一步深造的考研、公务员考试等模块(考研方向);面向工程的工程应用模块(工程应用方向)。大模块下再设子模块,如以工程应用为背景的模块又分为UG、PRO/E等大型软件的工程应用模块;以单片机、PLC等程序开发为主的工控模块;CAD、UG、PRO/E等面向应用软件的二次开发模块。学生根据学业基础、就业意向及学习兴趣自主选择。2)毕业实习设计一体化。毕业实习与毕业设计是保证教学质量的重要阶段,二者的关系越来越密切,将二者人为分割的教学模式已不太适应教学的需要,必须建立二者紧密结合的教学新模式。具体来说,软件模块将毕业实习和毕业设计两个阶段合并为一个阶段,形成一个相对较长的时间整体,与大型软件公司合作,安排在第4学年,这也是软件工程专业目前比较流行的模式;工程应用模块中学生可以根据毕业设计课题有针对性地开展毕业实习工作,实习、设计由同一导师指导,采取集中实习和反复调研的形式,实习围绕设计的需要展开;考研模块则将实习和设计的时间提前,第6学期即由指导老师提前介入,预先安排相应工作,在充分保证设计质量的前提下,为考研创造条件。至于软件方向与背景专业方向课程安排上的冲突,软件学院采取课程置换与学分互认方式,拓宽学生的专业课程知识,达到多元方向的均衡。3)导师制和项目驱动贯穿始终。采取导师负责制,将部分学生(考研方向)的毕业设计提前到第6学期开始,到第8学期结束,历时1年半时间。在导师的指导与安排下,学生开展的工作包括文献检索,熟悉设备,仪器校准,实验计划,实验开展,项目调研、开展、改进和总结各环节。基于项目驱动,每一学生的实习设计选题均为某方向科研子项或工程子项,学生通过一个完整的项目链,在熟悉科学研究方法、步骤和科研组织等环节基础上,全面培养动手能力、独立工作能力和创造性的思维能力。4)建立全程质量监控体系。“全程”指从毕业设计选题、毕业实习指导、教师下任务书、学生做开题报告、方案设计、实验、中期检查、撰写论文到答辩评分、总结归档等质量形成的全过程;以制订计划、明确目标执行计划检查、反馈处理、纠偏制订新的计划、目标为质量监控途径。针对毕业实习、毕业设计的各个环节,制订详细可行的规范,把握各阶段的时间节点和考核标准,目前要求教研室审核的关键节点包括选题、任务书、开题、中期检查、综合评价、答辩等。 4工程实践环境的构建 要保证上述模式的良好运行,必须有一个稳定而可行的工程实践环境。我们一直注重软件工程专业实践应用型人才培养,不断加强与IT等用人企业的合作。从软件工程机电一体化方向专业开办以来,江西理工大学软件学院先后在中兴软件、中天电子、江西微软、上海杰普等多家大型软件公司和IT培训机构建有校外实习基地,在江西铜业公司、中金岭南股份公司、恒天动力有限公司等建有校外专业背景方向实习基地。打造相对稳定、整体素质较高的导师队伍是实现该创新模式的有效保障,学院应考虑:①从实习基地遴选指导教师;②选派软件方向教师到合作基地工程实训;③选派专业方向教师到国内知名院校访学。对毕业实习设计各环节,软件学院制定有详细的《毕业实习设计规范》,系部成立“软件工程毕业设计领导小组”。教研室针对该内容进行深入调研与问题分析,在教师中开展动员,提前落实并布置工作;在学生中宣传动员,使学生在思想上有准备,重视毕业实习、毕业设计;在毕业设计过程中,强调过程质量控制和管理,及时跟踪控制,及时发现问题、解决问题。 5结语 基于该模式,近年来,江西理工大学软件学院学生的毕业实习设计质量不断提高,实践能力和综合素质不断提升,就业质量也逐年提高,就业率在同类高校中一直保持前列。同时,我们也将总结实践经验和实践效果,不断完善该模式,为相关专业的教学改革起到示范和推动作用。能力培养是高等工程教育改革的重要任务,强化能力培养还需要在已有成果基础上进一步完善各实践环节的内容与规范,使得软件人才培养与企业需求真正地“无缝衔接”。 作者:江西理工大学软件学院 单位:张乐平 软件毕业论文:软件工程在毕业论文中应用 一、软件生存周期各阶段应完成的任务 1.概要设计阶段和详细设计阶段概要设计阶段主要完成软件系统总体结构的建立、定义功能模块的接口、设计全局数据库和数据结构、规定设计约束、编制概要设计文档等工作;详细设计阶段主要完成模块详细设计及编制模块的详细规格说明工作。包括模块的详细功能、算法、数据结构和模块间的接口信息等设计,拟定模块测试方案;把模块详细设计的结果汇总,形成模块详细规格说明书。这两个阶段对应于毕业设计的系统设计阶段。2.实现阶段与组装测试阶段实现阶段主要完成编码及单元测试工作。根据模块详细规格说明书,将详细设计转化为程序代码、对模块程序进行测试,验证模块功能及接口与详细设计文档的一致性,并形成单元测试报告;组装测试阶段主要完成模块程序组装与测试及组装测试报告的编写。3.确认测试阶段该阶段主要完成软件系统测试、确认测试文档编制及软件评审工作。根据软件需求规格说明定义的全部功能和性能要求及软件确认测试准则对软件系统进行总测试;向用户提供以确认测试报告为主的有关文档,包括系统操作手册、源程序清单和项目开发总结报告等;由专家、用户、软件开发人员组成的软件评审小组对软件确认报告、测试结果和软件进行评审,并将得到确认的软件产品交付用户使用。这个阶段主要对应于毕业设计(论文)中的论文评审、结题验收及毕业设计的答辨准备阶段。4.软件运行与维护阶段主要进入软件的使用阶段,并完成软件的维护工作。它主要对应于毕业设计中的答辩阶段。 二、毕业设计应注意的几个问题 1.摘要摘要是对文章主要内容的摘录,要求精、短、完整。以几十字至三百字左右为宜。摘要应具有独立性和自明性,从摘要中即应获得必要的信息;摘要中只能使用第三人称;要客观如实地反应原文的内容,要着重反映论文的最新内容和作者特别强调的观点;要求结构严谨、语义确切、表述简明,一般不分段落、不进行自我评价。2.关键词关键词主要用于论文检索,它是从论文的题名、摘要和正文中选出的,是对表述论文的中心内容有实质意义的词汇,关键词一般以3~5个为宜。3.结论结论写作的内容应主要考虑本文研究结果是什么?研究结果说明了什么?对前人有关的看法作了哪些修正、补充、发展、证实或否定?本文研究的不足之处或遗留未予解决的问题以及对解决这些问题的可能的关键点和方向等。结论应该准确、完整、明确、精练。4.需求分析在毕业设计中,学生往往不能对所做题目进行充分的调研,需求不明确,随意想象的成分较多。特别是在数据表的建立上,大部分同学随意设置字段的类型,而字段长度基本上采用默认置。而在实际项目开发中,数据项的设置应主要注意以用户的需求和满足系统要求为准,而不应设计冗余的字段;数据的类型要依据实际需求,当某些字段可以是选择某几种类型之一,应考虑哪一种更有利于本系统或哪种更易于用户操作和维护。5.详细设计许多同学把详细设计阶段的任务理解为代码实现,因此,在概要设计之后就着手进行代码的编写而忽略了算法的表达及测试用例的编写环节,由此造成的结果是随意编程,大量的时间浪费在程序的修改和调试上。6.软件测试测试做得不够全面,大部分同学只选择了有效的测试用例,而没有进行无效的测试用例的设计,因此所做的软件BUG较多。7.团队合作在毕业设计中,应有意识地锻炼学生们的团队协作精神,因此,在布置毕业设计题目时,应尽量选择规模大一点的题目,然后由4~5名同学共同协作,每人完成一个子题目。这样,可以使学生们分析问题和解决问题的能力、沟通和表达能力得到充分锻炼,为今后的工作奠定基础。 作者:王素芬 单位:沈阳工程学院 软件毕业论文:SW软件在毕业设计的应用 传统的设计结果不能直观的反映夹具的结构,并且在设计过程中出现的错误很难及时发现,因此指导教师在设计过程中要不断的审图,帮助学生找出设计中的错误。即使是一些结构上的小变动也可能导致学生重新设计,这种繁琐的重复性工作贯穿于整个设计过程,耗费师生大量的时间和精力,而学生的接受却有限,甚至出现学生拒绝修改的情况。鉴于传统设计的局限性和低效性,三维软件,特别是SW软件以其优异的性能、易用性和创新性,被广大师生接受并应用于毕业设计中。 1三维建模及仿真 在夹具设计的过程中,根据确定下来的设计方案,学生可以对定位元件、夹紧装置、支撑元件、导向元件之间装配关系予以确定,需要的标准件从标准库中直接调用,如果是夹具体、钻模板、支撑架、非标准定位销等,可以自由地在装配环境下进行零件的设计,并且设计出来的零件无需约束,自动装配到钻夹具装配体上。专用夹具装配体建立以后,接着可用SW软件自带的Animator插件对装配体进行运动仿真,使装配体产生运动,如果发生动态干涉,系统会报警,并给出干涉的部位。SW软件具有对设计方案动态修改的功能,在设计过程中随时修改零件尺寸和结构形式,相对应的零件会自动更新,使设计修改工作简单方便。由于SW设计的直观性,学生的接受效果大大提高。SW软件还可以动态模拟钻夹具从零件到整个装配体形成的过程以及装配体的运动过程,并形成可单独保存的AVI格式动画文件,脱离SW软件环境也可以播放,方便直观地观察仿真设计结果,使老师尤其是答辩老师可以快速地了解夹具装配设计、结构的工作原理和方法,节省学生在答辩时的解释时间,提高了毕业设计的效果和答辩效率。经仿真检验修改后的装配体,利用SW软件的“爆炸”功能生成爆炸图,显示夹具装配体详细的结构和相互间的装配关系。 2二维工程图的形成 SW软件利用设计的三维立体图可以自动转化成二维平面图,并且局部放大图、剖视图、标题栏、明细表等也自动生成。设计学生只须根据生产工程图的标准对转化的二维平面图进行修改,即可形成标准的二维工程图。 3总结 笔者在最近几年的毕业设计指导中,积极引导学生进行三维设计,使设计过程直观简便、设计效率高,提高了学生的现代工程素质。应用SW软件进行毕业设计的结果显示,三维设计对学生知识的拓展,动手能力、分析能力、创新能力、处理问题能力的提高超出预期效果。 作者:李君 黄绍服 单位:安徽理工大学 软件毕业论文:管窥软件工程在毕业设计中的应用 1软件工程在毕业设计中的作用 软件工程不仅是计算机科学与技术专业、软件工程专业的一门专业基础核心课程,也是其他相关专业,如信息工程、系统工程、信息与计算机科学、信息管理与信息系统等专业的重要应用技术课程。对于这些专业的学生来说,毕业设计多是以软件开发类项目为主,整个毕业设计就是开发一个软件。为了更好地完成软件开发类毕业设计,提高学生毕业设计的质量,进一步规范毕业设计中的软件开发过程是必需的。软件工程的思想正是用工程化方法构建和维护有效的、实用的和高质量的软件。按照软件工程思想,软件开发的生命周期分为可行性分析、需求分析、总体设计、详细设计、编码实现、软件测试和软件维护几个阶段。在学生的毕业设计中以软件工程的思想为主线,从软件工程的角度去指导学生进行毕业设计,挖掘软件工程在系统开发过程中的价值,解决毕业设计中存在的一些问题,既有助于学生更好地理解软件工程的方法、技术和思想,更有助于提高软件类毕业设计的质量。 2毕业设计中存在的问题 笔者在指导学生软件开发类毕业设计过程中发现,毕业设计存在着选题难、任务重、重视编码、轻过程、项目无法完成等现象。设计过程中没有严格地遵循软件工程的开发方法,没有规范的软件设计过程,项目能否成功主要依赖于个人能力和个人努力,这种不正确的开发方法带来了严重的后果。在项目开发的过程中常常存在以下几个方面问题: 2.1选题的盲目性 选题是毕业设计过程中的一个初始环节,选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生。学生没有认识到毕业设计的重要性,纯粹是为了完成学业而做毕业设计,选题没有一个确切的目标,往往是随便选一个题目,造成选题的盲目性,出现了选题陈旧、选题范围狭窄、选题偏大等问题,使学生抄袭、完成不了毕业设计的情况时有发生。 2.2缺少软件的系统分析 软件开发过程的第一个阶段是系统分析,用来确定软件开发要解决的问题是什么?估算完成该项目需要的资源和成本,确定目标系统应该具备哪些功能,主要经历问题的定义、可行性分析和需求分析三个阶段。软件的系统分析确定了用户需求,同时对目标系统提出完整、具体的要求,引导开发者正确地构建系统。因此,对用户需求做出全面、正确的分析,对于最终软件开发类毕业设计的成败起着至关重要的作用。然而在完成毕业设计过程中,学生往往认为代码编写最重要,对软件开发过程中的可行性分析和需求分析阶段不重视,甚至没有系统分析,对整个毕业设计的完成造成了影响。 2.3软件设计过程杂乱无章 软件设计一般都要经历可行性分析、需求分析、总体设计、详细设计、编码和测试阶段。而部分学生在毕业设计开发的过程中,缺乏软件工程设计思想,跨越需求分析、概要设计、详细设计和功能模块设计,直接进行代码的撰写;或者从代码反推出模块设计;甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才确定。这种无序的软件设计过程,导致最终设计的系统杂乱无章、代码的重复率高、潜在?Bug多、系统的可集成性非常差、不能在规定时间内完成设计或者系统无法运行。 2.4开发过程中文档不完备 根据软件工程学的基本原理,软件=程序+文档,可见软件文档是软件开发过程中不可缺少的组成部分。软件文档贯穿于软件开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。但在实际毕业设计中,很多同学认为把程序代码编出来了,毕业设计也就完成了,提交的毕业设计论文就是系统代码的复制,即只做出一个可演示可操作的系统,而忽略了软件开发的完整性、系统性。完整的毕业设计不仅包括可操作的系统,还包括在开发系统的过程中所产生的各个文档资料。文档的缺失会降低软件开发的效率、影响整个软件的开发、使用和维护。以上问题的存在,严重影响了毕业设计的进度和质量,没有达到毕业设计的目标要求。针对当前毕业设计的现状和存在不足,笔者认为应用软件工程学的思想指导毕业设计,对促进学生综合素质与工程实践能力培养具有积极意义。 3用软件工程思想指导学生进行毕业设计 3.1以可行性研究指导选题 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。毕业设计题目的选择,应立足于解决工程实际问题,可由指导教师提供符合相关专业毕业设计要求的题目,也可以鼓励学生自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。选题过程以可行性研究为指导,从课题规模大小、难易程度、学生自己的研究方向、爱好、学生的知识层面和能力等多个方面进行考虑,对于选择的题目是否能够解决,确定在规定的时间内完成毕业设计的可行性。指导教师可根据学生选报的题目来指导学生对该选题进行调查研究,明确课题要解决的问题是什么,简要地写出关于问题性质、项目目标和项目规模的书面报告。可行性研究来指导毕业设计的选题,实质上是简化了系统分析和设计的过程,也是在较高层次上以较抽象的方式进行的系统分析和设计的过程,使学生对于课题的设计有个清晰的思路,为及时完成毕业设计提供了可能。 3.2重视软件的需求分析 需求分析的基本任务是准确地回答“系统必须做什么”,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,不仅指明了系统设计时必须要实现的目标,也是软件设计、实现、测试和维护阶段的主要参考标准。用户需求的获取是软件开发中最重要、难度最大的工作,它贯穿于整个软件设计过程,不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。在进行需求获取和分析时,为了及时、准确地获取,可采用软件工程中比较成熟的方法,例如访谈、实际调查、UML的用例技术等。需求分析在软件系统分析与设计阶段起着桥梁的作用,确定了系统的需求,才能制定出软件设计的框架,保证毕业设计循序渐进、有条不紊地进行,避免后期开发过程的频繁返工,进而按时完成最终的任务。 3.3规范毕业设计过程 软件开发类毕业设计一般是开发一个软件系统,实现一定的功能。“麻雀虽小,五脏俱全”,无论软件规模的大小、功能的多少,都应该严格按照软件工程中软件生命周期每个阶段的步骤完成各项任务。要培养学生把软件工程的概念贯穿于整个毕业设计过程,也就是说,让学生把开发软件的过程看成是盖一栋大楼,修一条公路的实际工程,用工程化的思想指导毕业设计,确定完成课题的各项任务的工作步骤,注重软件类毕业设计的过程,而不是学生所认为的毕业设计就是编程序,代码调试通过即可。通过工程的概念规范毕业设计过程,让学生明白开发一个软件系统一般经过系统分析、系统设计、系统实施三个阶段,必须严格遵循软件生命周期的规律,完成各个阶段的任务,才能最终提高毕业设计的质量。 3.4重视文档的写作 软件工程中的瀑布模型严格地规定了在整个软件生命周期的各个阶段,都要提交相应的文档。文档不仅记录软件开发过程中的大量信息,在软件的开发、维护过程中也起着重要的作用。在指导学生毕业设计时,要求学生遵照软件工程的思想,把文档作为整个设计的指挥棒,记载设计过程的每一阶段完成的目标、任务及技术手段,建立健全毕业设计文档制度,确保毕业设计过程中的文献综述、译文、任务书、开题报告、选题审题表、中期检查表、设计(论文)正文、答辩记录等各环节教学资料档案完善、规范,实现对毕业设计的全程监控。 4结束语 软件工程是软件开发工程化、规范化的具体实施方法,将其应用到毕业设计中,不仅有助于学生对软件开发相关知识的巩固和实践,而且对解决目前软件开发类毕业设计中存在的问题,提高学生毕业设计质量,具有极大的促进作用。 作者:王晓 王长波 单位:湖北医药学院 公共管理学院计算机教研室 软件毕业论文:软件工程本科毕业设计策略 一、利用多方资源做好毕业设计选题与立题工作 恰当的选题是做好毕业设计的必要条件和前提。近年来,随着信息技术高速发展,国家对高素质软件工程人才需求十分旺盛,并有逐年扩大的趋势。同时各个高校软件工程专业的招生数量也在逐年增加,从目前全国319所设有软件工程专业的学校看,2013年该专业平均招生300人左右。专业招生人数的增多给毕业设计选题带来了带来巨大挑战:一方面软件工程专业的毕业设计选题要求具有一定的应用价值、创新性,同时还要与行业需求相吻合;另一方面要保证选题的唯一性,不仅要避免学生之间的题目重复,还要避免与之前毕业生的题目重复,因为重复的选题会使学生产生投机的心理,导致“打酱油”现象。针对上述问题,黑龙江大学软件学院主要采取了以下几个措施:1.充分利用企业资源,对一部分在企业实习的学生采取“三位一体”的双导师指导模式。即企业项目为载体,学生为主体的模式,校内和校外导师为主导。这部分学生一般是在大三下学期暑假就已经进入企业实习,而我们每年毕业设计选题工作是在十一月末,也就是学生进入企业实习后三到四个月的时间,学生经过企业阶段的培训,对企业的生产过程、企业文化有了一定的了解。此时,学院组织校内外导师和学生共同协商,以企业项目或子项目为学生确定毕业设计选题。2.充分发挥导师的资源优势,学院大部分教师都有自己的科研课题,这些科研课题有些是直接来源于企业的横向课题,还有一些是信息技术领域的应用研究课题,我们鼓励教师从这些课题中提取出一些子项目让学生实践,作为毕业设计的选题。3.充分挖掘学生的专业技术特长和兴趣点并结合学生的择业倾向,确定最能发挥自身优势和潜能的选题。毕业设计的选题不仅要与实际需求相结合,更重要的是应该结合学生自身的技术优势和兴趣。只有学生对选题有兴趣,他们才能尽早地进入状态,发挥自己的创造能力和积极主动意识。所以,选题阶段导师和学生的沟通交流就显得尤为重要,通过沟通导师可以了解学生的能力、兴趣和择业倾向,学生也可以对选题,有进一步的认识,对于不感兴趣的选题学生也可以通过与导师进一步的探讨进行题目的修订。 二、注重环节审查,加强过程监管 虽然“好的开始是成功的一半”,但是如果缺乏中间环节的监管,仍然不能保证好的效果[4]。因此,为保证毕业设计(论文)的质量,我们制定了明确的质量标准、管理条例,并由院长、学术委员会、系主任和教务办主任组成毕业设计(论文)工作委员会,负责毕业设计(论文)工作的组织、评定和监管,同时保证管理条例的严格落实及各个环节工作的正常进行。为健全毕业设计(论文)的监管机制,学院先后规范和完善了《毕业设计(论文)工作管理办法和实施细则》《开题报告》《开题评分标准》《中期报告》《中期检查标准》《毕业设计(论文)撰写规范及模版》《毕业设计(论文)盲审表》《答辩程序和评分标准》等一系列管理办法和文档标准,使毕业设计工作在制度和规范下能顺利有效地进行。每年毕业设计工作之初,我们都要给学生开一个动员会,在会上阐明毕业设计(论文)的重要性,以及毕业设计对他们未来工作的影响,调动他们学习的主动性、积极性和创造性。此外,系主任还要向学生介绍学院毕业设计(论文)管理办法和实施细则,各阶段的工作要求和时间节点,以及各环节检查的内容、需要提交的文档,使学生在毕业设计开始时能做到心中有数。同时,我们也要求指导教师随时解答学生的问题,坚持每周开例会,检查学生的工作完成情况,并提出一些有技术含量和理论深度的问题启发他们思考,激发他们的学习热情,并与学生一起确定后续任务。此外我们组织开题检查、中期检查,对开题检查成绩后30%的学生,不但检查中期报告,还要现场检查程序。对于中期检查不合格的学生,要求限期整改,如果仍然不合格则取消答辩资格。在答辩之前,我们还要对论文进行盲审,盲审不合格的学生不允许答辩,对有异议的论文要提交学术委员会做最后论证。虽然学院对毕业设计(论文)工作在各个环节上的审查都非常严格,但我们鼓励学生之间进行研讨交流,博采众长,相互提高,因为我们的目的不是抓出多少不合格的学生,而是想通过大学阶段最后的综合性实践教学环节训练,培养学生的学习能力、知识的综合运用能力、分析解决问题能力和沟通交流等综合素质。 三、严把答辩关,保证毕业设计质量 答辩是毕业设计(论文)考核阶段的最后环节,这个环节既是学院对学生毕业设计的验收和鉴定,同时也是学生对自己工作的总结和汇报。通过答辩,学生不仅展示了毕业设计工作的效果,更展示了自己的专业知识、技术水平和综合素质。作为教师,每年都要指导多个毕业设计(论文),而学生一生只能经历一次本科毕业设计,而且毕业设计答辩能否顺利通过,直接关系到学生毕业及学位资格的认定。因此对学生来讲,毕业答辩至关重要。这有点像外科医生与患者的关系:医生每年要做很多手术,对他们而言手术已是司空见惯,但对于患者本人,可能一辈子才上一次手术台,而且生命攸关。所以,我们要在毕业设计指导过程中,认真对待每一位学生。同时在毕业答辩中严格把关,保证质量,更要秉承“公开“”公正”“公平”的原则。我们的毕业设计(论文)答辩采用小组面试形式,每组由四位副高职以上教师组成,答辩流程如图1所示。答辩当天向学生公布成绩,毕业设计(论文)总成绩由开题成绩(10%)、中期成绩(10%)、指导教师成绩(10%)、答辩成绩(70%)构成。对于优秀的和不及格的学生,我们还会重新组建答辩组进行二次答辩。这是考虑到答辩组之间认同度的差异而导致评分标准出现偏差,可能有些答辩组打分会偏低,有的组打分会偏高,即各个答辩组评分信度不能达到一致。二次答辩可以有效地消减组间评分差异,从而使申报校优秀论文人选和未通过人选的确定做到公正、公平和有效。针对软件行业特点,我们通过强化实践教学环节,合理利用多方资源拓宽毕业设计(论文)选题途径、健全和完善毕业设计(论文)的监管机制等手段,确保了毕业论文质量的稳步提高。几年来,黑龙江大学软件学院的毕业设计(论文)质量受到校内外专家的一致好评,获校优秀论文比率一直位于学校前列。实践证明,加强毕业设计(论文)质量的监管,不但提高了学生工程实践能力、独立科研能力和创新意识,为学生进入工作岗位打下了良好的基础,进而也提升了学生的就业率。 作者:任美睿 金英 郭龙江 单位:黑龙江大学 软件毕业论文:基于毕业产出导向的软件工程课程教学改革 摘要:分析国内高校在软件工程课程零置上的侧重点以及软件职业技术资格考试内容,提出以SWEBOK V3中知识域的要求为课程内容基础框架,基于毕业生的产出能力导向进行教学大纲、知识内容和考核方式改革,通过监控学生成绩对课程教学效果进行分析和长期持续改进。 关键词:产出导向;软件工程;课程改革 1 背景 作为软件工程专业的主要核心课程,软件工程课程一直很受关注,围绕着课程教学所进行的教学改革也比较多。目前,正在各高校进行的工程教育专业认证是我国为推进工程教育改革、提高工程教育质量、建立工程教育与工程师制度衔接、提高工程教育对产业发展的适应性和提高我国工程技术人才的国际竞争力所做的一项合格性评价,在给高校工程教育带来发展契机的同时也提出了对教育理念、教学过程管理、教学内容更新换代等方面的挑战和调整要求。 2 课程现状 目前,国内高校软件工程课程使用的教材主要有张海藩《软件工程导论》、郑人杰《实用软件工程》和国外翻译版《软件工程》。教学内容主要有软件工程概况、可行性研究、需求工程、传统的软件设计、面向对象设计、编码、软件质量与保证,项目计划与管理、软件开发工具与环境等。软件工程是一门强调实践的综合性工程课程,各高校在具体课程安排上各有侧重。 例如,复旦大学(54学时)的课程重点首先是结构化分析与设计、面向对象的分析与设计,这两部分内容超过了1/4总学时;其次是软件测试和软件项目管理,分别约占总学时的1/6;课程特色在人机界面设计和Web工程上。清华大学(48学时)把面向对象方法UML和RUP作为重点,占总学时的近1/3;其次是结构化分析与设计,占总学时的1/4;软件过程及软件工程管理是另一重点,通过学生合作小组或参与项目组进行软件开发,在实践中理解软件过程的意义和作用,培养软件项目管理的意识和能力。浙江大学(理论32学时、实践32学时)重点讲述软件工程的常用方法,包括分析模型的建立、总体设计、软件测试等,其特色是网络应用软件的开发方法和实践,通过从需求单位抽取出的大型模拟案例进行项目开发,锻炼学生的系统设计、开发、谈判、沟通、写作、团队合作等能力,培养学生的工程职业素养。 通过对国内几所高校课程教学特点的分析,我们发现目前国内高校软件工程课程主要以理论知识教学为主,虽然有的院校做到了实践与理论并重(1:1),但是大多数院校还是以理论知识教学为主。课堂教学以讲述概念性基础知识为主,课程的内容主要有面向对象的分析设计、软件测试和项目管理,对新知识、新技术和新工具介绍较少,目前软件工程课程更像是一门导论课程。 3 面临问题分析 3.1 工程专业毕业要求对课程的影响 工程专业毕业生应具备足够的沟通能力、合作能力、专业知识技能、终身学习能力及人格、国际视野和责任感等能力素质,这些素质要求可以保证学生毕业进入职场前具备基本的职业素养和从业能力。产出导向是工程教育认证中重点关注的部分,课程体系设置、师资队伍建设和外部条件配备均以有利于学生达到培养目标和毕业要求为导向。毕业要求反作用于课程设置,要求课程的内容建设、教学方法改进、过程监督以及成绩考核都应围绕这一要求,细化产出导向的要求和能力指标,设置相应知识点并调整各自的重要性比例,从知识点授课和实践能力两方面落实能力培养,达到毕业产出的要求。 3.2 与软件工程课程相关的专业技术资格考试分析 工程教育认证是将来国家注册工程师制度的基础和重要环节,目前我国已经在土建、环境、核安全等领域开展试点工作,实现了对工程人才的社会评价及国际间人才资格互认。在我国,与软件工程课程相关的全国性考试还有计算机技术与软件专业技术资格(水平)考试,由国家人力资源和社会保障部、工业和信息化部领导,对全国计算机与软件专业技术人员进行职业资格、专业技术资格认定和专业技术水平测试。笔者对与软件工程课程相关的资格考试内容进行解析,以软件设计师为例进行重点分析,见表1。 从表1分析内容可见,软件工程基础考试内容。与课程教学大纲知识点一致,在信息安全知识和标准化知识上给出新增内容,这与SWEBOK2013知识体系一致。考试科目“软件设计”以上述知识为基础,考查工程师的实际工作能力。在最近几次考试中有考题涉及数据流图、UML图的应用分析,与课程授课侧重点也相符,更侧重于实例的应用能力,需要实践积累与运用。 3.3 SWEBOK V3和课程对应关系分析 软件工程专业的课程体系是基于软件工程知识体系SWEBOK(software engineering body ofknowledge)、计算机教程软件工程卷(computingcurriculum-software engineering,CCSE)及其中的软件工程教育知识体(soft engineering educationknowledge,SEEK)而建立起来的。2014年,IEEE计算机协会了软件工程知识体系指南第3版,该版将原来的10个知识域扩展到15个,与现有软件工程课程大纲的比较结果见表2,其中有分布到其他课程中的知识点未加以说明。新增和修改的相关知识点需要在软件工程课程教学和实践环节落实。 4 基于产出导向的软件工程课程改革与建设 4.1 课程教学目标修订 基于上述分析,我们进行基于产出导向的软件工程课程改革和建设。课程教学以使学生掌握软件工程的理论基础知识和基本工作原理,培养学生具有工程问题需求分析的能力以及综合运用计算机科学和工程技术完成系统设计、实施和维护的能力为目标。课程的主要任务是使学生掌握软件开发过程的理论、方法、技术标准以及计算机辅助工程和环境等知识并通过实验灵活应用;掌握软件工程的基本概念、软件开发模型、开发过程的管理和质量控制;掌握需求分析的任务与原则,传统面向对象需求分析方法、设计过程与一般性概念以及文档的编写;掌握程序设计方法,增强编程实践训练,掌握软件测试技术与纠错性软件维护方法;掌握UML建模技术,能在软件工程过程中使用常用建模工具,能运用建模方法解决工程实际问题;了解专业开发活动涉及的标准、方针、政策和法律、法规,能正确认识实施软件工程对客观世界和人类社会的影响。 4.2 教学内容和教学方法改进 根据毕业产出要求及SWEBOK V3新修改版,我们对教学内容作如下调整:①在64学时课时中,将理论与实践课时设定为1:1;②在需求分析和设计部分新增人机界面和系统安全知识;③独立介绍软件复用部分知识,结合软件设计模式讨论软件可复用性;④在软件质量保证和项目管理部分新增软件产品标准和行业标准、国内外法律和法规;⑤在软件维护部分新增软件退役和迁移。 每一章都提供参考资料,教师引导学生有选择地阅读其中的部分内容,根据课程内容的进展情况布置相应的任务、思考题和作业,引导学生通过Intemet或其他途径查阅相关资料以拓宽知识面,了解软件工程领域最新实践研究成果。为了使学生建立起软件开发和维护的工程化意识,较系统地掌握按照工程化思想开发与维护软件的方法和技术,教师需在教学中培养学生从软件企业开发和维护实际大中型软件的角度出发,结合成本、风险、效益、进度、过程、质量等多种因素系统地分析软件开发和维护过程中的问题,突破以往要求完成某一给定知识点作业的单一思考问题局限。此外,构造实验环境用于课内工程项目实践,通过模拟项目的开发,锻炼学生的系统设计和开发能力、软件工具的使用能力、语言交流能力、文档编写能力以及团队合作能力,培养学生的职业素养。项目实践引导需贯穿理论知识学习始终。 4.3 考核方式与持续改进并行 课程强调过程考核,总成绩分为平时和期末两部分,分别占50%。平时成绩主要考核学生的课堂表现、作业、实验能力和实验报告撰写情况等。其中,课堂表现主要从学生上课是否专心听讲、回答教师提问是否正确以及分组讨论是否积极、正确、有独特见解等进行考核,以提高课堂教学效果和运用工程基础知识及本专业基本理论解决实际工程问题的能力;作业方面重点考核学生掌握软件工程理论基础知识和基本工作原理的程度;课内实践教学环节重点考核学生的工程问题需求分析和设计能力,综合运用计算机科学和工程技术完成系统的分析和设计并对设计文档进行审查的能力;期末考试将按照课程教学目标全面考核学生课程学习的效果,选取一定数目的学生成绩为样本,计算该课程对毕业要求贡献的达成度并通过建立阀值定量评估课程教学质量,通过不断提出持续的改进意见并实施,切实加大课程对提高毕业产出能力的贡献。 5 结语 笔者基于毕业生产出能力对课程教学目标进行了修订,完善了软件工程课程的教学内容和知识结构,对教学方法进行了梳理,最后通过改变考核方式对课程进行长期监控和调整,实现课程的持续改进。下一步工作将重点关注课程中学生自主能力导引体系和毕业生能力评价反馈机制的构建。(编辑:宋文婷) 软件毕业论文:思索软件在大学毕业论文管理中的应用 【摘要】本设计是基于高校毕业论文的系统设计,可以完成论文的申请,上传,查看,评价,统计等一系列管理操作。采用SQLServer2008+MicrosoftVisualStudio10+ASP+C#做为开发工具,用户可以使用它编写可以运行VBSCRIPT、JAVASCRIPT等脚本语言的以.asp为后缀名的应用程序,再用Internet服务管理器进行网页的浏览。 【关键词】计算机软件;毕业论文;系统设计;软件 一、背景意义 如今计算机网络的普及已近是亘古不变的潮流了,而且全国大学网络的正在以高速的发展节奏和社会潮流接轨,各种计算机网络化已经逐步取代繁琐的传统办公模式。大学毕业设计作为大学生四年学结的最重要环节,我们完全有必要实现网路管理化,可以减少指导老师和学生的工作时间和负担,让繁琐的毕业设计过程采用网络化数据库统一管理。通过毕业论文管理系统,大大方便了学生、老师及学校管理员。社会科技在不断的革新,我们的生活、工作和获取知识的方式结构都发生了完全的更新和进步,传统的方式在不断的改变,这是社会发展的毕竟之路,也是走向未来的毕竟过程,所以使得各种传统方式得到不断的简单、方便和先进是十分重要和必须的。然而在许多大学和高校里面并没有在毕业这一环节上实现信息化管理,所以这一部分的工作所有都是由人工来完成,然而人为的物理操作必定存在许多缺陷,比如大量的毕业生信息需要处理,工作量就十分的庞大,到处都是纸质资料,不易整理和保管,还容易丢失,另外最麻烦的是需要更新和修改的资料的情况,其次就是学生和指导老师之间关于论文进行的交流和联系都是线下的,会受到各种不定因数影响,影响这一环节的进度和质量。有着网络的基础,系统可以采用了目前十分流行的B/S结构和Web技术,使得操作交流都变得十分简单和快捷。最重要的是通过计算机信息化管理完全避免人为物理操作的不足。 二、初步调研 浏览了各大类型和类似的网站,毕业论文管理管理系统,我同样采用了当前很流行的B/S结构来开发。 通过各个高校去实地考察,很少有大学开始使用此类系统来管理毕业论文。另外,大多数学生和老师都希望高校能完善此块的建设,来减少毕业生和指导老师的工作量和工作效率。并且此系统会有效的减少学校在此类工作的成本。由于只针对高校毕业生的毕业论文,技术上的要求和开放难道并不是特别大,做好策划工作就好。所以完全可以由大学生和本校老师来指导完成。 最后我们考虑到费用,因为不是企业级的网站,而是校内开发,功能和维护性的要求并不是特别高,所以费用基本可以忽略不记。综上所述,系统的开发无论从技术上、经济上,可行性都是相当高的。对于各大高校是值得去开放和使用的。 三、开发过程中问题 在开放过程之前,我们需要选择何种编程语言和环境。语言和环境的选取对系统的开发难度和时间长度都是有直接的联系的。为了减少开发周期,减弱开发费用,提高产品的质量,对系统做出需求分析报告是非常必要的。比如本毕业论文的系统,是可以完成论文的申请,上传,查看,评价,统计等一系列功能的。那么采用SQL Server2012+Microsoft Visual Studio 2012++C#做为开发工具。在软件系统开发过程中,不提倡无模型的随机开发方式,不可以想到什么功能模型就随手开发什么代码,这样不规范的开发,不仅使得开过过程处于混乱,而且大大地降低了系统开发效率。我们可以适当的利用一些经典的开发模型,典型的开发模型有:1.边做边改模型(Build-and-Fix Model);2.瀑布模型(Waterfall Model);3.快速原型模型(Rapid Prototype Model);4.增量模型(Incremental Model);5.螺旋模型(Spiral Model);6.演化模型(evolution model);7.喷泉模型(fountainmodel);8.智能模型(四代技术(4GL));9.混合模型(hybrid model);10.RAD模型;我们要尽量避免原始老旧的开放模型,这样可以避免许许多多开发问题。但是要根据系统的大小,和开发的难度来做决定,有句话说的好杀鸡焉用宰牛刀,太多复杂的模型适合庞大的系统开发,然而用的一般的小系统上反而会增加开发难度。 软件毕业论文:本科毕业设计中FLUENT软件相关课题可行性及问题探讨 【摘要】本文探讨了在本科毕业设计中加入运用FLUENT软件进行工程计算分析的相关课题的可行性。实践证明,学生通过运用FLUENT软件进行工程计算,夯实了理论基础,增强了解决本领域传热和流动问题的能力,提高了学生的学习兴趣和未来的专业竞争力。在做好本文所提及的三点问题(学生和课题的选择、指导过程中的问题)的前提下,在毕业设计中加入FLUENT软件工程计算相关课题不仅可行,还值得在一定范围内推广。 【关键词】FLUENT 计算流体力学 计算传热学 毕业设计 1.引言 本科毕业设计是在本科教学过程的最后阶段进行的总结性的实践教学环节。在毕业设计环节中,学生应当综合运用本科阶段所学的各科知识和技能,对所需解决的课题进行思考、分析、设计和研究,从而全面、系统地完成课题交给的任务。可见,毕业设计是对学生本科阶段学习质量的全面性的检验,也对学生能否顺利拿到毕业证书和学位证书起到直接和决定性的作用。 计算传热学又称数值传热学,是研究用数值方法求解传热问题的一门科学。它可以理解为:根据所需求解的实际问题建立合理的数学模型,利用离散化处理的数值方法,再通过用计算机高级语言编制的程序,以计算机作为工具来求解传热问题的、与工程实践密切结合的一门应用基础科学[1]。而市场占有率高达40%[2]的数值计算软件FLUENT是解决传热领域数值计算问题的较好的通用软件之一[3]。 运用FLUENT等CFD软件,可以在不具备实验条件或暂不需要对研究对象进行实验的情况下,借助计算的方法进行相关工程分析,从而极大地节约人力、物力、财力和时间成本。因此,在本科学习最后的毕业设计阶段,若能让部分学生学习并基本掌握FLUENT软件对本领域问题的计算过程,将会在很大程度上促进学生今后对相关问题的建模和分析等工作。 2.毕业设计指导工作应注意的问题 由于FLUENT软件的专业性,在指导与FLUENT软件工程计算相关课题的时候,应注意以下几个问题: (1)学生的选择 要能较好地掌握FLUENT软件相关计算过程,首先需要具有较为过硬的微积分、流体力学、传热学、计算传热学(也称数值传热学)等相关学科的基础知识。这不仅要求学生较好地理解课堂所讲知识,还要能够灵活运用课内外相关知识。有的学生学习能力和成绩相对较弱,并不具备过硬的知识储备和学习能力;有的学生未来从事的工作与本专业距离较远,或者对相关的数值计算兴趣不大,因此缺乏从事相关课题毕业设计工作的原动力;这些因素都会影响整个毕业设计工作的正常进行。因此,对于与FLUENT软件工程计算相关联的毕业设计课题,并不是所有学生都适合来做。为了有效地开展相关的毕业设计课题,在学生的选择上往往优先推荐让学习相对努力的、有兴趣和求知欲的以及未来将继续深造或从事相关科研工作的学生来进行。 (2)课题的选择 在本科教学阶段,由于受限于书本和教学大纲的安排,教师在对流体力学、传热学等课程的讲授中往往较少涉及数值计算相关知识,书本上只有一章内容与之相关,课堂上一般只传授数值计算的基本概念、简单情况下的离散方法、离散方程的建立等较为浅显的知识,这与FLUENT软件中对相应问题处理方法的深度和难度相去甚远;然而,在毕业设计的短短一学期时间内,要让学生完全掌握相关知识是比较牵强的。因此,在FLUENT软件工程计算相关课题的选择上,应选择相对基础性的、与实践结合紧密的、具有科研应用前景的课题作为毕业设计课题。这样既可保证毕业设计工作的正常开展,也能使学生在软件方面得到基本训练,为后续科研工作以及研究生阶段的学习打下良好的基础。 (3)指导过程中的问题 在毕业设计的指导过程中,笔者发现有部分学生在使用软件进行计算时,较为注重结果的可视化,而恰恰对计算中关键参数的设置、计算方法的选择等关键问题较为忽视。造成该现象的原因可能是,无论在软件中设置怎样的参数、选择怎样的计算方法,总能通过软件的计算得到一个可视化的结果,即使参数设置或计算方法的选择欠妥或有误,只要计算过程没有脱离现实太远,计算结果看上去都有一定的可信度,再加上学生对具体计算过程的“不求甚解”、不仔细推敲,往往易使人误认为该计算过程是正确的。因此,在指导过程中,应对学生使用软件的具体计算过程进行仔细地把关,确保计算过程和结果的正确性。 3.毕业设计算例 算例一:建筑空心砌块传热问题 图1a为所需计算的典型建筑空心砌块的尺寸标注图。该砌块是某典型普通混凝土空心砌块,三排孔结构,每排均由大小相等的两个孔组成,孔厚30mm。热量由室外侧(左侧)传向室内侧(右侧),室外侧为稳态或非稳态热边界条件,室内侧为稳态热边界条件。 图1b为数值计算得到的该砌块传热的某时刻温度分布图。可以看到,温度从左到右大体上呈现由高到低的分布状况。由于空心砌块为非均质构件,砌块材料的热导率与空气层的当量热导率不相等,造成了内部等温线的非均匀分布。 (a)空心砌块结构俯视图(单位:mm) (b)典型砌块温度分布图 图1 空心砌块结构俯视图 算例二:加气混凝土墙体结露问题判断 待计算的房屋的加气混凝土自保温墙体结构类型如图2所示,图中的B05表示型号为B05的加气混凝土砌块。计算中,加气混凝土砌块可以认为是热均质结构,这样导热系数相对较高的混凝土柱或梁便成为了结构体系中的热桥。由图3、图4可以看到,加气混凝土自保温墙体内表面温度最低点均发生在热桥部位室内表面宽度的中心处或阴角处。将该处的温度与当地室内空气的露点温度相比较,既可判断是否会产生结露现象。 4.总结 利用FLUENT软件对实际工程问题进行数值计算,大大节约了经济开支和时间成本,也为学生对本领域的传热和流动问题的解决提供了有效手段,夯实了学生的理论基础,增强了其解决问题的能力。通过与从事相关毕业设计课题的学生的交流得知,学习FLUENT软件的工程计算对学生更好地掌握相关物理过程起到了很好的帮助作用,拓宽了学生的视野,也提高了学生对相关问题的兴趣,有助于提高他们的专业竞争力。由于兴趣的作用,采用FLUENT软件进行工程计算的学生的毕业设计得分总体较进行其它课题的学生的得分高约15%。由此可见,在做好本文所提及的三点问题(学生和课题的选择、指导过程中的问题)的前提下,在毕业设计中加入FLUENT软件工程计算相关课题不仅可行,还值得在一定范围内推广。 软件毕业论文:“卓越计划”软件工程本科毕业生的跟踪分析 摘 要: 为应对毕业生就业难与软件企业人才招聘难的两难局面,对我院按照“卓越工程师培养计划”培养的第一批本科应届生展开了基于电子问卷的跟踪调查。通过分析学生就业情况及其所在单位需求情况,以及毕业生的就业反馈,讨论研究了现有培养方案、教学体系和课程改革存在的问题与不足,以期为后续进一步深入实施“卓越工程师培养计划”提供帮助。 关键词: 毕业生跟踪调查; 卓越工程师培养计划; 软件工程 0 引言 从20世纪90年代开始,我国的高等教育飞速发展,本科毕业生数量也迅速增加,软件类人才培养也逐渐从精英教育走向了大众化阶段。与此同时,毕业生就业难与软件企业人才短缺的矛盾逐渐突显。一方面,毕业生的就业形势相当严峻,2013年更被称为“最难就业年”,就业人数将近700万,其中软件类(含计算机类)毕业生约占了23%[1];另一方面,用人单位难以招到适应不断变化市场需求的高水平人才,毕业生质量与企业、社会期望值之间出现了较大差距。 解决上述矛盾的重要途径之一是跟踪调查学生走向社会的工作表现和持续发展状况,调整、改革高校教学体系及模式。近年来,国内高等院校逐渐重视开展毕业生的跟踪调查与反馈工作。通过了解毕业生的就业情况、工作表现、对学校学习经历评价及招聘企业人才需求情况等信息,反思、完善和改革人才培养体系、培养方案、教学模式以及就业指导工作模式[2]。本文以杭州电子科技大学软件工程学院为例,通过对2013届按照卓越工程师培养计划培养的50余名毕业生进行跟踪调查所获得的数据信息,结合本校实际,反思卓越工程师人才培养的可改进之处,为制定科学、高效的卓越工程师培养策略奠定基础,从而更好地为培养符合市场需要的高层次软件人才提供服务。 1 毕业生跟踪调查对卓越工程师培养的重要性 “卓越工程师教育培养计划”(简称“卓越计划”)2010年由教育部联合相关部门和行业协会提出,要求各高校与行业企业联合培养工程技术人才,强化培养学生的工程实践能力、工程设计能力和工程创新能力。该计划旨在培养造就一大批创新能力强、适应经济社会发展需要的高质量各类型工程技术人才,为国家走新型工业化发展道路、建设创新型国家和人才强国战略服务,对促进高等教育面向社会需求培养人才、全面提高工程教育人才培养质量具有十分重要的示范和引导作用。中国成功加入华盛顿协议组织也有力地证明了这一点。 高校作为落实“卓越计划”的主体,需认真领会和深刻理解卓越计划的指导思想、主要目标、总体思路和基本原则,更重要的是需结合自身实际条件和优势,制定“卓越工程师后备人才”培养的具体要求和措施,细化培养目标和培养标准,积极开展课程体系、教学方法、教学内容改革[3]。目前参与实施“卓越工程师计划”的各大高校基本上都提出了符合本校办学定位的专业培养方案的总体思路,在实现培养目标和培养标准的过程中融合专业培养方案的制定,完善、强化学生工程实践能力的培养,在满足“累计1年时间在企业学习”的硬性要求同时制定灵活的培养模式[4]。譬如,清华大学展开了以能力培养为导向的课程体系和教学内容改革;我校“信息安全”专业对原有的专业基础课程和专业核心课进行了重点整合,将原有课程整合缩减至5门,另增开课程4门,总学时数由384学时调整至192学时;上海工程技术大学的本科采取了“学校培养+校企交叉+校企双指导”的三阶段培养方案。 衡量上述各种具体培养要求、措施、目标、标准以及改革内容是否成功,有效的核心标志之一就是学生就业情况及其后期发展情况。毕业生的就业率、月收入和工作满意度等信息可以从一定程度上揭示大学生的综合能力水平和未来发展潜力。从某种意义来说,学生是高校推向市场的“拳头产品”,用人单位是这些产品的“用户”。“产品”质量是否有保障,“用户”才有最深刻的体会,才最有发言权。只有不断听取用户意见,不断改进,才能确保“产品”在市场上的竞争力。因此,做好学生就业及其后期发展情况的跟踪调查,才能推动高校不断完善卓越计划的落实,纠正试行阶段暴露出来的各种问题。 2 软件工程专业卓越工程师培养计划――以杭州电子科技大学为例 杭州电子科技大学从1980年开始培养软件工程本科人才,2003年正式设立软件工程本科专业。目前,该专业为国家特色专业、浙江省重点专业、浙江省高校人才培养模式创新实验区。为了进一步促进软件工程专业发展,全面提升学生工程素质,即工程实践能力、工程设计能力和工程创新能力,2011年杭州电子科技大学率先在软件工程学院开始试点软件工程专业的“卓越工程师人才培养计划”。要求学生在校内经过软件工程通用工程基础技术知识和核心技术知识的学习并具备相关能力后,进入企业进行高级工程技术知识及技能学习和培训,并参加企业实际软件项目的开发,培养方案示意图如图1所示。具体内容介绍如下。 ⑴ 改革人才培养模式 对进入“卓越工程师培养计划”学习的学生,将遵照贯穿8个级别4种工程应用能力培养要求的工程型人才培养方案(如图1所示)。学生在校内2年完成前2种工程应用能力的培养后,按“卓越工程师培养计划”学习1年完成第3种工程应用能力的培养,最后进入企业完成第4种能力的培养。可以看出,卓越工程师培养计划主要承担“高级工程能力”和“工程实施能力”的培养,主要通过企业宣讲课程和就业规划课程来帮助学生确定今后学习和发展的方向,进而安排学生参与企业实际软件项目完成专业实践和毕业设计。 ⑵ 加强专业师资建设 软件人才是工程实用型,需要教师既有一定的学术造诣,又具有大量的项目实践经验或企业工作经验。因此,我校进一步加强“双师型”专业教师队伍建设,在选派青年教师到国内外IT企业顶岗实践和轮训的同时,积极引进具有丰富实践经验的专业技术人员到校担任兼职教师或传授真实案例和实际工程经验,已逐步建立并完善企业教师的师资库并鼓励相关企业承担学校专业课程及实训工作。 ⑶ 深化改革课程体系 我校软件专业课程改革的总体思路是:扎实专业基础,突出工程实践能力,复合知识领域结构;强化专业核心基础课程和高级工程能力的培养,突出企业实战能力。在当前软件工程专业培养方案的基础之上,着重体现工程教学中的CDIO模式,聘请行业专家及资深工程师讲座;引入“MOOC”等先进教学方式,鼓励开展研究式教学、讨论式教学、以问题为导向的PBL教学、CDIO式教学及团队模式教学等多种教学方式[5]。 ⑷ 采用“校企深度合作、工学结合”运行模式 积极探索校企深度合作的空间,着重于人才培养、科研开发等多方位的共赢合作模式。以培养软件人才为目标,学校优先选择占据行业领导地位的公司作为合作方(如华为、塔塔等),吸收资深工程师参与指导制定专业发展规划、专业培养目标与专业人才培养方案,甚至直接作为教学师资参与专业技能教学;同时将企业待解决实际项目转化为“实验班”的课程设计题目或综合设计题目。企业接收完成专业课程学习以及基本技能培训的学生直接顶岗实习。 3 “卓越计划”毕业生的跟踪分析 3.1 调查对象和方法 为全面、准确、及时地分析了解“卓越工程师培养计划”在高校的落实结果,了解用人单位对软件工程专业改革的满意度以及深化教学改革的意见与建议,为其他同类学校准确定位、深化改革与创新软件类人才培养提供参考,我们对杭州电子科技大学软件工程学院实施“卓越工程师培养计划”的结果进行跟踪调查。调查对象是该学院第一批按照上述计划培养的毕业生,共发出52份问卷,回收有效问卷50份,回收率为96%。本次调查主要以问卷为主,辅之以面谈、Email咨询等方式。 3.2 调查数据分析 我们从学生就业单位信息、就业单位需求、毕业生个人反馈三方面来进行梳理分析现有教学方案、培养方案等卓越计划改革内容的不足。 ⑴ 学生就业单位 此次调查的50名毕业生,44人就职于主营软件开发销售、系统集成的软件类公司,4人就职于在线网络社交平台或电子商务平台的技术部门,2人服务于保险业。也就是说,96%的毕业生在毕业后会继续从事软件开发维护相关的工作。这从一定程度上证明了按照卓越工程师计划拟定的现有培养方案和课程安排在培养学生兴趣、增强学生专业技能方面发挥了较好的作用。此外,在毕业生就职的30家软件类公司中,14家单位的员工少于50人,13家单位的员工数在50~300之间,3家单位的人数超过了300人。可以看出,毕业生所就职的大部分是中小型软件公司。这也符合软件行业特点。除了微软、IBM、华为等极少数的龙头企业,大部分软件公司的规模并不庞大。我们的调查结果反馈的另外一个重要信息是,大部分软件公司对招聘对象的学历和工作经验的要求并不高,求职者具备大学本科学历即可,并不硬性需要相关的职业证书。因此,在未来的教学过程中,应确保学生顺利完成大学基础课程,而并不需要强调或引导学生参加太多的职业证书考试。 ⑵ 就业单位需求 从50份有效问卷返回的结果来看,目前用人单位技术最注重也相对急需的技术(能)排在前三位的分别是:JAVA语言、办公软件应用和ORACLE数据库应用,如图2所示。除此之外,动态网站开发以及企业级网络软件应用与维护也是各单位相对比较看重的毕业生技能,问卷勾选的份数分别达到了16和14。不难看出,若软件工程专业本科生在校期间尽可能地熟练掌握日常的办公软件应用并掌握用Java等开发语言构建、推广、维护动态Web网站的基本技术,他们在就业时将更占优势。 我们在教学过程中经常碰到以下的问题:本科生在大三或大四阶段仍不能熟练使用Excel绘制基本图形或完成基本统计功能,也不会使用Outlook、Foxmail等邮件客户端工具收发Email;他们课程提交的项目作品虽然能够实现系统的基本功能,但往往不够规范、难以维护和二次开发。学生暴露出来的这些问题远离用人单位的需求,也直接影响了学生自身的就业和后续发展。因此,在后期完善“卓越工程师”的培养方案和课程改革时,针对这些问题进一步强化培养学生相关技术(能)就变得极为重要。 ⑶ 现有培养计划及改革反馈 如上所述,“卓越人才计划”强调对学生实践能力的培养,强化学生工程实践能力,注重提升工程教育人才的培养质量。本学院在日常教学过程中着重学生动手实践能力的培养,也通过与华为、塔塔、网新等众多企业合作,安排学生在企业实习,强化学生实际实践能力。如图3所示,根据求职期间及就业之后的“第一手”经验,36%的毕业生认为学校还需加强基础理论的学习,30%的毕业生认为需加强实践动手能力的培养,25%的毕业生认为需加强专业知识的学习,只有个别同学认为需增强人文知识学习和科研能力培养。大部分毕业生在“信息反馈”一栏中明确提出“实际动手能力的培养是学校应该改进的重中之重”。这与国家“卓越人才计划”的培养思路是基本吻合的,也表明,我们还需在未来的教学培养中深化培养方案和课程改革,更突出 “卓越人才计划”的实践能力培养要求。如某位毕业生认为虽然目前学校社团较多,但和专业及就业挂钩的社团很少,建议多组建一些专业性社团,营造一个良好的学习氛围,并积极鼓励学生参加各类比赛,或开展专业知识类的勤工助学项目,让学生在项目实践中提升各方面的素质。 此外,根据50位毕业生的自身体会,软件类公司更为看重的学生素质是其持续学习的能力,其次是独立解决问题的能力,而日常较为注重的学习成绩恰恰反而是排在最后一位,如图4所示。这也是软件工程专业本身所决定的。一方面,软件、计算机技术飞速发展,日益更新,在校期间的课程内容不能完全跟上技术的潮流,需要学生自己学会跟踪学习新技术的能力;另一方面,实际软件问题千奇百怪,层出不穷,没有一劳永逸的解决方案,更需要学生具备一定解决问题的能力。 3.3 启示 此次的跟踪结果表明,我院现有的“卓越人才培养计划”及其具体方案措施在加强学生专业兴趣、增强学生专业能力起到了较好的作用,能为用人单位提供了具备基本职业素养和能力的软件人才。在未来工作中还需进一步强调和注意的有以下几点。 ⑴ 必需确保学生顺利完成大学阶段所有课程并获得学历、学位证书,这是学生入职的必要条件。 ⑵ 必须加强培养学生办公软件的使用技能,才能更好地提高学生专业素质,满足企业规范化人才需要。 ⑶ 争取为学生创造更多参与实际项目的机会,加强培养学生专业实践能力。这也是“卓越工程师培养计划”的重心所在。 ⑷ 进一步加强学生跟踪学习的能力和独立解决问题的能力,使他们适应软件快速更新升级,以及实际开发应用过程中问题不断的特点。 4 结束语 毕业生跟踪调查对做好软件工程人才培养,尤其是“卓越工程师培养计划”在软件工程专业的落实具有重大意义。本文采用实证研究的方法,从学生就职单位性质、单位需求与学生反馈三方面对现有“卓越计划”及其具体方案进行讨论分析,根据毕业生的切身体会挖掘现有软件工程专业“卓越工程师培养计划”存在的问题和不足,以期为更好地落实“卓越工程师培养计划”、培养卓越软件工程师提供科学有效的对策。 软件毕业论文:高职院校软件专业毕业设计 问题分析与改进建议 摘 要:高职院校毕业设计中存在着一些问题,例如,课题质量不高、学生在校外实习、课题与就业方向不符等。这些问题的产生是因为学生不重视毕业设计,进而导致设计质量下滑。针对毕业设计中出现的问题,笔者以高校管理者与指导教师的视角,对毕业设计制、学生及指导教师进行了深入调研,并且提出了改进方法。 关键词:高职院校 毕业设计 不重视 改进 1 前言 毕业设计是学生综合运用所学知识解决实际问题的环节,其质量直接关系到本专业人才培养水平。大多数高职院校的毕业设计放在最后一个学期,导师基本由校内教师担任。但最后一年学生把重心放到对自己未来更有影响的就业上,或是参加专升本寻求深造机会,校内导师被迫远程指导,缺乏监督力度。同时,设计课题内涵良莠不齐,部分课题不符合社会需求,让学生感觉实用性不强,学生不重视,进而质量下滑,降低了教学水平。因此,我们有必要通过调研发现问题、分析问题,进而解决问题。 2 现状调查 对重庆5所高职院校部分教师及所带学生进行了问卷调查。样本中包含200名毕业生、50名指导教师。数据如下: 3 调研问题分析 影响质量的主要因素有学生不重视,学生不能在校设计。需要分析学生为什么会不重视,并剖析其不能在校设计的原因。 3.1 课题内涵与需求有偏差 如表1所示,课题与学生工作方向是否吻合,以及是否一志愿选题,对成绩影响较大。调研中发现:部分学生毕业后从事Java开发,而选题时选了C#开发(选题先于实习);部分学生毕业后从事非IT工作,从而对所选课题丧失兴趣;部分学生单位实习后技能提升,回过头发现课题内涵与商业开发存在差距。此外,部分学生未能选中一志愿课题,调配课题与期望不一致,所以就抱着对付一下的心态。综上,课题本身质量是影响学生最后设计成绩的重要因素。 3.2 设计时间安排不合理 表1及表2的数据充分证明,不合理的时间安排,是导致质量下滑的重要原因。最后一个学期是找工作的关键期,在就业压力下学生忙于参加招聘会和面试。找到工作后,用人单位往往还要求到岗实习。同时,最后一学期也是专升本的关键期,寻求深造的学生亦会忙于复习参考;另有学生为提高竞争力,会选择参加推荐工作的技能培训;这都是造成学生不重视以及不能在校实习的重要原因。 3.3 自拟课题质量偏低 表3数据分证明,对外承接工程,或教师科研需要课题,具有充分驱动力可让教师在课题建设中投入更多精力,进而提高了课题与社会生产的适应性,提升课题的科学性和实践性。自拟课题往往是为了毕业设计而设定的课题,教师缺乏动力对课题进行改进,易与社会脱节。表3的统计数据也证明了选择自拟题目的学生,其优良成绩的比率显著低于其他学生。 3.4 其他因素 沟通不畅:师生双方无法面对面地沟通,存在着教师因工作忙碌疏于督促,或学生缺乏主动性的情况。(1)教师经验缺乏,高校中具有丰富项目经验的教师本来就比较少,近年又引入了大批年轻教师,这些教师毕业后直接从事教学,更缺乏项目开发经验,在指导中明显表现出不足。(2)优秀教师任务重,优秀指导教师既要承担毕业设计指导工作,又要进行繁重的教学任务,容易顾此失彼。 4 问题整改建议 4.1 加强课题库建设 课题分为对外承接工程、科研需要、自拟等几个类别。对自拟课题,须经学校专家组评审及指导,以增强与生产实践的联动性。增大来自对外承接工程及科研需要类课题,这类课题具有较强实践性,教师出于自身利益,也会对课题投入更多精力,对学生的要求也会严格,这必然提高设计质量。另外,考虑到学生未来就业不同,宜对课题难度适当分档。对不同档次的课题,设置起评成绩;有志于投身IT行业的,可选中高难度;其他学生可针对性地选择适合自己的课题。 4.2 改进设计模式,消除时间冲突 在设置课题时,要确定本专业所针对的主要就业岗位,以及岗位所需技能,再结合实际选择对应实训项目,作为本专业学生大学期间不同实践课程教学项目。学生在专业课教师的系统指导下,逐渐完成毕业设计的雏形,在最后一个学期里,再根据学生就业实际情况,予以整合,就成为了一篇具有一定质量的毕业设计。如此,不仅降低了最后一个学期的工作压力,还提升了学生在校期间教学质量。 4.3 加强指导教师能力建设 在毕业设计中,教师要加强对学生的监督与管理,可采用如定期开见面会、网上探讨等方式,学生将设计中遇到的问题、取得的成果等汇报给教师以便教师对学生情况进行分析指导。组织教师参加校内外专业培训,提高教师理论水平和实践能力。招聘教师时,倾向于在企业从事过一线工作、既有学历又有工作经验的人员,更好地将学校的理论知识与企业所需要的专业技能相结合。 5 总结与展望 毕业设计是十分重要的环节,应注重课题的针对性与适用性,使毕业设计内容与学生毕业后所从事的技术岗位相一致。同时,我们也需要加强毕业设计的机制建设,让设计贯穿整个大学教育,减少最后一学期压力。注重对教师的培养,提升指导技巧和技能。只有这样才能培养出符合社会发展、受用人单位欢迎的人才。 软件毕业论文:应用型本科软件专业毕业设计(论文) 质量保证体系的研究 [摘要]毕业设计是本科生培养中最重要的实践教学环节。本文针对“卓越工程师培养计划”中工程和创新的培养目标,结合“卓越计划”的“3+1”的“1”的实施,对毕业设计进行改革,通过2级毕业设计的实践,毕业设计的改革效果较好。 [关键词]毕业设计质量保证体系卓越工程师 一、前言 本科院校在对学生整个教育教学计划中,应用性本科软件专业毕业设计(论文)是学生大学生活的总结,也是在实践教育方面的最后一个环节。 目前,本科毕业设计中大学生对自己的毕业设计能够自主把握的空间十分有限,设计主体部分严重脱离工程实际情况,依靠以往经验、书本知识、网络信息等方式获得的信息量占据了信息总量的大部分,这不仅仅是因为学生或者导师愿意去投机取巧,也跟毕业设计活动经费的短缺和时间的不充足有着直接关系。纵观高校的工程教师队伍,他们自身的实践经验也很难保证做到将现实生活的实际问题引用到本科毕业设计中并展开工作。这就产生了一种很不好的现象,毕业设计的题目往往都是重复使用多次的,好一点的可能也只是简单的变化。本科毕业设计对于学生能力的培养和综合素质的提高帮助不大,在毕业后的工作实践中,学生的创新工程能力单薄的缺陷就会凸显出来,没有办法满足现代工业发展对人才的需求。高校的这种与社会需求严重脱节的现象必须要尽快解决,校内教育与科研、社会实践要在整个高校学习教育中相结合展开进行,才能满足社会新的需求。 二、卓越视野下软件工程专业毕业设计(论文)质量保证体系的构建 (一)加强校外实习基地的建设 卓越工程师的“3+1”培养方案中,“1”年的实践环节完成的好坏,很大程度取决于实习基地的建设。为了卓越工程的顺利设施,计算机学院已经与企业建立了广泛的联系,目前已经建成的实习基地有:塔塔信息技术(上海)有限公司、上海启明软件股份有限公司、上海京颐信息科技有限公司和上海文思信息技术有限公司;上海屹为信息技术有限公司;谷儒(上海)网络技术有限公司;曼恒蔚图软件技术有限公司;用友软件公司等。这些实习基地的建设,为毕业设计的课题来自生产第一线,提供了强有力的保证。 (二)建设高水平的“双师型”的毕业设计指导队伍 我们采取两种模式共同进行:一是坚持教师队伍“专任和非专任”结合。专任教师主要是以长期在工程现场实践或者有较好科研成果的教师组成;非专任教师主要是从合作单位企业聘任高水平工程师来校做兼职教师。二是加强“双师型”师资队伍建设。双师即“教师”、“工程师”,首先要加强对一线教师的工程能力素养和工程实践能力的培养,以满足在毕业设计指导过程中对教师综合能力的需求。另一方面,我们在聘请教师方面有侧重点,优先录取有企业工作经验的兼职教师,来提升有工程实践经历的教师在整个专业课教师中的比例。为了最大化地为毕业设计服务,学校还从企业聘请工程师或者让一线教师到企业参加工程实践活动等手段,致力于打造为毕业设计服务的精锐之师。 (三)严把选题关 毕业设计的题目,一般来自企业。由企业指导教师提出,经企业指导教师和学校指导教师共同商量后确定。选题要结合学生在企业实习的项目,注重实践性和创新能力的培养,同时题目应难易适中,切实可行,工作量适宜。 (四)注重教师的指导过程 选题完成后,企业指导教师下达任务书、指导学生确定毕业设计方案。在学生做毕业设计的过程中,企业教师负责具体的技术指导,学校指导教师负责时间节点的把握,协助企业教师完成对学生的共同指导。 (五)建立有效的沟通联系制度 由于本科生初次接触整体性和设计性较强的工作,肯定会遇到这样那样的问题。这时,建立有效的沟通制度,发挥指导教师的引导作用就显得非常重要。学生把毕业设计中遇到的问题,向指导教师提出,由企业指导教师和学校指导教师共同商量解决的办法。在毕业设计的过程中,应建立指导教师与学生讨论的例会制度,坚持每周师生沟通一次。每位学生总结前一阶段的工作,提出毕业设计中遇到的问题,指导教师要进行引导和总结,鼓励学生发挥主观能动性和创造力。这样,指导教师可以及时掌握学生毕业设计的进展情况。 (六)做好毕业设计的过程检查与中期检查 对本科生的毕业设计工作的中期检查,要坚持中前期和中后期两次检查。检查的形式是学生以PPT方式汇报自己目前毕业设计的进展情况,并回答老师的提问。对中期检查发现的问题,企业和学校的指导教师共同商量解决的方法。 (七)毕业设计(论文)答辩 答辩的地点一般设置在学生的实习企业,答辩委员会由企业指导老师和学校指导教师共同组成。每位学生的毕业设计答辩采用PPT形式进行汇报,对一些条件许可的企业,要有毕业设计的演示。 (八)以过程管理思想为指导,构建“方法-时间-层次”三维毕业设计质量监控体系 通过健全机构、合理资源配置、完善工作机制、强化毕业设计质量监控体系的毕业设计运行监控、毕业设计指导决策、毕业设计质量考核评价、毕业设计信息反馈功能,见图1。 三、结语 软件专业是一门实践性很强的专业。要想在短时间内较高质量地完成毕业设计,选题是一个很重要的环节。为了提高学生的做毕业设计的兴趣,高质量完成毕业设计,课题选择来自一线企业,显得非常重要。同时,建立一个毕业设计的保障体系,使得毕业设计在进行的过程中,质量能够得到保证。经过两届的毕业设计实践探索,学生做来自一线企业的毕业设计题目的兴趣很大,而且毕业设计的质量得到很大的提高。 软件毕业论文:《软件工程》思想在毕业设计(论文)中的应用 【摘要】主要分析了毕业设计(论文)的现状,介绍了软件生命周期的各个阶段与毕业设计(论文)各阶段的对应关系、软件生命周期各阶段应完成的任务以及在毕业设计(论文)中应注意的问题。 【关键词】软件工程 毕业设计(论文) 实践教学 一、引言 毕业设计(论文)(以下简称毕业设计)是计算机及相关专业教学计划中的一个重要环节,是培养学生对所学基本理论及基本操作技能综合运用的训练过程,是提高学生分析和解决问题能力的重要实践环节,是实现理论与实践相结合的重要途径,是对教育教学质量的全面检查。目前,计算机及相关专业的毕业设计质量正在逐年下降:学生急于找工作或考研,毕业设计得不到应有的重视;需求分析不到位,设计成果不符合实际需求;软件开发流程混乱;缺乏文档写作训练,等等。 针对上述问题,笔者认为,除了应当从管理角度严格进行过程监控外,还应当使学生通过《软件工程》课程的学习,提高毕业设计的质量。 二、软件生命周期与毕业设计过程的对应关系 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件的生命周期。软件生命周期可以划分成若干个时期与阶段,它与毕业设计各个环节的对应关系如图1所示。 三、软件生存周期各阶段应完成的任务 1.可行性研究与计划阶段、需求分析阶段 可行性研究与计划阶段主要完成问题的定义、可行性论证以及初步计划的制定;需求分析阶段主要完成需求调查,进行功能、性能与环境约束分析;编制软件需求规格说明、制定软件系统的确认测试准则和用户手册概要。这两个阶段对应于毕业设计的课题论证、选题、调研、查资料,通过对设计题目的深刻理解,完成开题报告的撰写工作。 2.概要设计阶段和详细设计阶段 概要设计阶段主要完成软件系统总体结构的建立、定义功能模块的接口、设计全局数据库和数据结构、规定设计约束、编制概要设计文档等工作;详细设计阶段主要完成模块详细设计及编制模块的详细规格说明工作。包括模块的详细功能、算法、数据结构和模块间的接口信息等设计,拟定模块测试方案;把模块详细设计的结果汇总,形成模块详细规格说明书。这两个阶段对应于毕业设计的系统设计阶段。 3.实现阶段与组装测试阶段 实现阶段主要完成编码及单元测试工作。根据模块详细规格说明书,将详细设计转化为程序代码、对模块程序进行测试,验证模块功能及接口与详细设计文档的一致性,并形成单元测试报告;组装测试阶段主要完成模块程序组装与测试及组装测试报告的编写。 4.确认测试阶段 该阶段主要完成软件系统测试、确认测试文档编制及软件评审工作。根据软件需求规格说明定义的全部功能和性能要求及软件确认测试准则对软件系统进行总测试;向用户提供以确认测试报告为主的有关文档,包括系统操作手册、源程序清单和项目开发总结报告等;由专家、用户、软件开发人员组成的软件评审小组对软件确认报告、测试结果和软件进行评审,并将得到确认的软件产品交付用户使用。这个阶段主要对应于毕业设计(论文)中的论文评审、结题验收及毕业设计的答辨准备阶段。 5.软件运行与维护阶段 主要进入软件的使用阶段,并完成软件的维护工作。它主要对应于毕业设计中的答辩阶段。 四、毕业设计应注意的几个问题 1.摘要 摘要是对文章主要内容的摘录,要求精、短、完整。以几十字至三百字左右为宜。摘要应具有独立性和自明性,从摘要中即应获得必要的信息;摘要中只能使用第三人称;要客观如实地反应原文的内容,要着重反映论文的最新内容和作者特别强调的观点;要求结构严谨、语义确切、表述简明,一般不分段落、不进行自我评价。 2.关键词 关键词主要用于论文检索,它是从论文的题名、摘要和正文中选出的,是对表述论文的中心内容有实质意义的词汇,关键词一般以3~5个为宜。 3.结论 结论写作的内容应主要考虑本文研究结果是什么?研究结果说明了什么?对前人有关的看法作了哪些修正、补充、发展、证实或否定?本文研究的不足之处或遗留未予解决的问题以及对解决这些问题的可能的关键点和方向等。结论应该准确、完整、明确、精练。 4.需求分析 在毕业设计中,学生往往不能对所做题目进行充分的调研,需求不明确,随意想象的成分较多。特别是在数据表的建立上,大部分同学随意设置字段的类型,而字段长度基本上采用默认置。而在实际项目开发中,数据项的设置应主要注意以用户的需求和满足系统要求为准,而不应设计冗余的字段;数据的类型要依据实际需求,当某些字段可以是选择某几种类型之一,应考虑哪一种更有利于本系统或哪种更易于用户操作和维护。 5.详细设计 许多同学把详细设计阶段的任务理解为代码实现,因此,在概要设计之后就着手进行代码的编写而忽略了算法的表达及测试用例的编写环节,由此造成的结果是随意编程,大量的时间浪费在程序的修改和调试上。 6.软件测试 测试做得不够全面,大部分同学只选择了有效的测试用例,而没有进行无效的测试用例的设计,因此所做的软件BUG较多。 7.团队合作 在毕业设计中,应有意识地锻炼学生们的团队协作精神,因此,在布置毕业设计题目时,应尽量选择规模大一点的题目,然后由4~5名同学共同协作,每人完成一个子题目。这样,可以使学生们分析问题和解决问题的能力、沟通和表达能力得到充分锻炼,为今后的工作奠定基础。 软件毕业论文:浅谈高职院校集成项目化教学改革提升软件专业毕业生的核心竞争力 摘 要 集成项目化教学是结合我院计算机软件专业教学的实际提出的新的教学改革尝试,将软件专业的核心课程围绕着一个项目进行教学,教学过程中涉及到软件需求分析、数据库设计、软件实现等软件开发过程,切实体现了高等职业教育培养应用、复合型毕业生的办学理念。 关键词 集成项目化 软件专业 核心竞争力 教学改革 职业角色定位 1 当前软件岗位的市场需求、用人单位对毕业生的要求 各个高职院校都开设的有计算机相关专业,其中软件专业基本都会开设。然而随着全国扩招的不断进行,生源却在不断萎缩,曾经火热的计算机相关专业,现在普遍面临着尴尬的境地,一方面是生源的流失,另一方面却是国内软件外包公司对毕业生的不断上升的需求。 通过对软件公司的调研,国内的软件公司基本上有两种接包形式:一种是订单化生产,也就是对方已经做好了需求设计,接包公司按照要求来实现就可以了,使用何种工具、包括检测的工具等等在订单中都已经明确说明,这种多来自日资企业的订单;另一种就是半订单化生产,接包公司有相当的自由度,只有按要求完成相应的功能,至于使用何种软件、如何设计并不明确限定,这种订单多来自欧美的企业。这就意味着软件专业的学生在校期间要对软件的整个开发过程、主流的软件工具有所掌握,才能符合企业的需求。 那么国内的软件公司对用人的具体要求又是如何呢?以武汉某软件公司为例,其2012年7月份对外公布的招聘信息中,对于.net软件工程师的任职要求:(1)相关专业,专科以上学历;(2)具有.NET平台下 2-3年以上开发经验。(3)精通XML、JavaScript、CSS;精通SQL语句;(4)至少能够熟练使用MS-SQL、 Oracle、MySQL中一种主流数据库管理系统;(5)具有良好的沟通能力、快速准确的表达能力、团队精神和协作能力;(6)要求能够快速适应工作压力,具有较强的主动性、责任感;(7)会WCF、WPF、Silverlight技术者优先考虑。 抛开工作经验, 这些要求对于高职类软件专业的毕业生来说,既要具备专业知识能力,又要具有良好的沟通表达以及克服困难的能力。在与武汉某软件合资企业的座谈中,技术部门的负责人指出,软件公司招聘的员工更多强调的是个人的综合素质,在他看来毕业生最多的问题是比较浮躁,容易急功近利,从而造成了个人提升的瓶颈;而对于专业技术能力来说,由于分工协作的不同,每个人只能负责某一小块,对于我们的毕业生来说,是很快就能适应和掌握的。 2 高职院校软件专业教学存在的问题 2.1 教学内容与就业脱节 当前的高职教学大多数还是采用传统的教学方式,按照教学计划讲授课本上的内容,定期安排上机,但是学生对于软件开发的流程并不能完全了解,以软件工程课程为例,如果按照课程的安排,软件开发的流程按照书本的要求去讲解,对于高职院校的学生而言,理论的学习似乎提不起同学们软件学习的兴趣,至于老师强调的某些过程是如何重要,没有开发的环境,学生是体验不到的,这就造成了学习过程中与实际需求的脱节。 2.2 书本上的教学范例已略显陈旧,更新较慢 不可否认,这些范例在学生了解和认识软件开发的过程中起到了较好的作用,但是就课程教学的实践过程而言,学生就会感觉枯燥、学习的动力缺失,与实际项目的开发过程已渐行渐远,终究会被市场所淘汰。 2.3 缺乏完善的教学体系 目前部分高校的软件专业的教学体系还只是停留在纸上,在实际教学过程中,课程与课程之间没有交互,都是各自为政;而某些课程之间又是相互有交集的,又会让学生在学习中感觉到重复、累赘。这样就会导致学生在学习中课程间虽然在体系中联系紧密,但是在实际学习中没有任何交流,最终造成学生所学的知识并不连贯,甚至脱节。 2.4 缺乏对学生个人就业能力和素质的培养 在日常的教学过程中,重讲课、轻动手的情况普遍存在。学生掌握多少能力在某些老师看来并不重要,重要的是会考试就可以了。 3 集成项目化如何提升毕业生的核心竞争力 3.1 何谓教学中的集成项目化? 集成项目化,顾名思义就是将开设的各个课程以项目开发为主线,将项目开发的各个环节落实到独立的各个课程中,从而实现课程之间的案例资源共享和交互。以某高职软件专业教学为例,按照集成项目化的要求,可以将日常的教学过程设计如图1所示。 以下用一个教学项目来详细介绍集成项目化教学的过程。某软件班级以四人作为一个小组,其中一人担任组长,组长的职责是负责项目的整体规划、分工、召开进度小组会议等工作。 在教学中,老师使用公共项目进行教学,由信息系统分析与设计课程确定开发某学院一卡通自助缴费系统。通过教学展开对系统的进度安排和功能模块分析。 由管理信息系统课程对项目的数据库进行设计,分别确定用户信息表、一卡通基本信息表、挂失信息表、充值信息表、宽带缴费信息表、电费缴费信息表等。教师通过课堂理论教学,引导学生同步上机自己进行设计。 由程序设计课程进行系统的设计实施阶段,借助分析的系统功能模块、数据库设计,对系统进行实现。 对学生的项目完成情况,按照如下的方式进行评分,以信息系统分析与设计考试方式为例: (1)考试的成绩构成。根据学生完成需求规格说明书的情况占总成绩的70%,课堂阐述项目功能、提问回答情况以及平时课题成绩占总成绩30%,两项综合为期末成绩。 (2)评分标准。根据小组需求规格说明书完成情况,将学生的成绩分成优秀(90~100)、良好(80~89)、合格(60~79)、不合格(59~0)四个等级。例如优秀的完成情况应该具备如下要求:①需求规格说明书功能介绍规范、详尽;②系统分析设计新颖,有亮点,对现有的系统改进具有较好的指导意义;③整体设计分析全面,具有较好的扩展性;④E-R图、文字描述等准确、具体。同时,课堂阐述项目功能讲解具体、准确、全面;整体设计功能有亮点,新颖独特;回答提问,准确、流畅。 3.2 集成项目化在学生日常教学过程中发挥的积极推动作用 (1)学习的课程目标明确,不再感到迷茫。由于采用了以开发项目为案例的教学模式,与以往照本宣科的教学方式相比,同学们明确知道自己所学的课程在项目开发中所起到的作用,从而避免了课程是学了,但是对于项目开发能够起到什么作用,怎么用,用在哪里等仍然很疑惑的问题。 (2)以项目为导向,课程之间实现了统一项目教学和交互。依据教学计划编写教学项目,以一个教学项目为例,由信息系统分析与设计课程讲解项目的需求分析;由管理信息系统课程进行系统数据库设计;最终由程序设计进行项目实现。 (3)将实际项目引入到课程教学中来。通过校企合作,最大化的将企业中优秀案例引入到日常教学中来,极大地满足了学生的求知欲,尤其是对毕业生而言,能够在离校之前接触到实际的案例对今后即将从事的工作有了一次亲密接触的机会。 (4)整合教学模式,让学生在教学的过程中得到锻炼。用三个学期的时间对课程进行重组,首先在课程的安排上,创造性的将每周的课程集中,如信息系统分析与设计这门课程原先的教学计划是每周四节课,这四节课分为今天两节在教室,另外两节是另一天在机房,这样的安排往往会造成,学生在教室里学到的理论知识到了机房上机的时候已经逐步淡忘,造成课程脱节。现在的安排是将四节课集中到一个上午,统一在机房上课,这样做的最大好处就是让课程最大程度地得到整合,让学生在学习的过程中动手得到锻炼,课程的连贯程度极高,课堂的教学效果很明显。 (5)提升了整体毕业生的核心竞争力。学生通过系统的学习一个实际项目从需求分析到数据库设计,最终通过软件实现。这个过程中,学生需要通过小组组建考验团队协作精神,小组组长的领导力和执行力;在需求分析中掌握发现问题、分析问题的能力,学会与人沟通的能力;在项目实现中掌握软件编程的方法;从而提升整体毕业生的核心竞争力。 4 结束语 集成项目化教学是结合我院计算机软件专业教学的实际提出的新的教学改革尝试,通过整合教育教学资源,最大化地为毕业生服务,切实体现了高等职业教育培养应用、复合型人才的办学理念。 软件毕业论文:软件工程专业本科毕业设计过程管理 摘要:分析软件工程专业本科毕业设计管理中存在的主要问题,针对软件企业对软件工程专业的人才培养要求,提出软件工程专业本科毕业设计过程管理措施,强调通过建立和完善毕业设计的管理制度,加强毕业设计过程的监控;构建完善的毕业设计管理平台,提高本科毕业设计管理水平;改革毕业论文形式,建立毕业设计过程管理评价体系,提高学生工程实践能力。 关键词:软件工程;本科毕业设计;过程管理 软件学院软件工程专业的设立是国家教育部、国家发展计划委员会为满足国家软件产业发展对人才的迫切需求于2001年批准成立的。重庆大学软件学院是国家首批示范性软件学院之一,其人才培养目标是培养“面向应用、遵循标准、适应团队、把握技术、熟知领域、外语优良”的软件工程人才。10年来,软件学院十分重视软件工程专业的工程化教学改革,采取多项政策和措施促进工程型软件实用人才的培养。本科毕业设计是实现高等学校人才培养目标的重要教学环节,是培养学生创新意识和创新能力的重要手段,是理论学习与社会实践相结合的重要体现。因此,对软件工程专业本科毕业设计进行改革,培养具有工程实践能力的软件实用人才具有重要意义。 1 软件企业对软件工程专业培养人才的要求 软件产业的迅速发展对该行业从业人员提出更高要求,不仅要求学生掌握理论知识,还要求学生具备较强的工程实践能力与创新能力。国内计算机相关专业的教学基本上仍使用传统的理工科人才培养模式,注重基础理论知识,缺少对学生工程能力和职业素质的训练,因此培养既有扎实的专业基础知识和较强工程实践能力,又能迅速适应业界环境的高素质创新型软件人才,是软件企业对软件工程专业人才培养的要求。 2 目前本科毕业设计管理中存在的问题 1)毕业设计阶段缺乏全过程的管理与监控。 毕业设计全过程的管理与监控不够规范,缺乏专门的组织机构。毕业设计的一些主要环节疏于检查和监督,因此存在影响毕业设计质量的问题,如选题陈旧、重复率高、与软件产业发展需求不适合等。 教师指导水平有限且精力投入不足,同时没有对教师指导工作的有效绩效考核,使得教师对学生的毕业设计不够重视;某些学生由于有就业压力,便将主要精力放在人才市场和各类招聘会上,没有意识到毕业设计的重要性,最后只能通过拼凑和抄袭完成毕业设计。 2)毕业设计阶段缺乏规范化的指导性文件。 毕业设计工作持续时间长,涉及所有毕业生和教师,如果没有规范化的指导性文件能够让指导教师和学生了解毕业设计工作的意义、目标、计划、流程、论文规范化格式、质量评价标准、成绩考核等具体实施细则,明确自己在该项工作中扮演的角色以及整个毕业设计流程对自身承担工作的质量要求,那么很难提高毕业设计质量。 3)毕业设计文档资料缺乏有效管理。 毕业设计成果是学校的重要知识和信息资源,完善的文档资料管理有助于毕业设计工作的传承和创新。长久以来,毕业设计作品和论文主要采用人工管理。学生答辩后提交资料袋,资料袋中包括毕业设计相关文档和设计作品的刻录光盘,但由于管理人员对毕业设计资料的重视程度不够或人员不够,导致毕业设计资料管理不善,出现查询困难、答辩记录丢失等情况,为以后查阅、成果展示及下届毕业生的论文指导工作带来不便。 3 本科毕业设计管理改革措施 1)成立毕业设计管理小组。 为了加强本科毕业设计工作的组织、管理和监督,软件学院专门成立毕业设计管理小组,小组成员由教学副院长、正副系主任及学生助管组成,负责整个毕业设计过程的管理监督工作,包括从选题、审题、任务书下达到开题、中期检查、答辩、成绩评定、推优的全过程。 2)建立和完善毕业设计的管理制度。 为了提高毕业设计质量,毕业设计管理小组根据软件工程专业特点建立学院的具体工作规范和有效的毕业设计管理模式和监控制度,加强毕业设计制度建设,使得从选题、下达任务书到学生的开题报告,从每周汇报、中期检查到设计文档撰写、论文撰写、论文重复率监测、论文评阅及论文答辩,都有切实可行的实施细则及管理规章制度;构建集中管理与跟踪管理、周报提交、外出请假、抄袭检测、讲座出勤等平时成绩评定标准;完善从平时表现、系统设计实现质量、论文或设计文档质量、答辩水平等多方面衡量的客观、公正的综合成绩评定标准和推优程序。在毕业设计全过程管理中,力求做到有章可循及有据可查。 3)多元化的毕业论文形式。 多元化的毕业论文形式有利于培养大学生创新实践能力。根据软件工程专业特点,软件学院对毕业论文形式进行改革。毕业设计形式包括传统方式和新方式,学生可以选择其中一种方式,具体采用哪种方式则由指导老师负责。 传统方式是指毕业生完成开题报告并翻译一篇相关课题的英文文献,然后对软件系统进行需求分析、设计和编码实现,或者对相应算法进行研究、分析和编码实现,最后完成毕业设计论文。 为了面向软件企业需求,培养学生的软件设计能力,新方式注重提高学生的系统设计文档编写能力。毕业生前期仍然要完成开题报告、英文文献、系统分析设计和编码,最后提交系统设计相关文档。系统设计相关文档由以下文档构成:①项目开发计划;②软件需求说明;③系统设计说明;④数据库设计说明;⑤用户手册;⑥测试分析报告;⑦项目开发总结。根据软件工程学科特点及专业人才培养的要求,结合学校的毕业设计(论文)管理办法和软件设计文档国家标准,软件学院制定了符合专业人才培养目标的设计文档规范。 为提高学生科技论文写作水平和研究报告的演讲能力,软件学院面向软件工程专业所有应届毕业生,在其毕业设计阶段开设8学时的“科技论文写作规范”“研究报告演讲技巧”讲座,强调科技论文写作的规范性和可读性,锻炼学生演讲研究报告的能力。 4)加强毕业设计过程管理和监控。 毕业设计过程管理和监控面向的对象是学生和教师。软件学院毕业学生做毕业设计有不同情况,如有在校外软件公司做毕业设计的,更多的是在校内做毕业设计,因此需要有相应的不同管理模式。为加强学生培养质量和降低指导教师管理难度,软件学院提供集中管理与跟踪管理方式。 集中管理是指学院设置固定机房和机位并安排助教作为管理人员,由指导教师给学生安排机房,由管理人员负责学生的日常考勤,学生需及时向指导老师汇报学习情况,学生若有事必须请假。跟踪管理主要针对在校外进行毕业设计的学生,要求这类学生完成校外毕业设计申请,由管理小组协助指导教师对校外学生进行跟踪,为这些学生提供及时的毕业设计信息服务。这类学生必须每周与学校指导教师联系,以便教师详细了解并掌握学生毕业设计进度。这种具体的制度和规范,对在校内进行毕业设计和赴外进行毕业设计的学生进行了有效监控。 针对指导教师的管理,毕业设计管理小组采用不定期检查和周报提交的方式。毕业设计规范要求每位指导教师每周指导时间不少于2小时,指导教师需要检查学生毕业设计的进度和质量;解答学生提出的问题,进行下一阶段工作部署与指导,保证毕业设计的质量。 不定期检查指毕业设计管理小组根据指导教师在毕业设计系统中登记的指导时间和地点,不定期对教师的指导情况进行检查。周报提交是指学院建立的毕业设计定期报告制度,教师和学生每周均需要将周报提交到系统上,教师主要汇报每周对学生指导情况以及学生毕业设计进度和质量,学生主要汇报每周的毕业设计进度、毕业设计遇到的问题等。毕业设计管理小组每周对周报进行汇总分析并,及时了解毕业设计情况,对学生和教师提出的问题进行统一解答。 5)构建完善的毕业设计管理平台。 充分利用计算机技术,构建完善的毕业设计管理平台,提高毕业设计管理水平,使毕业设计管理更加规范化。软件学院在毕业设计过程中使用的管理系统包括:重庆大学本科毕业设计系统、重庆大学网络教学综合系统、重庆大学软件学院软件工程实践教学平台。 6)建立毕业设计过程管理评价体系。 建立毕业设计过程管理评价体系,要求所有 一学生和指导老师每周都要将周报提交到EOL(重庆大学网络教学综合平台)平台。毕业设计管理小组每周对毕业设计情况进行检查和监督,并将检查情况告知所有指导老师。指导老师每周提交周报次数与毕业设计指导工作量挂钩;学生考勤情况、周报提交情况、平时检查情况会被记入平时成绩,平时成绩不合格将被取消答辩资格。 软件学院强调学生在毕业设计期间一定要进行软件系统设计和实现,毕业答辩包括系统演示、用PPT讲解毕业设计主要工作、答辩教师提问等多环节,答辩老师根据学生工作量、完成质量、论文或设计文档质量、答辩情况进行评分。学生毕业设计的最终成绩由平时成绩、指导教师成绩、交叉评阅成绩和答辩成绩构成,以保证评分的公平性。 7)加强诚信机制建设 为了提高本科毕业设计质量,加强学术道德和学风建设,营造学术诚信氛围,软件学院使用“大学生论文抄袭检测系统”对本科毕业论文进行防抄袭检测。抽检比例为应届毕业论文的50%,抽检名单由毕业论文管理系统随机抽取。另外,各答辩小组推荐的优秀毕业论文为必检对象。 软件学院制定论文抄袭的认定标准(建议文字复制比不超过25%)和处理办法,对有问题的论文,责成指导教师对检测结果予以认定和说明或督促学生修改,取消被认定抄袭论文学生的答辩资格;对各答辩小组推荐的优秀毕业论文进行,不合格的论文取消优秀。 4 结语 培养适应我国软件产业发展的软件工程人才,提高软件工程本科毕业设计质量,毕业设计的改革势在必行。通过2届学生的毕业设计改革证明,建立和完善毕业设计的管理制度,加强毕业设计过程的监控,充分利用毕业设计管理平台,实现多元化的毕业论文形式,建立合理的毕业设计过程管理评价体系,加强诚信机制建设,能极大地促进师生在毕业设计过程中投入热情和精力,提高本科毕业设计管理水平,有效保证毕业设计质量。 软件毕业论文:拓宽软件高职毕业生就业门路的经验和做法 随着国家教育体制的改革,新成长劳动力规模的庞大,高校毕业生就业工作不断取得新进展,高校毕业生的就业成了僧多粥少工作难找的现状,高校毕业生求职前景不容乐观。我校——闽江学院软件学院是以“培养实用技能型软件人才”为目标的高职院校。作为福建省软件职业教育集团的龙头院校,在毕业生就业问题上我们也备感压力,本人通过对自己就职学校毕业生就业工作的分析,就如何应对就业形势的变化,提高高职生的就业竞争力,拓宽毕业生就业门路的经验和做法进行探析。 学院毕业生综合情况分析 软件学院有一个本科专业(专升本)和十个专科专业毕业生,每年毕业生中以大专为主。学院有高职单招、普高、五年专三种性质的学生,从大专生自身劣势讲,学生整体素质普遍不高,这是其就业时一个很大的劣势。主要表现在基本素质不高、学习底子薄、自制能力不强,这也是大专学生最明显的群体特征之一。特别是有相当一部分大专学生习惯差、学习主动性不够,很难适应当今社会的发展。软件学院学生优势就是,我们采用的是双证教学,学生在正常完成学业的同时也完成了相关知名IT企业的认证,在资质和动手实践能力上与同类院系学生相比有一定的优势。因此在开展毕业生就业指导时我们要有别于本科院系,不能拘泥于传统,形成一套有自身院系特色的毕业生就业指导体系。 学院毕业生就业指导工作的措施和经验 1.校企合作搭建学校与企业的共赢平台 学院根据专业教育需求,与微软(中国)公司、北京全美教育技术服务有限公司、思科系统公司、上海微创软件有限公司、戴尔计算机(中国)有限公司等众多国内外知名IT企业合作,开展“订单式”人才培养,实施软件实训计划,改革传统教学模式,着重培养学生的动手能力。在实践教学上,通过产学研相结合的模式,借鉴国内外软件企业在技术、培训等方面的经验,建立了实训工程,通过校内实训和校外顶岗实训,不断提高学生项目分析和研发水平。我们拥有福建省高职教育软件类唯一的省级网络技术实训基地,并在省内同类院校中率先开设了“学生创业园”,由学生团队携带项目入驻园中,按照企业模式进行项目开发。依托学生创业园是专业设置与社会需求零距离配合,教学内容与职业需求零距离贴近、实训教学与就业岗位零距离对接。近年来从学生创业园走出的毕业生就业率几乎达到100%,毕业生就业单位中不乏国内一些知名的IT企业。 2.发挥辅导员作用,帮助毕业生提高择业竞争技能 作为思政工作者,学院每位辅导员都认真对待毕业生就业问题,高度重视毕业生就业工作,对学生的前途负责,对社会的稳定发展负责。辅导员作为学生的良师益友,不仅要帮助学生全面而又充分地了解自己,了解自己在竞争中的优势。还要向学生强调、让学生明白当前就业形势的严峻,鼓励学生“先就业,后择业”。学生就业指导课原则上安排学生思想政治辅导员授课,通过就业指导课,辅导学生掌握适合自身的求职应试方法和技巧以及自身职业定向,在指导过程中用发展的眼光、科学的方法解决毕业生就业中出现的问题。辅导员通过对毕业生的就业指导,帮助学生了解形势、掌握政策、更新观念、调整期望值、增强创新创业意识、提升就业能力和整体素质,促进和帮助毕业生最终实现就业。 3.收集就业信息组织供需双向选择 现代社会是一个信息社会,信息作为一种重要的载体,在丰富社会生活,沟通人际社会关系等方面发挥着越来越重要的作用。我们可以充分使用现有的网络和现代化服务平台,快速便捷的开展就业信息宣传和服务。学院就业指导中心充分利用网上信息资源丰富、时效性强、访问快捷、查询便利等特点,为大学生就业提供快速、高效的信息服务。就业指导中心项目负责老师从林林总总的就业信息中筛选出有效信息,通过学院的学生短信平台及时的给我们的毕业生,使毕业生在择业中赢得主动,增加选择的余地,从容就业。学院还采取“请企业进来和毕业生走出去”的就业指导策略,每年的12月份中旬,定期在校园内举办毕业生校园招聘会,每年的招聘会都能够吸引100多家企业到校开展供需见面、双向选择活动。我们请用人单位到学校进行实地考察,增加用人单位对学院专业设置、知识结构、人才培养情况的了解,从而有利于用人单位挑选使用所需的毕业生。另外,我们还联系企业安排毕业生组团走出去参加用人大单位的面试,如飞毛腿电子公司、网龙公司、中国移动、冠捷电子等企业。对用人单位我们还常常利用学校推荐的方法,减轻企业频繁地参加各层次的供需见面双向选择活动而造成大量的人力、财力和时间的浪费,减少就业信息的重复和毕业生的就业盲目性。从而达到企业招到人,毕业生实现就业的互利局面。此外,学院还积极调动全校力量特别是职能部门、专业老师的力量积极为学生寻找就业岗位,为学生的就业做力所能及之事。 4.加大政策宣传力度鼓励和引导毕业生下基层 通过学院广播台和宣传栏报道毕业生就业与创业的先进典型,形成正确的舆论导向。学院就业指导中心定期召开毕业生就业政策宣讲会,组织毕业班辅导员参加政策学习,引导毕业生认清就业形势,切实转变就业观和择业观。在宣传政策的影响下,越来越多的毕业生响应号召义无返顾地走向农村,走向基层一线兢兢业业地工作,还有的毕业生通过“三支一扶”的政策从事支教、支农(含林业、水利)、支医和扶贫工作。实践证明,大专生在基层还是大有可为,他们在基层照样可以谱写出一曲曲壮美的青春之歌,我们的毕业生通过基层工作,深入了解社会生活,了解基层疾苦,在社会的大熔炉里陶冶情操,磨砺意志,贡献自己的聪明才智,也为自己的人生观、价值观赋予了新的时代内涵。这些政策的落实对提升学院毕业生就业率有着深远的影响。 5.广泛开展创业项目建设 自主创业日益成为大学毕业生就业的一个重要方向。我们充分利用国家的扶持政策和项目,采取灵活多样的形式开展创业教育。如鼓励支持学生自发组建创业社团组织、参加各类创业计划大赛、广告和营销策划大赛等创业竞赛活动。2008年4月,YBC闽江学院服务站正式成立,该服务站以软件学院学生创业园为基地,辐射全校师生,开展了一系列扶持青年就业创业及青年志愿服务活动。服务站每学年举办三到四期的YBC创业培训、淘宝大学培训、定期开展创业大讲堂及青年志愿者活动、大学生创业孵化推荐等。帮助致力于自主创业的毕业生进行资金扶持和技术指导, 引导学生理性择业,优质就业,成功创业。通过这些项目的开展我们学院形成了以“专业培养+团队搭建+项目孵化+能力塑造+创业扶持”为特色的一套较为完整的扶持大学生就业创业实践的服务体系。这一体系得到了广大毕业生的一致好评,拓宽了毕业生的就业门路。 6.弱势群体毕业生的就业措施 弱势群体毕业生在这里我们主要指家庭贫困毕业生和身患残疾或形象有缺陷的毕业生。高校毕业生弱势群体帮扶工作关系到社会和谐、稳定与健康发展,解决他们就业难问题也是全社会的问题。开展弱势群体毕业生就业帮扶上我们通过学院心理咨询中心对弱势群体毕业就业问题心理教育方面入手、引导帮助他们调节心理压力,提高挫折的承受力,提高就业心理素质;帮助他们正确认识自我、了解社会、了解职业对人的心理素质要求,以便选择合适自己的职业。另外,学院就业指导中心主动为弱势群体毕业生联系落实就业实习单位,提供多渠道的招聘信息,搭建用人单位与他们双向选择的平台,积极向企业推荐,专门为弱势群体毕业生开设“就业绿色通道”,帮助他们掌握择业的基本方法和技巧,对于基础薄弱、应用能力较差的学生,学院还组织专业教师给他们“开小灶”,加强辅导,提高他们的综合素质和就业核心竞争力。毕业后对弱势群体毕业生我们还进行跟踪调查,了解他们的就业状况,对未就业弱势群体毕业生实行教师包干制,坚决不让一位弱势群体毕业生待业或失业。 在面对新的就业局势下,学院将就业工作纳入整体工作规划,把毕业生就业摆在当前就业工作的首位。通过自身在就业指导工作上不断的探索和积累,走出了一条符合学院发展的道路。连续几年来,软件学院在同类院校中就业率一直位居前列,毕业生分布各行各业,通过回访,我们了解到用人单位对学院应届毕业生的工作表现满意度达到了90%。学院也将继续深化教育改革,调整人才培养结构,着力提高学生的创新意识和实践能力,提高毕业生就业能力,拓宽就业门路,最终适应当前的就业服务新需要。 (作者单位:闽江学院) 软件毕业论文:做好软件建设是提高理工科毕业论文质量的有效措施 摘要: 针对理工科类专业实践环节多,毕业论文多有硬件要求,而新建地方本科院校各方面存在不足,毕业论文(设计)质量不高的问题,提出有效提高论文质量的快速方法为完善制度,合理选题,做好专业建设和教学改革及现有教师队伍建设和指导模式改革等软件建设,以期对本校和兄弟院校提高理工科毕业论文(设计)质量提供参考。 关键词: 新建地方本科院校;理工科毕业论文(设计);措施;软环境 1新建地方本科院校的特点 新建地方本科院校多为专升本的院校[1],其基本上本专科教育并存,多数以专科教育为主,定位是培养大量下得去、 留得住、 用得上,富有实干精神和开拓能力的高级应用型人才。它通过升本的机遇大量引进优秀人才,加强实验室建设,使学校科研工作得以快速发展。其功能和以往相比,除了教学以外,加大了科研和社会服务功能,即立足于地方和区域经济发展,在为地方培养人才的同时,利用自身在科研上的优势,通过参与社会经济技术活动,推动科技进步,促进经济发展[2]。随着地方经济的快速发展和扩张,它们已成为中小型企业发展的人才库和技术革新的思想库[3]。 2理工科毕业论文(设计)存在的问题 本科毕业论文工作是大学本科教学计划中的重要实践环节,是培养学生综合运用所学基础知识和基本技能进行科研工作的初步训练,是培养和提高学生分析和解决问题的能力,实现教学、科研和生产实践相结合的重要途径,是本科生毕业和授予学士学位的必要条件[4]。而理工科类专业主要培养科学型、技术型和应用型人才,其实践环节多,毕业论文多有硬件要求。新建本科院校因地理位置的制约,在生源质量、经验交流等方面处于劣势,学生综合素质偏低。再加上历史原因,和老牌本科院校相比难免存在诸多不足,主要体现在教学条件有限、师资力量缺乏、学生重视不够和管理制度不健全,教学计划不完善,就业与考研复试冲击,学生普遍存在论文基本攻薄弱等因素[5-8],这些不仅制约着新建本科院校的发展,而且还影响着人才培养的质量,最直接的影响就是毕业论文(设计)质量不高。 3提高毕业论文的措施 硬件的改善是一个长期而复杂的过程,而要解决当前的困难,更有效的方法是做好软件建设。 3.1 加强动员,完善制度,提高学生的认识和论文效率加强动员,提高学生的认识。让学生知道撰写毕业论文是人才培养中十分重要的环节,是本科阶段必须完成的一门必修课,是与毕业直接关联,获得学位、求职或继续深造的先决条件;让他们明确撰写论文不是一蹴而就的事情,是一个人才培养过程,是科研能力、理论联系实际能力、文献资料查阅能力等的形成和提高过程。学校和系部统一思想,对不合格的论文决不手软,只有确定了明确的标准并能够得到严格的执行,才能够使学生打消侥幸心理,有压力去完成。学生重视,基本功扎实,可以提高实验(设计)数据的准确性,进而提高论文写作质量,减轻老师指导的难度。 3.2 通过合适的选题来弥补硬件的不足优化选题是提高毕业论文质量的重要前提和基础。新建地方本科院校要提高毕业论文质量除了在选题方面严把质量关,做到难易适宜外,还可以通过合适的选题来弥补硬件的不足。 3.2.1 与地方企业联合,利用企业的经济优势共同研究和开发科研课题,为学生毕业论文提供素材。论文(设计)命题一直或部分时间到科研合作单位、实习单位或有工作意向的单位进行,完成后由学校进行考核。这种方式能够让学生自行在企业中得到锻炼,寻找解决实际问题的方法和途径,避免从书本到书本的纸上谈兵,让学生在社会的大课堂中通过毕业论文的训练得到锻炼,学到实际本领,提高创新能力,同时也解决学生在就业和学习方面的矛盾冲突。 3.2.2 加强与资深的科研院所合作,实现两类院所师生的“双赢”。很多资深的科研院所高级职称和博士较多、科研力量雄厚,仪器设备先进而充足,很多对新升本科院校来讲很难申报的前沿课题,但对省重点高校或更高层次的高校老师手中往往有两个或更多的项目却课题组人手不够,这正是新升本科院校的缺口。因此可以通过不同渠道,加强与这些高校或研究所联系,利用他们的课题和资源优势解决自己课题方向老套、脱离实际、仪器设备不足等问题,为新升本科院校毕业论文和科研工作的开展注入一定的活力,让更多学生有进行科研工作同时完成毕业论文的机会,实现两类院校师生的“双赢”。 3.2.3 做设计类课题。现在的大学生,有相当一部分有个人电脑,可选择应用计算机进行毕业设计。调查发现历届理工科毕业生,无论是在工厂从事技术开发、生产管理,在公司从事经营贸易,还是在政府机关就职,几乎都需要使用计算机。作为培养掌握最新科技人才的高等院校,当然应该顺应这个潮流。 3.2.4 选题时间提前、内容放开,学生有充裕的时间完成论文(设计)。一方面可以鼓励教师让学生参与到自己或学校立项的科研课题或实验室建设课题中。一方面毕业论文(设计)与贯穿于整个本科教育过程结合起来。学生在学习专业知识的过程中对某一问题的质疑、改进或推广,只要能够体现学生科研能力,都可以作为毕业论文(设计)选题。教学实践中的综合性或创新型实验,只要能够体现水平的,也可以作为毕业论文(设计)选题。教师可以不定期的向学生提供毕业论文(设计)选题,与大学生科技创新活动结合,鼓励学生自己选题,利用兴趣这一强大动力提高论文质量。 3.3 加强专业建设和教学改革调整教学计划,合理安排时间,处理好实习、考研、就业与论文写作之间的冲突,同时通过课程建设和教学改革让学生提前做好准备,提高基本功。狠抓教学质量,使学生牢固掌握专业基础理论、基本知识和基本技能,做好专业知识与技能的准备。开设专业文献检索、科研方法与论文写作训练方面的课程,使其掌握一定的科研方法。提高外语与计算机水平,对于论文有关文献的查阅以及日后论文的撰写、排版、定稿都大有帮助。改革实践教学,强化综合实践能力培养,构建由简单到综合,由单一到复杂,循序渐进的系列化实践教学体系。在日常教学过程中老师适当引导学生精读一定数量的范文,从内容到形式,反复揣摩,以便能够有效地借鉴它、模拟它。同时,老师可每学期给学生布置一两个与其专业相关的写作任务,学生可以根据老师的评语有针性的攻克自己写作的弱点,争取每写一次论文就能进步一点。课程实习、学年实习和毕业实习都有总结报告和社会实践报告,这些写作都可以较早地培养学生的论文意识,对于毕业论文的写作有着素材储备、技能准备等多方面的作用。 3.4 加强教师队伍建设和指导模式改革 3.4.1 现有教师队伍的建设加强指导老师科研能力培养,鼓励其勇挑科研重担,提高科研能力和学术水平,为提高论文(设计)质量提供有效的保障。通过参加社会实践、指导学生实习、参与工程项目设计等,组织指导教师尤其是青年教师深入生产和工程实际,在实践中总结和积累经验,为指导论文(设计)奠定良好的基础。在指导工作中要特别注意加强指导教师的师德修养,提高政治思想素质。可适度聘请外校教师或企业高工参与到论文指导中来。 3.4.2 论文指导模式改革首先可采用教师团队指导方式,即以教学科研经验丰富的教师为组长,在充分考虑老师的专业特长与教龄基础上,组建毕业论文指导团队,对学生进行指导,这种方式将发挥教师在各个领域的知识优势和结构,有利于培养学生更全面的掌握解决工程实际问题的能力和团队协作精神,可以较好的完成论文指导任务,同时也培养了青年教师论文指导能力和解决工程实际问题的能力,提高青年教师的业务水平。其次可采用双导师制。对于校内课题,青年教师可以作为副导师、高职称教师的助手身份参与指导论文。因为教授经验丰富,但是指导学生时间相对较少,而青年教师精力充足,时间多,但是科研能力相对薄弱,需要不断提高。每个学生都配有导师和副导师,可以发挥他们各自的优势,取长补短。这种联合指导方式,真正体现了教授“传、帮、带”的学科带头作用,加速了具有知识创新和科研攻坚能力的学术人才的形成,青年教师的科研能力将大大提高,为创新人才的培养打下坚实的基础。课题来自企业的采用校企双导师指导制,这样做可以将学校的理论知识更好地与企业的生产实践有机的结合起来,更有利于学生尽快的融入企业文化。 综上所述,新建地方本科院校,硬件的改善是一个长期而复杂的过程,要提高理工科毕业论文(设计)质量可以从完善制度,合理选题,做好专业建设和教学改革及现有教师队伍建设和指导模式改革等软件建设着手。 软件毕业论文:浅谈高职软件专业毕业生就业前景 摘要:本文首先分析了当前高职软件毕业生的就业优势,然后指出了我国高职软件专业毕业生就业存在的主要问题,最后提出了加强高职软件专业毕业生就业的相关策略,旨在与同行交流,以期更好地为高职软件专业毕业生就业服务。 关键词:高职;软件专业;毕业生就业前景 近年来,由于高校的扩招,导致大学毕业生面临的就业压力非常巨大。作为高职软件专业的毕业生,他们凭借专业优势,以及自己在学习期间获得的较强的动手操作实践能力,在就业方面呈现出喜人的发展形势,相对而言,还超过了大学生甚至研究生的就业率。 一、当前高职高专毕业生就业的优势 与大学毕业生相比较而言,当前高职软件毕业生在就业方面具有比较明显的优势。一方面。从高职软件专业毕业生的优势来看,主要是他们具备的动手操作能力非常强,所掌握的专业技能比较过硬,一走上工作岗位就能够迅速胜任。因此,作为企业,对这样的高职软件专业的毕业生是非常欢迎的。从高职软件专业培养的人才类型来看,主要培养的是动手型人才。这类高职学校开设的课程以职业技能的提高为目标,紧紧围绕市场所需要的应用型、操作型人才,强化职业技能训练,高职软件专业毕业生通过一系列的专业技能训练,能够掌握过硬的专业技能,具备了很强的实践能力。因此,他们适应岗位需要的能力比较强,所需的磨合周期比较短,能够迅速为企业创造出利润。所以,高职软件专业学生比较容易受到企业的青睐。另一方面,从大部分高职软件专业的毕业生来看,对自身的定位是比较正确的,对自己的评价比较正确、客观,对工资的期望值不高,因此,高职软件专业毕业生就业相对比较容易。 二、当前高职软件专业毕业生就业的不足之处 一是存在的不足之处。近年来,由于高职高专学校招生人数逐年增加,导致在校高职高专生数量出现大幅增加。但是,一方面,每年社会没有增加高职高专大学毕业生的需求数量。另一方面,用人单位明显提高了对高职高专人才质量的要求,要求高职高专人才的经验、职称、学历、工作年限等达到一定目标,从而限制了应届高职高专大学毕业生的就业渠道。 二是高职高专毕业生的就业仍然受到传统因素的影响。由于高职高专学校没有提供专业性的就业指导服务,导致毕业生对自身所学专业的职业特点缺乏深入透彻的理解,仍然受到传统因素的影响,使得某些高职高专毕业生不能认清当前的就业形势,仍然期望在经济发达地区和各种条件相对较好地区的单位就业,导致发达城市、大企业、经济效益好的企业的供需矛盾日益加大。 三、关于促进高职软件专业毕业生就业的几点建议(一)注重培养高职软件专业毕业生的职业素养。为促进高职软件专业毕业生就业,应加大学生职业素养的培养,主要包括学生的专业技术知识、计算机实践能力以及自学能力。其中最主要的就是专业技术知识,即软件专业知识技能。因此,学校应将提高专业技术知识作为核心任务,加大培养力度,在培训和学习过程要求学生具有专业的软件技术知识,结合高职院校人才培养模式,促进学生职业素养的提升,为学生做好就业的准备。(二)注重培养高职软件专业毕业生的社会能力。社会能力是衡量学生人际交往、语言表达、组织管理、创造力、想象力、团队协作等能力高低的重要体现。因而为培养高职软件专业毕业生的这些能力,就应在学校内组织丰富的社团实践活动,并引导他们积极参与进来。这就能让学生在学校组建的平台上将自身的优点与长处发挥得淋漓尽致,自身潜力得到发展,使得社会能力得到培养,为学生以后的就业过程中提高竞争力。(三)提供专业化的就业指导服务促进就业。作为学校,为学生提供专业化的就业指导服务,能锻炼学生的择业技能,提高自身的就业实力。通过开设职业规划和就业指导服务课,引导他们认真学习软件知识,看清当前的就业形势,提升软件行业的就业技能和心理素质,从而确保就业成功。四、高职软件专业毕业生就业前景随着时代的发展,知识经济时代的到来,我国对各种各样的人才需求变得越来越旺盛。虽然我国当前的高职软件毕业生的就业还有一些不尽人意之处,但我们只要将他们培养成才,坚持积极乐观的态度,通过不断的努力和总结,将就业经验尽可能的传授给他们,注重他们软件专业技能的培养,加强就业指导服务,转化高职软件专业毕业生的择业观、价值观和人生观。加之他们本身就具有较强的实践能力,通过教师专业的培训,软件专业技能的不断提升。因而,我们坚信我国高职软件毕业生的就业前景将一片光明。 总而言之,我们在看到高职软件专业毕业生具有广阔的就业前景的同时,也应该看到存在的不足,采取行之有效的措施,扬长避短,才能更好地做好高职软件专业毕业生工作。
软件技术毕业论文:计算机软件技术开发思路 【摘要】对计算机软件技术的开发与应用进行分析和介绍。研究内容在社会经济不断发展的今天,在人们生活以及工作的方方面面都已经广泛的运用到了计算机软件技术,因此关于计算机软件技术的开发应用受到了人们的普遍重视。本文对计算机软件技术的发展现状进行了分析和介绍,并且对开发计算机软件技术的研究进行了简单的分析。结论计算机软件技术在未来具有广阔的应用和发展前景。 【关键词】计算机应用;软件技术开发;应用前景 引言 计算机技术自从诞生以来,就在国民经济的各个领域中得到了非常广泛的应用,而且计算机在很多领域中已经占据了主导的作用。计算机主要包括两个部分也就是硬件和软件,其中保证计算机的运行的核心部分就是软件系统,不同的计算机软件系统在计算机中也具有不同的作用。与此同时,现在随着人们需求的不断变化,计算机软件的多功能性也在不断的拓展中,其深刻的影响到了人类社会的发展和改革。虽然与全球其他发达国家的软件产业总额比起来,我国软件产业的总额还存在着一定的差距,然而现在这个状况正在不断的改善当中,目前在全球软件产业总额中我国软件产业总额占据了越来越高的比例。 1计算机软件技术的开发现状分析 作为一种能够操作软件系统的高级技术,计算机软件技术的主要研究内容就是保证高效运营的运行模型、积极的优化相应的支撑体系、进一步的探索相关的手段等。 1.1对操作系统的开发 作为计算机的重要组成部分,计算机的操作系统在计算机的运行过程中具有十分重要的作用,比如管理各种硬件以及资源的硬件资源管理系统,其主要包括显示器、存储器以及处理器等;同时其也能够操作各种软件运营系统,从而能够统筹管理软件的运行情况;除此之外,其还能够有效的支撑相对应的一些软件。现在计算机软件技术发展的越来越快,而且操作的合理性以及便捷性已经成为了计算机软件系统在未来的主要发展方向。作为一种新兴技术,嵌入式技术在操作系统中的应用也变得越来越广泛,而且已经取得了较好的发展。所谓的嵌入式技术就是使计算机的硬件和软件有机的结合别的机电设备,最终将一个全新的设备系统形成。现在嵌入式系统产品种类变得越来越多,而且广泛地运用在了各个领域中[2]。 1.2对数据库操作系统的开发 作为计算机系统的关键组成部分,数据库系统在计算机系统中处于核心的地位。现在数据库系统的安全技术问题受到了很多人的关注,因此其也具有了良好的发展。数据库系统的支柱在数据库系统中具有十分重要的作用,各大数据库公司以及软件学术界都开始积极的研发数据库系统,而且已经将数据库系统的研发放在了首要的位置。 1.3软件工程环境的开发 对工具技术以及方法等实施合理的安排是软件工程的主要侧重点,软件工程环境的主要定义就是一系列的能够在一起工作的系统构件,并且能够保证日常工作活动中自动化支持的实现。在早期开发软件工程环境主要属于一种整体的研发,现在已经开始出现了细节化以及分散化的特点[3]。 2计算机软件技术的具体应用分析 2.1在项目工程中计算机软件的应用 在信息化社会,不管是信息的传播方式也好还是信息量也好都具有多种多样的特点,而这一特点也使得项目各方在具体的交流过程中变得比较困难,因此信息的交流和传递对一个工程的管理来说具有十分重要的作用。将计算机软件充分的运用到项目工程中就能够使这一问题得到有效的解决,现在按照功能可以将工程项目管理软件划分为两种,比如高档次的P3具有十分强大的功能,但是也相对的具有较高的价格,TimeLine属于一种低档次的软件,其只能解决工程中的某一方面的问题。 2.2在工程制图中对计算机软件的应用 在工程制图中对计算机软件进行充分的运用能够使工程师的劳动力可以极大降低,并且也使得工程开发的进度得加快。现在制图软件技术随着计算机软件技术的不断发展也出现了较快的提升,一般可以将工程制图的软件发展过程划分为三个阶段,也就是初步使用光栅扫描显示器,广泛使用PC机以及飞速发展的工程制图软件。现在有很多软件都在计算机工程制图中得到了广泛的应用,比如Java以及AutoCAD等都属于比较常用的软件[4]。当前,应用计算机软件进行工程制图已经基本实现了智能化、数字化及一体化,将人们的创造潜能发挥到了更大的限度,其流程见图1。 2.3在移动计算机通信中对计算机软件技术的应用 现在在IT技术中移动通信和Internet属于两大热点技术,有效的结合这两大这点技术就诞生了移动计算机通讯网络。移动计算机通信网络主要指的是可以在网内随意移动主机的一种网络,这样就极大地方便了计算机用户的使用。比如PDA(个人数字助理)以及HandbookPC(笔记本电脑)等基本上都对无线通信设备进行了配置,用户可以在任何无线网络覆盖到的位置对各种不同的数据信息进行随意的发送或者接收。计算机通信的主要功能包括信息通信与网络技术的应用、分布处理功能、资源共享功能、数据通信功能。目前移动计算机通信网络技术应用的越来越广泛,主要包括移动internet的应用、纵向应用以及横向应用,而且具有非常广阔的应用前景[5]。 2.4在移动数据中计算机软件的应用 在移动通讯数据业务不断发展的今天诞生了多媒体应用处理器,现在3G移动通信技术已经在世界上很多国家和地区得到了普及。3G网络能够将更加有效地支撑起共给移动业务的发展,其除了使通信质量得以极大提升之外,同时也保证了视频通话的实现。全方位的移动数据服务时代是3G时代的一个显著的特点,在各方面3G移动通讯技术都表现出了非常大的优势,在我国移动通信技术不断发展过程中,现在又已经推出了第四代移动通信技术,与3G移动通信网络比较起来,4G移动通信网络的优势更为显著,其能够保证全球性的互通和漫游在不同同接入技术之间的实现,并且能够对多媒体互动业务进行支持,因此其具有更强的相互交错的功能性,年轻一代在未来市场上的多样化需求势必会由于4G移动通信技术的不断普及而得到更好的满足。 3结语 总之,人类社会由于大规模的计算机软件技术的开发和应用而出现了巨大的进步,在这个过程中,人们的日常工作和生活也越来越多的依赖于计算机软件技术,因此计算机软件技术对于信息化时代的人类而言具有十分重要的作用。现在我国的计算机软件技术还处于不断发展的阶段,因此我们必须要对开发和应用计算机软件技术的成果予以更多的关注,并且与我国的国情有效的结合在一起,最终能够将具有中国特色的计算机应用软件开发出来,使其在社会主义现代化建设中发挥更加重要的作用。 作者:郭晨鲜 单位:中州大学 软件技术毕业论文:软件技术专业JavaWeb课程改革思考 摘要:软件技术中一个重要的分支就是动态网站的制作。现在很多资源都可以从网络中获取,而人们获得这些数据与资源的最直接方式就是通过网页来浏览、下载与共享。JavaWeb可以说是一个综合的学科。他不仅仅是Java语言,还涵盖HTML、脚本语言、网站的设计思想、特效脚本语言乃至数据库等多方面知识的运用。目的是能够完成动态网站构建的全部过程。本文从该门课程的内容开始介绍,分析了课程中存在的问题以及问题形成的原因。针对原因有效的提出了改革措施。 关键词:脚本语言;网站设计思想;多样化评价;教材编写;实践能力 1软件技术专业JavaWeb课程的涵盖内容 1.1课程的产生 这们课程是高职针对软件专业发展,面向社会软件研发企业岗位需求,设立的特色专业。具有针对性强,就业岗位多,人才需求量大的特点。因为网站制作是很多软件研发企业必需要做的工作。无论何种功能的系统,随着网络化的普及,人们都需要让这种应用系统具备联网功能。就常常要使用到浏览器服务器模式。而浏览器呈现的友好界面就要以动态网站的形式呈现。所以,软件研发企业,对动态网站构建的技术人员需求量巨大。高职院校通过深入调研,应对岗位需求,建立了这个特色专业。这系列还被很多培训机构青睐,例如北大青鸟等都有类似的培训课程。 1.2涵盖的技术 作为一名技术人员,在动态网站研发过程中,最先要掌握的基本语言,应该是超文本标记语言。这种语言从名字就可以看出是专门为制作网页和网站服务的。因为代码简单,方便易懂。所以可以作为前导的基础课程。其次,要开发动态网站,至少要掌握一门面向对象的高级编程语言,从本门课程的名字大家也能分析出,这里选用的是Java高级编程语言。当然在动态网站制作过程中,脚本语言必不可少。目前较为成熟、流行的脚本语言有,PHP、C#和JSP,后者跟JAVA有着天然的结合性,技术也不逊色于前两者。是教学中不错的选择。当然动态特效脚本语言也是需要了解的,这里面选择性较大,不一一介绍。最后,选讲一门数据库技术,让网站从静态变为动态,才真正实现网站的意义。SQL可以进行简单介绍。除了技术角度之外,还应该介绍网站的功能设计、主题与内容的安排,风格的确定等。如果课时允许的情况下,还可以适当拓展网页美化相关的专题。 2软件技术专业JavaWeb课程存在的问题 在课程内容上未能紧跟技术发展趋势,现有的JavaWeb开发高职高专教材多以基础的知识和技能为重点来讲解,与用人企业对JavaWeb开发人才需求相差太大,不能满足用人单位的需要。比如企业多需熟练掌握SSH框架的JavaWeb开发人才,但学生没有深入地学习实践这些主流的开发框架,就业时面对企业人才需求比较被动。在教学模式上,能够采用任务驱动,项目导向的方式,但是每个项目只针对某些知识点,相对单一,虽然全部项目涵盖了全部知识点和技能,但是系统性不够,不能很好地引导学生将这些零碎的知识和技能应用于综合的系统开发中。另外,课堂和实训地点相分离,缺乏职业氛围,与企业联系不多,学生在校学习与实际工作存在不一致性。 3软件技术专业JavaWeb课程改革的有效措施 首先打破传统教学观念,以“任务为驱动”、“案例+项目”的方式进行教学,从学生熟悉的实例出发,首先提出问题,引导学生解决问题,问题扩展,再解决问题,再扩展,再解决。这种通过一个程序的层层推进,引入课程内容,使得学生的每一步学习都有基础,是循序渐进,螺旋式上升的过程,使学生的学习是在“走台阶”,而不是“三级跳”。其次在课堂教学上采用师生互动、小组讨论等形式,也通过老师巡回指导,发现学习中普遍性问题和同学中的新思路、新方法,实时地提出问题,学生进行正误判析,解决普遍性问题,或者请有独特思路的同学演示自己的方法或程序,对比各种方法的优缺点,鼓励大家再提出新方法。再次计算机类课程的学习有其自身的特点,听不会,也看不会,只能练会,所以在课程教学中必须强调程序设计训练。学生只有通过大量的练习,才能真正掌握语言知识,培养程序设计的能力,逐步理解和掌握程序设计的思想和方法,能利用计算机解决实际问题。最后课程采用过程性评价和结果性评价相结合的考核评价模式。其中,过程性评价成绩占课程总成绩的60%,结果性评价成绩占课程总成绩的40%。过程性评价以项目为单元来进行。结果性评价通过学期末的集中考试进行,重点考查学生对JavaWeb开发的基础知识及常用开发框架的理解掌握情况以及代码编写能力。每个项目成绩都是从知识、技能、态度三方面考核,考核依据是提交的成果、项目总结、平时表现、小组内部评价、组间评价等。 作者:宋磊 杨文 吴奇英 单位:哈尔滨职业技术学院 软件技术毕业论文:软件技术专业实训基地创建 实训基地不仅是为高职教育提供实践教学的重要处所,也是实现高职教育人才培养目标的重要保障.如何合理建设并充分利用好实训基地这个实践平台,是研究的首要问题. 1软件技术专业实训基地建设思路 1.1校内实训基地建设思路 (1)设立专业实训室.在建立校内实训室时,经费是首要考虑的问题,在有限经费条件下,可以根据专业特点及专业班级人数来设置实训室的功能与数量,也可以与计算机其他专业共用实训室,来达到控制成本,提高利用率的效果.如软件技术专业计算机类课程分为计算机基础课、专业基础课和专业核心课.对于计算机基础课与专业基础课可以和计算机类其他专业共用实训室,针对专业核心课程可以成立软件开发测试等实训室.在规划软件开发测试等实训室数量时,要充分考虑软件专业各年级的班级数量及专业课程设置要求与特点.计算机软件技术专业课程教学一般都采用理论实训一体化的教学模式,学期教学中会有整周的阶段性专业技能训练,要做到正常课程教学与阶段性实训不冲突,要有一定的实训室冗余.在规划实训室规模时,可以考虑专业学生班级人数成立大小不等的实训室. (2)成立软件工作室.利用校内实训室的条件,创建软件工作室.软件工作室的成员由校内的专业教师和校外周边地区软件企业的兼职教师,及来自计算机专业的对软件设计与开发感兴趣的学生组成.软件工作室可以承接一定的软件项目,在专兼职教师带领下,与学生共同完成承接的项目.在完成项目的过程中,不但可以提高教师的实践教学能力,还可以进一步锻炼学生的专业素质能力和团队合作能力. 1.2校外实训基地建设思路 校外实训基地是对校内实训基地设备、场所和功能缺陷的有效补充,能有效缓解学校实训基地建设所需经费和空间不足的矛盾.在建设校外实训基地时,可以选择与企业合作的方式,将学生送到企业进行顶岗实习.实习期间,在学生自愿的情况下,企业可以有偿或无偿对学生在软件项目开发整个流程及团队合作进行短期培训,使学生能更好地适应岗位,并为企业及学生双方创造更多价值. 2软件技术专业实训基地建设成效 2.1校内实训基地建设情况 根据专业实际需求,在满足教学实践教学要求的前提下,在学院原有实训设备的基础上,重新整合并更新了软件技术专业实训基地,成立了计算机应用实训室、计算机组装维护实训室、Java开发实训室、.NET开发实训室、软件测试实训室、软件综合项目实训室和项目开发实训室(软件工作室).为了使实训基地发挥其作用,有序的开展各项实习实训活动,制定了完善的实训室管理制度,在实训基地管理上还配备了专门的实训室管理教师与学生.教师负责实训室软件环境运行维护,学生负责实训室的日常管理,如实训室卫生的打扫及实训室开关门,在教师的带领下参与实训室软硬件的维护管理等工作.利用校内实训室资源成立了一个软件工作室,为了营造更真实的软件开发实践情境,更好地维护工作室的运营,工作室成员可以争取更多的软件设计客户,为学生提供更多的实践机会.为了争取更多的客户,工作室既要向企业展示自身的优势,如较强的技术实力等.在争取客户过程中,为工作室的员工提供了更多与企业进一步接触的机会,为学生提供更多就业机会,也为企业招收优秀的软件技术人员提供了便利. 2.2校外实训基地建设情况 软件技术专业与北大青鸟签订了合作协议,成立了青鸟软件技术专业,由我院和北大青鸟共同研究专业课程体系,共同为学生联系对口的实习岗位.在学习期间,由北大青鸟企业教师对学生进行专业、职业培训,并带领学生参与到一些项目的开发中来,提高了学生的实践能力.在与北大青鸟的合作中,学生每年都可以参加北大青鸟组织的院校赛,并设立了奖金,充分调动了学生学习的积极性及参加比赛的热情. 3结束语 软件技术专业实训基地的建立是培养具有创新意识、创造能力及应用型人才的实践场所,是提高教学质量的重要途径,是培养学生职业能力、提高职业技能水平和提升职业素质的基础保障,也是职业教育的必由之路. 作者:翟秋菊 何鑫 孙守梅 卢长鹏 单位:黑龙江农业经济职业学院信息工程系 软件技术毕业论文:软件技术服务业营改增税负影响 【摘要】1994年我国推行营业税改收增值税来调整国内工商营业税收模式、推动经济结构性减税、转变市场经济发展形式。进行试点区域化税收模式的改革带动国内各行业产业链的转型性发展突破。针对第三产业的崛起趋势具有良好的市场导向性和效益型。可以说“营增改”税收政策的实施正是为了适应第三产业发展需求和经济行业的不断转型和升级。通过平衡和制约产业结构与税收结构来为其打造有利的税收环境。 【关键词】营改增;技术服务业;税负影响 税收政策作为国家的宏观财政手段对国家财政大局和经济有着不可言喻的重要性。国内各类型经济产业是税收政策的直接作用对象。因此对经济企业和工商行业等不同产业的划分和税收制度尤为突出。随着以服务行业为代表的第三产业发展和崛起,原本的税收制度呈现多种问题,不能满足其要求。服务行业自兴起以来依据自身资源消耗低,经济附加值大的特点迅速导向市场。为协调第三产业在传统经济模式下的融合性和连带性,“营增改”应运而生。 一、我国服务行业的发展现状和分析 随着人类文明的进步、社会和谐的安定、生活与市场的负责化和经济科学的发展等诸多因素,服务行业为人提供便捷、解答和维护,为社会经济产业化便于接轨人民生活的宗旨早在二战期间就已经初现端倪。现代服务行业的确定是由美国社会学家丹尼尔提出来的。他指出服务行业在工业发展模式中最直接的表象是交通运输业和商品零售业。服务行业的出现和发展使各经济产业无不通过人性化的吸纳和融合来大范围提升企业价值和经济营销模式。这一现象导致市场规模的模糊和混乱。对行业之间的确立关系被服务行业的介入而打破。执行传统的以企业营业税为税收对象导致经济性产业和服务性产业出现双重税收,这对服务行业的发展造成巨大阻碍。尽快给服务行业找一个“安身立命”的市场并合理控制各企业之间产业链的调整和延伸,进而完成服务型行业的华丽转型。所以面对服务行业跻身各产业链的同时有效的规划市场服务类别并针对其市场经济转型和服务型经济的发展完善落实税收政策的改革是十分必要的。根据世界贸易组织的国际服务贸易分类表显示:现代服务行业可分为商业服务、通信服务、建筑有关工程服务、教育服务、环境服务、销售服务、金融服务、旅游服务、健康和社会服务、交通运输服务、娱乐文化服务等诸多类型。由于服务行业的发展迅速和其本身具有复杂化和多变化,致使现在理论界都不能统一的为服务行业有一个明确的概念分析。而通过服务行业在人民生活和产业工作的融入中的行业规整确定了服务行业典型的三大支柱,分别为生产性服务、科技型服务、新兴性服务。中国虽然发展成为世界贸易大国,但是服务行业的起步还是相对发达国家较晚。中国服务业的发展应该优先借鉴国外成功的服务发展模式,取其精华、因地制宜、推陈出新。尽快确立服务行业规章制度,通过完善的服务体系运用制度化,科学化的管理手段创造具有中国特色的服务行业。 二、实施“营增改”税收政策的试点分析 “营增改”的宗旨就是通过现代服务行业的结构性减税来解决市场行业重复征税的问题。这对企业化的结构调整和转型升级有长远的影响。2012年“营增改”税收模式率先在上海市的交通运输和现代服务业作为试点研究分析。根据国民经济和社会发展统计数据发现上海市在2011年的国民生产总值是14900.93亿元,其中以交通运输和现代服务行业为代表的第三产业贡献值比例占58.05%。第三产业的发展和建设已经成为上海经济发展和未来产业发展的焦点。因此国家税务局和财政部于2012年1月1日将上海作为“营增改”税收政策试点研究进行税收政策的改革,一年期间上海市的试点企业扩展到15.9万家,市场经济企业和纳税人的税收相对减少了166亿元,“营增改”的推行减轻了90%的企业税收负担。同年八月份国家税务局将北京、天津、广东等八个省份纳入新型税收政策试点范围中,两年后“营增改”推行全国。在现行增值税17%和13%两档税率的基础上,新增11%和6%两档税率。虽然在“营增改”税收模式下国家财政局的税收值明显下降,但相对于我国经济市场转型服务经济的发展来说。“营增改”对我国现代服务行业的优先发展和经济水平是利大于弊。当然还需要分析试点地区税收政策实施的优劣并综合国家和区域特点来进一步对新型税收政策进行考验和修正。国家税务总局为缓解试点地区产业税收转变的过度影响将传统税收模式中纳税人的营业税减免政策调整为增值税免税或者即征即退方式,非试点地区一般纳税人可凭借增值税专用发票抵扣进项税额,而原本试点地区的营业税收入依然归属于试点地区。通过传统营业税和新型增值税的双向计算和抵扣有效的链接了原本税收模式进项税额抵扣链。缓解了地方经济企业转型服务经济中税收模式的阻碍和压力,同时保持了中央和地方现行财政体制的基本稳定。本次“营增改”税收模式改革仍采用纳税人分类管理模式。以应税服务中增值税销售额为500万为界限分为一般纳税人和小规模纳税人。 三、数据分析“营增改”前后服务行业的税负影响 1、对小规模纳税人的税负影响 “营增改”后小规模纳税人的税收计算为:应纳增值税额=营业收入÷(1+3%)×3%。虽然在“营增改”后小规模纳税人征收率沿用传统税收仍为3%,但是相比于之前的纳税方式以营业收入全额乘以百分之五的税率来看,小规模纳税人收益比较明显。况且“营增改”后小规模纳税人的营业收入包括了含税销售额,这使应纳税额进一步降低。例证分析:假设某家小型服务公司的年营业额为200万元。在“营增改”钱应纳税额=100×5%=5万元;“营增改”后应纳税额=100÷(1+3%)×3%=2.91万元。经过分析计算比较“营增改”前后纳税额的比率为(5-2.91)÷5=0.418。由此可见运用增值税纳税模式小规模纳税额明显降低。 2、对一般纳税人的税负影响 改征增值税后一般纳税人有原本缴纳5%营业税改为缴纳6%增值税,企业购进的固定资产和按照进项税额进行税收抵扣,购进企业营运设备,加大固体成本额等成为了一般纳税人税收筹划的最佳选择。增值税的计税对象由传统纳税的营业总额改成营业增值计税。这里的营业收入总额也是包括含税销售额的。具体税收计算方式为:销项税额=营业收入÷(1+6%)×6%进项税额=经济成本÷6%应纳增值税额=销项税额-进项税额例证分析:假设有家大型技术服务企业其年营业额假定为1000万元,并且单从营业销售额(不考虑企业固定资本的进项税额抵扣)来计算比较“营增改”前后该企业所承担税额的比率和企业营业总额。那么该企业在“营增改”前改年度的营业缴纳税额=1000×5%=50万元;附加税费(城建税7%、教育费3%)=50×(7%+3%)=5万元。所以该年度本企业的税收总额为50+5=55万元;营业总额=1000-55=945万元。改征增值税后本年度企业应缴纳的增值税=1000÷(1+6%)×6%=943.40×6%=56.60万元,由于这里的营业销售额包含税销售额,所以附加税可在所得税前抵扣。最终企业应纳税所得额=56.60×(7%+3%)=5.66万元,出去应缴纳的增值税和附加税后改企业的净营业额=943.40-5.66=937.74万元。通过数据分析发现:改征增值税后实际税流转率为0.66%,正是应为实际税率小于名义税率,即0.66%<(6%-5%)才能有效的保证企业利益。由此可见税负的下降取决于进项税额和年营业总额的比率大小。0.66%作为“营增改”后的实际流转税率成为衡量企业年缴纳税额比例的临界点。如果进项税额和营业总额的比率大于0.66%,那么该企业的税负就会降低,企业盈利指标也会随之提高。反之企业就有可能出现税负升高的情况。 四、软件技术服务行业“营增改”税收问题和措施 通过数据的计算分析可以知道当企业进项税额和营业税额的比率小于0.66%时企业的税负是呈现一个增长的趋势,就是说“营增改”政策也有可能加重部分行业的税负。软件开发服务行业就是“营增改”中税负不减反增的服务行业之一。由于营业税和增值税都是属于流转税,软件开发服务业固定资产相对不足、技术成本大都是人力知识成本,这是导致软件服务业税负增加的主要原因。在对上海服务行业的试点政策统计中发现,“营增改”后税负下降的服务业占比为90%,但其中有35.6%的企业反映“营增改”后税负水平升高或者基本不变。其中有形租赁业和公共运输业相比之下税负增长严重制约了其发展,上海政府积极出台了相关财政扶持政策。通过实行特别行业税收即征即退、先征后退或者建议征税的方式来缓解“营增改”税负的过渡期。“营增改”税负不减反增的反常现象并不是意外,这种税负变化是长期发展可持续、可控制的。增值税和营业税并存的双轨税制正处在发展探索阶段,“十二五”计划以来我为实现软件服务行业的健康发展,财政部和税务局制定实施了18号文和70号文,不断加强税收政策方面的优惠制度和扶持力度,在“企业据实申请、财政分类扶持、资金及时预拨”的影响下尽可能的减轻税负对软件服务业的影响。软件服务业也要积极响应国家政策和法规,及时务实的向国家反馈市场经济税负变化和影响,在国家的制度方针下考虑企业发展,寻求新的发展机遇。同时“营增改”中对服务行业的进项抵扣范围也应该适当的扩大,增强增值税抵扣链条的完整性和科学性。解决企业增值税务的正规发票是当下解决软件服务业税负问题的可行措施。 五、结语 “营增改”的实施降低了现代技术服务业的流转税负,进而提高经济企业的盈利能力,发展运营能力和资金流转能力。为实现经济和服务之间更加融洽的转型和升级提供政策上的助力。然我国服务行业中改收增值税的政策税务模式仍处于初级阶段,在实际过程中要注意规避风险,设计融资方式,进而探索出一条适用经济市场发展和服务行业高水准的税务税收多极化途径。 作者:苏辉 单位:北京洛斯达数字遥感技术有限公司 软件技术毕业论文:计算机软件技术不可靠性思考 [摘要]近些年来,我国的科学技术得到了迅速的发展,尤其是计算机技术的发展。随着我国计算机应用水平的不断提高,在计算机软件方面我国已经有了很大的优势,但是随着社会的不断发展,计算机软件技术也开始逐渐显现出其弊端。 [关键词]计算机技术;软件技术;不可靠性 1前言 计算机软件技术是一项比较先进的技术,随着当今社会的不断发展,越来越多的领域都开始对计算机软件技术加以利用,对于软件技术的利用给人们的生产生活带来了极大的便利,但同时,计算机软件技术也有着一定的不可靠性。 2计算机软件技术及其组成成分 所谓的计算机系统,是由硬件系统和软件系统两个方面的内容所组成的,其中,软件技术就是指的计算机程序、规则和方法的稳定记载及计算机上运行时所必须的数据。从计算机诞生至今,人们对于软件技术的研究主要包括了以下几个方面的内容,第一是计算机设计语言、编译技术和操作系统,第二是实用程序、数据库技术、软件工具及其实现技术等等。对于软件技术而言,它大致分为了数据处理、过程处理、科学计算和人工智能几个大类,所谓的软件技术,就是将现实中的问题通过建立相应模型的方法,然后再针对相应的模型进行分析并提出解决方案,最后再通过程序的编制来对问题加以解决,最终通过计算机来显示预期的处理结果。一个计算机系统离开了计算机软件技术是不完整的,因为计算机各种功能的实现都必须要依靠软件,而这些功能软件都是在软件技术的基础上创造出来的。 3计算机软件技术的特点 3.1高技术性 对于一个计算机软件而言,在其创作过程中,必然是存在一定的组织性和程序性的,因此进行软件设计时,工作人员的分工也是十分有序的,而且他们的操作都十分的精密。除此之外,在计算机软件的设计过程中,往往还需要运用到一些高科技的工具,通过对这些高科技工具的利用,一方面可以使得工作的效率和质量得到提高,另一方面,也充分地保证了其精度。计算机软件也是一种科技的产物,它是随着科技的发展才得以诞生的,也是人类智慧的结晶,所以说在开发的过程中,难度也是相对较大的,而且其开发成本往往也较高,开发的周期相对较长,因此有着高技术性。 3.2强大的功能性 计算机的运行是离不开计算机程序的,计算机程序的设计不同于文学创作等,计算机程序的开发是具有非常大的价值的,因此对其进行设计必然要使其完成一定的功能。所以说计算机软件主要是用来为人们提供服务的,人们可以通过对其功能的利用来实现人们的某些目的。所以说计算机软件技术是有着很强大的功能性的,如果人们不能够通过软件来实现自己的一些目的,那么软件的存在就是毫无意义的。计算机软件的功能性主要体现在三个方面,第一是计算机的可执行性,简而言之,就是说计算机软件必须是在计算机能够处理和执行的条件下,才是有价值的;第二是计算机软件的序列性,序列性主要是指的代码化的指令序列、符号化的指令序列和符号化的语言序列;第三是计算机软件的目的性,计算机软件在其运行过程中,都必然是围绕着某一个明确的目标来展开的。 3.3互相渗透性 计算机软件是一个整体,通过计算机软件,可以充分地对人类的思维进行模拟,同时,计算机软件也综合了多种技术,它不但具有与文字相似的表现形式,同时还有这很强的使用性,所以说计算机软件实现了这两者的统一。相比于计算机硬件系统而言,软件更加地能够体现出人们的智慧,正是由于计算机软件有着诸多的优势,所以使得计算机软件技术成功地渗透进了许多领域,任何领域都可以通过对自身需求的总结和对计算机软件技术的利用来设计出相应的软件,来帮助人们完成相应的任务,实现相应的目标,一方面大大地节省了人力和物力,另一方面,也使得工作效率得到了大大的提高。 4计算机软件技术不可靠性的定义 要定义计算机软件技术的不可靠性,我们可以通过对计算机软件技术可靠性的分析来实现。所谓的计算机软件的可靠性,指的是在规定的条件下和规定的时间内,软件可以对用户下达的指令加以完成。根据计算机软件可靠性的定义我们可以看出要对一款软件的可靠性进行衡量,主要应该依据两个方面的内容,第一是指定的时间,第二是指定的条件。但是在软件的实际应用过程中,往往会因为各方面的因素使得软件不能够在指定的时间内或者指定的条件下来完成相应的指令,这就是计算机软件的不可靠性。正是因为计算机软件技术存在一定的不可靠性,所以也就出现了市面上许多的软件往往在其说明书中对其实际功能有所夸大,在软件的实际运用过程中,并不能够完全按照说明书来实现相应的功能。 5计算机软件技术的不可靠性分析 5.1系统危险 所谓的系统危险,指的是有可能会导致人员伤亡或者设备财产遭受损失的现象。随着我国当前计算机技术的不断发展,软件在各行各业中的使用频率也越来越高,在各行各业中所扮演的角色也越来越重要,虽然软件的使用可以带来极大的便利,但是由于计算机软件技术尚还存在着一些不可靠性,所以有可能因为软件的问题而导致整个产业系统面临着一些风险,使得系统工作不能够正常的进行。 5.2安全性风险 计算机技术与信息技术有着密不可分的关系,二十一世纪是一个信息化的时代,随着信息技术的不断发展,在软件运行的过程中,网络的安全就显得越来越重要。计算机网络的意义就在于提供给用户以相应的服务和信息资源,虽然网络的使用给人们的工作和生活带来了极大的便利,但同时网络也在通过一些软件来对人们的生活和工作造成一些不必要的负面影响。所以说当前计算机软件技术的不可靠性还体现在安全风险方面,在对计算机软件进行设计的过程中,如果没有相应的网络安全防范机制,就很可能使得软件用户面临诸多的信息安全风险,给人们带来一些不必要的损失,所以安全风险也是计算机软件技术不可靠性的一个重要内容。 5.3程序容易被篡改 对于计算机技术而言,硬件技术主要是对硬件所使用的材料进行研究,而一般硬件出现不可靠情况的主要因素也是硬件的老化或者损耗,因此一般而言硬件的失效主要都是一些物理故障,它是物体物理变化的必然结果,而且硬件也会出现浴盆曲线现象;但软件则不同,在软件的开发和使用过程中,软件是不发生变化的,不会出现像硬件一样的磨损和老化,更没有浴盆曲线现象的产生。但是由于软件的核心是其代码,如果代码被人为地进行了改变,软件就不能够完成其相应的功能,或者在完成功能的同时会使得用户的信息遭到泄露。软件在遭到篡改之后,十分容易造成一些数据错误,从而使得软件失效。 5.4人为影响较大 其实计算机软件技术的可靠性与硬件技术的可靠性也有着一定程度上的相似。比如说二者都是通过复杂的函数来对其缺陷和故障标准进行定义的,而且也都是通过运行来对自身的不可靠性加以发现,计算机软件技术的可靠性和硬件技术的可靠性都是系统在固定的条件下完成预定功能的可能性。在软件的开发过程中,实质上就是将开发者的思维转换为计算机语言,然后再编译成相应的软件,这是一个思考和创作的过程。软件的开发是以用户的需求为出发点的,然后通过设计师对于需求的分析和设计,最终将其通过计算机技术来加以实现。而在对软件进行设计的每一个环节中,都离不开人的参与,人的思维对软件有着极大的影响。但是往往由于人类认知和知识水平的有限,所以说在软件的开发过程中,难免会出现一些遗忘和不合理的情况,所以说就使得设计出来的软件不能够完成预期的功能,进而使得计算机软件技术的不可靠性增大。正是由于对软件技术的利用过程离不开人的参与,所以也就使得软件技术在很大程度上都会受到人为因素的影响,使得计算机软件技术具有不可靠性。 5.5软件界面不合理 一个实用的软件除了能够在指定的时间内和指定的条件下完成用户的指令之外,还应该有着直观和舒适的操作界面,因为它关系着人们的工作效率,如果软件的界面设计不合理,那么其操作就会变得十分复杂,甚至于在短时间内用户还不能够对软件的功能有一个全面的了解,这就极大的影响了人们对于软件的使用,给用户的使用带来极大的不便,使得计算机软件技术的不可靠性增加。 6计算机软件不可靠性产生的原因 6.1软件差错 软件技术的可靠性主要就是指的软件在使用过程中的安全性、可靠性、稳定性和流畅性等等,如果软件在运行过程中缺乏了以上特性,就说明其具有不可靠性。软件技术之所以会产生不可靠性,主要就是因为软件中的差错引起了相应的软件故障,而所谓的软件差错,就是指的在软件的开发过程中,由于开发人员的疏忽所导致的人为错误。比如说对于用户需求分析的错误,软件设计者没有很好地理解用户的真正需求,因此所开发出的软件必然是不能够被用户正常使用的,因而就导致了不可靠性的产生。还有就是测试错误,在软件的测试阶段,往往也会因为测试对象选取的错误而导致软件差错,最终使得软件具有不可靠性。 6.2缺少相应的评审机制 为了使得软件能够更好地满足用户的需求,软件的开发工作必须是按照一定的顺序和流程来进行的,如果不按照相应的顺序和流程来开展工作,就很容易使得所设计出来的软件不能够满足用户的需求。因此在软件开发的各个阶段,都必须要按照一定的评审机制来对软件进行评审,从而保证软件开发是朝着正确的方向在前进。但是当前的软件开发往往是缺乏相应的评审机制的,许多的软件开发仅仅是在初步设计阶段和最后的测评阶段有相应的专家参与,而在开发过程中是没有相应的人员参与测评的,所以也就使得软件产生了不可靠性。 6.3软件质量监管不严 当前我国对于软件质量的监管还不是很严,所以就使得许多功能不完善的软件流入市场,许多软件生产商都是在软件被人们广泛使用后才逐步地对其软件所存在的问题进行修复。由于缺乏严格的质量监管体系,也使得软件技术的不可靠性得以存在。 7结语 计算机软件技术在我们的生活中发挥着越来越重要的作用,所以说我们必须要对计算机软件技术的可靠性引起足够的重视,尤其是当前我们正处在一个信息化的时代,信息的安全与否关系到每一个人,而当前人们对于软件的使用频率也越来越高,所以说必须加强各种软件的可靠性,避免计算机软件的不可靠性,使得计算机软件技术能够更好地服务于人类。 作者:杨云卿 单位:渤海大学软件与服务外包学院 软件技术毕业论文:嵌入式系统低功耗软件技术分析 摘要:嵌入式系统分析的时候,最重要和最关键的就是功耗问题,想要保证有效降低功耗,应该从系统角度来分析嵌入式系统问题,低功耗嵌入式系统不但需要硬件设备的保证,也需要系统软件技术的支持,合理优化配合系统软件和硬件技术,才能达到真正降低嵌入式系统功耗的目的,本文主要分析了嵌入式系统低功耗软件技术。 关键词:嵌入式系统;低功耗;软件技术 一、嵌入式系统功耗问题概述 目前,不断发展计算机技术,开始广泛应用嵌入式系统,越来越高要求系统功耗问题。在嵌入式系统中应用电池供电的便携设备,因为是有限的电池存储量,不能持续为设备提供电量。一般来说,为了能够具备比较高性能,需要合理安置高性能CPU,依据实际运行规范,适当提高外围设备数量,会降低系统功耗,衡量嵌入式系统性能的关键就是低耗能,为了能够具备最平衡的高耗能和高性能需求,在符合系统实际运行性能要求基础上,尽可能降低系统耗能,从而确保可以长期运行系统,从软件和硬件两方面分析系统节能问题[1]。 二、嵌入式系统低功耗软件技术设计 (一)应用软件编写的节能设计。 第一,中断替代系统中查询。系统简单应用中,不管应用哪种程序方式都不会出现很大差异,差别大的就是消耗功率。中断方式处理系统中,中央处理器可以不做任何事,或者能够直接进入到等待或停止模式;如果是查询形式,需要中央处理器不断访问I/O寄存器,出现额外功率。第二,代替子程序。设计人员都知道,相比较读RAM来说,读Flash消耗功耗比较小,因此,在设计CPU的时候,RAM会展现低功耗性能,但是仅仅只能一次调用子程序,子程序进入到CPU以后,会暂时存储中央处理器寄存器,离开系统的时候,CPU会弹出寄存器,此时至少需多次操作RAM,因此,设计人员在设计程序系统的时候,利用宏来代替子程序来。设计中是在子程序、还是宏上调用系统没有很大区别,但是编译的时候会依据中央处理器进行实施,避免调用子程序,但是最重要的就是增加代码数量,上述方式可以适当降低系统功耗[2]。 (二)应用程序编译的节能设计。 第一,降低冗余代码。处理器处理系统时候消耗30%能量就是cache消耗的能量,此外,如果不能命中cache的时候,会交换内容,所以,外部总线被驱动的过程中会增加能量,编译程序的时候适当降低冗余代码,会极大程度降低cache活动,以便于达到降低系统功耗的目的。第二,优化I/O功耗技术。系统中比重中,驱动I/O端口需要的能量在整个系统中具备极大比重,因此,为了能够降低系统耗能量,应该适当降低应用驱动I/O端口次数,也就是依据编码设计技术来不断降低和压缩I/O数据,从而达到降低I/O频率的目的。优化和分析应用程序存储局部性访问性能和交换总线地址活动性质的时候合理应用编译器,从而达到编译编码的目的,此外,还需要系统硬件具备一定解码作用。在分析系统程序的过程中,不断优化局部高频数据性能,从而降低操作访问系统频率和次数,不仅可以降低系统功耗,还能为系统运行提供能量。 (三)硬件低功耗节能技术。 第一,DPM。动态管电源管理(DynamicPowerManagement)可以依据嵌入式系统实际运行情况来适当关闭不需要的系统设备,如,硬盘或者显示器等,第二,依据系统运行实际负载来合理调整总线频率和中央处理器波率。目前,已经具备完全智能化的管理动态电源方式,在没有人为原因接入和干扰的前提下,能够快速转换系统运行速度,一般每秒能够实施几百次,从而能够达到节能的作用。第三,APM。高级电源管理(advancedPowerManagement)主要就是用来为系统提供BISO管理电源机制,在开发系统的时候适当把硬件编程接口加入BISO中,能够成为沟通操作系统和主办的重要枢纽,建立APM-BISO,上述方式能够依据实际情况来有效合理调整系统自身硬件耗能[3]。 结语 总之,由于不断发展微电子技术,嵌入式系统开发中低耗能成为重要问题,从应用程序编译的节能设计、硬件低功耗节能技术、应用软件编写的节能设计三方面分析优化系统功耗问题,尽可能降低系统功耗。 作者:付强 单位:北京信息职业技术学院 软件技术毕业论文:嵌入式软件技术的现状与发展 摘要:本文主要就嵌入式软件技术特征和发展现状进行分析,然后结合实际对嵌入式软件技术的发展方向进行探究。 关键词:嵌入式软件技术;特征;现状 一、嵌入式软件技术特征概述 嵌入式软件主要是针对嵌入式系统来说的,而这一系统也称为是以应用为中心,对于这方面的系统主要涵盖着外围硬件设备以及嵌入式微处理器和嵌入式操作系统、应用软件系统几个部分。嵌入式的软件主要是在一定技术下把操作系统以及其他开发软件嵌入到硬件中,从生产过程层面来看主要就是先实施芯片开发,然后对嵌入式系统软件加强设计,最后再进行嵌入式电子设备制造当中,而在嵌入式系统方面主要是独立运行的计算机系统[1]。在嵌入式的软件系统方面主要是强调着以应用作为基础,然后对软硬件的协调比较重视,在这一基础上才能够将预定的计划得以完成。从嵌入式软件技术自身的主要特征层面来看,在实用性以及灵活性上有着显著呈现。灵活性特征是因为这一软件技术能够随时性的开发,由于软件的小巧所以能比较方便的嵌入到计算机系统中,对其功能不会造成相应影响。 二、嵌入式软件技术现状分析 从当前我国嵌入式软件技术的发展过程来看,在当前还有着诸多挑战,这就需要这一技术能够结合多方面的发展需求进行创新改变。当前我国的科学技术发展的速度比较迅速,在嵌入式这一软件方面已经有了广泛应用,对人们的工作生活以及学习等都提供了方便[2]。网络技术下嵌入式软件的自身优越功能以及在操作系统作用下,能够为小型电子设备的低成本以及小型化目标的人机界面交流提供了技术层面的支持。在对嵌入式软件技术的应用层面主要是在软件应用和系统开发层面有着重要体现。从嵌入式软件的应用领域来看,在通信工程以及消费电子和工业生产等方面都有着广泛应用。通信工程方面主要是智能手机以及全球定位系统等;在消费电子方面则主要是数字电视以及数码相机、家庭网关等层面;在工业生产方面则主要是数控机床以及制造工厂等层面。除此之外在金融交易以及医疗卫生和交通运输等方面也有着比较广泛的应用。 三、嵌入式软件技术发展态势思考 3.1无线网。 嵌入式软件技术的广泛应用也说明在作用发挥层面比较显著,为能够对国际市场竞争态势有效应对,就需要对嵌入式软件技术进行升级。其中在无线网的操作系统发展上已经逐渐得到了应用,在以后的发展过程中,移动通信网络能够在丰富的多媒体数据业务上进行提供,并且在支持功能上和更多的移动终端设备上也比较突出。为能够将第三代移动通信系统优势得到有效发挥,在无线网的操作系统开发研究上就加大的力度[3]。在嵌入式设备的不断发展以及网络发展需求的加大下,无线网的技术应用就会成为嵌入式软件的重要发展方向,当前的EPOC就是比较稳定的无线操作系统,其主要是通过C++进行编写的,然后应用全面向对象设计方法对低端智能电话到全功能个人通信器要求能得到有效满足。 3.2人工智能。 由于嵌入式软件技术的开发应用主要是对人们实际需求满足而存在,所以这就需要根据人们的需求变化及时地进行升级改造,将服务性这一特征充分体现。在人工智能的技术下就能够对实际的需求得到有效满足,在和嵌入式软件技术得到有效结合下,能实现人机交互这一目标,并能够最大范围地将嵌入式软件技术得以应用。在医疗卫生领域中的人工智能技术和嵌入式软件技术的结合应用相对比较突出,在具体应用过程中就能有效减小对你患者的伤害。人工智能技术的应用在今后将会成为必然发展趋势,例如在生活中的智能仪表以及自动控温等仪器都是人工智能技术的呈现。 3.3网络互连。 为能够将嵌入式软件技术分布处理结构对上网的需求得到满足,就需要配备标准的多网络通信接口,新一代的嵌入式设备也需提供相应通信组网协议软件以及物理层驱动软件。从以往的单片机技术的情况来看,对当前的实际需求已经不能有效满足,而在新一代嵌入式软件层面的发展就很好解决了这一问题。嵌入式处理器能够在内嵌网络接口上对TCP/IP协议有效支持,同时在USB等通信接口方面也能够支持,在新的嵌入式技术方面对通信网的协议和物理驱动软件都能够具备就能方便的上网,同时也能有效满足诸多移动用户设备的上网需求。随着我国的网络技术的进一步发展,对嵌入式软件技术的优化也会使得人们的工作生活等方面更加的方便。 四、结语 综上所述,随着当前我国科学技术的发展,一些比较先进的技术在实际生活中已经得到了广泛应用,其中在嵌入式的软件技术发展方面,这是PC时期计算机最为普遍的应用形式。在迅速发展的信息化时代,单纯的计算机机器对人们的生活以及工作需求得不到满足,所以采用嵌入式软件技术和系统就能从很大程度上满足实际的应用需求。 作者:高立军 单位:北京信息职业技术学院 软件技术毕业论文:计算机支持的协同工作软件技术探究 【摘要】 所谓计算机支持的协同工作软件,就是利用网络环境以及先进的计算机技术为人们创造出一种协同工作环境,在这一工作环境下,人们可以开展深度合作,共同研发某个新产品或者是开发某个新项目,有效提升工作效率,本文对计算机支持的协同工作软件进行概述,并分析了计算机支持的协同工作软件技术。 【关键词】计算机支持 协同工作软件技术 研究 1前言 随着社会经济的发展,人们的生活、工作脚步不断加快,开展任何工作时都讲求效率,在这种形式下,计算机支持的协同工作软件应运而生,该技术的应用能够加强各个部门以及工作人员的之间的联系,形成一种协同的工作环境,为工作伙伴之间的交流合作合作提供支持,对于提升工作质量和效率具有重要意义。 2计算机支持的协同工作软件概述 首先,该软件具有灵活性的特征,可以根据实际需要随之增加或者减少参与者,软件整个结构表现出较高的灵活性,产品研发过程或者是项目开发过程的每个环节都以动态化的方式进行,设备的使用、任务的调整以及成员之间的相互协调都是一个动态过程;其次,该软件具有交互性的特征,就是说系统并不支持一个人使用群件,群体内所有成员必须进行交互;第三是具有异时性的特征,群内成员进行交互操作的方式有两种,一种是同步方式,另一种是异步方式,同步方式很好理解,就是进行交互的成员同时在场,实时沟通,而异步操作则不要求进行交互的成员同时在场,只需要在规定的时间段内即可,因此这种方式的灵活性较高,尤其是协调国际群体时表现出独特优势[1]。 3计算机支持的协同工作软件技术研究 3.1技术层次划分 将协同软件按技术层次划分主要有以下几点:首先是群组通信,通信方式由原来的一点到一点向着多点到多点的方向转变,就是可以将一台或者几台计算机中的数据同时传输到协同环境中的所有计算机中,这种方式提升了数据传输效率,实现群组内信息共享;其次是分布式对象技术,计算机集合体是构成该系统的基础,这些计算机共享网络资源,同时计算机与计算机使用者相互协作,为实现某个目标共同工作。分布式对象技术能够同时面对多层客户端,在客户端以及服务器的中间产生了中间层,在这种软件体系中,客户端可以从系统中分离出来,系统的扩展性大大提升,可以根据实际需要灵活伸缩,能够实现对整个工作过程的集中控制。系统可以为所有对象提供服务,各个对象之间也可以相互提供、享受服务,也就是说所有的对象都有两个身份,一个身份是用户,另一个身份是服务者,与原有的体系结构相比,这种结构具有更高的灵活性,所有对象之间能够实现透明访问,提升信息的利用率[2]。第三是面向服务,随着信息技术的发展,各个企业计算机应用系统的界限越来越模糊,协同软件的功能不再局限于公文管理层面,还包括对工作人员、财务以及业务流程等多方面的管理,这就要求协同软件能够与企业的管理系统有效融合起来,形成一种面向服务的体系结构,该结构属于一种组件模型,它能够实现各个服务之间的无缝对接,使用统一的方式进行交互,SOA就与该组件的思想一样,用户可以根据自己的需要调用其中的程序,建立属于自己的软件应用功能,满足协同软件管理的需要。 3.2协同方式分析 计算支持的系统软件中的重点技术就是协同方式,我们可以根据群组成员之间的协作程度将协同方式划分为以下几种:首先是角色协同,这种协同方式主要涉及到两个技术要点,其一是要为所有协作成员之间建立协作场景,每个成员都可以与场景进行信息交换,各个写作成员之间也可以直接进行信息交换,我们将其称之为群体感知技术;其次是要对所有成员的协作行为进行控制,除了加入和退出行为以外,还要消解冲突,我们将其称之为协作控制技术,上下文技术的兴起就为这两项技术提供了支持,将所有感知到的信息建模并分析,形成一种更加完整的感知环境。其次是信息协同,开展协同共组时,人们需要传递并分享自己掌握的信息,这些信息的格式各异,因此就需要系统能够共享不同数据源的信息,避免出现信息孤岛现象,比较常用的就是扩展标记语言技术,传递信息的过程中要使用统一的语言标准,同时可以对数据进行处理和显示,因此技术性程序也完全可以应用,由于该技术的基础是文字,因此即使是非技术性人员也很容易就能理解其中内含。最后是流程协同,就是强调业务流程的协同性,整个过程要依赖计算机系统,系统会自动记录流程中的每个任务,并根据任务的内容和难易程度做出自动协调,主要是应用工作流技术,目前该项技术仍旧处于进一步发展之中,一方面,工作流技术将不断扩大应用范围,将更广泛的发挥自身的协调功用;另一方面,工作流技术将不断改善自身缺陷,以更加灵活的方式为人们解决现实问题[3]。最后是计算协同,数据计算也是协同工作软件中的重要技术,它能够帮助人们的在短时间内完成复杂的计算,得到精确的计算结果,为数据的应用奠定基础。实际上到目前为止对于网络计算并没有一个统一的定义,其本质是将网络中的虚拟化资源联系起来,从而加快程序的应用速度,分布式计算是计算协同的核心,所有用户可以将整个网络结构当做一个巨型计算机,享受计算协同服务,该技术具备很强的数据处理能力,同时能够有效利用网络中的闲置处理能力,进一步加快处理速度。 4结语 协同软件为人们开展协同工作提供了技术上的支持,该技术将网络环境作为基础,可以建设出一种协同工作环境,促进工作之间的交流和合作,人们可以向协同环境中获取自己需要的信息,同时也可以将自己掌握的信息分享在协同环境中,提升信息的使用效率,进而提升工作质量。 作者:何松林 单位:浙江理工大学 软件技术毕业论文:软件技术实践教学质量研究 【摘要】 高素质、高质量的专业人才,对社会企业快速发展起着决定性作用。高校软件技术的专业实践教学尤为重要。高质量的实践教学才能培养出高质量的软件技术人才。如何拥有好的高质量的实践教学效果,是目前最困扰高校软件专业教师的问题。在软件技术实践教学中,教师自身素质的高低,教师专业技能的高低,教师课堂的把控能力以及教师运用教学方法的能力,都决定实践课堂的教学质量。 【关键字】软件技术;实践教学;教学质量;教学方法 0引言 未来的经济繁荣、社会和谐都有赖于人们的良好教育。高素质、高质量的专业人才的培养,对社会的发展起着决定性作用,没有专业技术性人才的支撑,社会的发展就会停滞不前,所以专业技术性人才在整个社会体系中显得尤为重要。高校实行的是专业性很强的高等教育,高等教育是大学、文理学院、理工学院和师范学院等机构所提供的各种类型的教育,包括专修科教育、本科教育和研究生教育。也就是说,高等教育,培养出来的是专业方向很强的高等技术性人才。目前,我国受到社会对高等教育强烈需求的影响和高等教育改革潮流的有力驱动,高等教育已非常清晰的展现在人们面前,那么人们对高等教育的教学效果和教学质量就尤为关注。对于软件技术专业,要培养出能适应社会,能满足社会的软件专业人才,高质量的实践教学是重要的途径。高校软件技术专业之间的竞争也愈加激烈,对于软件技术专业,提高专业技能的教学,提高教师的教学能力,提高课堂教学和实践教学的质量,是专业发展的重中之重。在这种优胜劣汰的形势下,如何推进软件专业教学改革,提高专业教育的质量,更好的为社会服务,是该专业亟需解决的问题。实践教学的质量起着关键性作用。 1软件技术专业教师自身的责任心和耐心 教师既是知识种子的传播者,又是文明之树的培育者,是年轻一代健康成长的引路人和光辉典范。教师在工作中需要足够的耐心和责任心。教师的责任心和耐心是体现平凡而严谨的教学生活中的,一个人要干好自己的本职工作,就要有高度的责任感,教师的责任心不是表现给别人看的,而是让自己无愧于教师身份的!教师作为“人类灵魂的工程师”,不仅要教好书,还要育好人,各个方面都要为人师表。教师的责任心和耐心是构成对学生影响的最现实的因素之一,它不仅影响着学生学习状况及其效果,而且影响着学生人格等心理品质的形成和心理健康的发展水平。因此,教师要胜任教育工作首先自身应具备良好的职业责任心和耐心,其中包括“爱岗、敬业、严谨、奉献”,要有个人的职业操守。“教书育人”首先要“育己”,只有自身成为一个道德高尚、有着美好情操、真正从感情上关心学生的老师,才能赢得师生的尊重,才能胜任教书育人的工作。责任心和耐心是教师品德的核心。责任心和耐心对任何人来说都是不可推卸的,对教师的尤为重要。然而,教师对于自己所承担的责任意识和自觉的程度是不同的,在对待教学和学生,有的教师忠于职守、尽职尽责,有的教师却消极怠工、得过且过,这其中就反映出了教师的工作责任心的强弱。很显然,教师养成了高度的责任心和耐心,对学校,对同事,对学生都是非常有利的。责任心和耐心的强弱,能够反映一个教师的品德优劣,也能反映一个教室是否高尚的人格。 2软件技术专业教师自身专业知识和实践能力 教师不仅应是“传道、授业、解惑”的严师,而且更应是拓展心灵智慧的人师。教师除了具有很高的责任心和耐心,还应该提高自身的知识结构与专业素质,要有丰厚的专业知识和专业能力。高校教师,不仅要求对自己所教学科的专业知识有深入透彻的了解,还要了解学科的知识架构体系、发展方向,还应该知道学科专业知识在社会企业的应用实践和扩展引用,以及如何将这些信息传递给学生。这就要求软件技术专业实践教师在专业领域的学习要持续不断、日积月累。 2.1实践指导教师要加强自身学习,潜心于教学,积极进行教育教学研究,不懈地追求新知识和教学的新境界。 面对新课程,面对新专业知识,要不畏缩的去探究和学习,将自己对知识的理解进行转化,转化成如何能让学生轻松的接受并掌握应用的信息。“三人行,必有我师。”多向其他教师请教和沟通。 2.2实践指导教师在教学过程中,逻辑思维要清晰,对所教授的知识的结构体系要熟悉和准确,讲解要简练、通俗和生动,有启发性和感染力。 所以教师讲解语言表达能力,是教师教学的最重要的基本功。如果表达不善,即使自身对专业知识非常的熟知,逻辑思维再强,也很难教好学生,让学生很好的掌握知识。对专业知识要足够的准确,不能含糊,模棱两可。在实践教学中,对学生在实践中遇到的问题,要有足够的耐心去讲解,让学生真正做到学以致用。 2.3实践指导加强沟通,注重教学效果,灵活应用教学技巧和教学方法。 教学的目的在于取得良好的教学效果,而教学效果评价的主体是学生。教学方法是实现教学目的和完成教学任务的手段,不同的教学目的和任务,要求运用不同的教学方法。任何教学方法都是为一定的教学目的和任务服务的。教师必须注意选用与教学目的和任务相适应并能实现教学目的和任务的教学方法。教学目的和任务是通过教学内容来实现的,教学内容的性质和特点不同,就应选用不同的教学方法。只有选用的教学方法与教学内容的性质和特点相符合,才能使教学内容发挥出更大的效益。否则只会适得其反。教学对象的年龄、性别、经历、气质、性格、思维类型、审美情趣等的不同,也对教学方法提出不同的要求。只有选用与此相适应的教学方法,才能真正有效地提高教学对象的知识能力和思想水平,促进其健康向上的发展。教师自身的素养条件和驾驭能力,直接关系到选用的教学方法能否发挥其应有的作用。教师应对自身素养及所具备的条件实事求是地进行分析,根据其特点和条件选用恰当的教学方法,以扬长避短。哪怕别人行之有效的方法,也不可盲目照搬,这样才能确保教学方法运用自如。每种教学方法都具有不同的特点与功能,教师应认清各种教学方法的优缺点,把握其适应性和局限性,或有所侧重地使用,或进行优化组合,不可盲目地选用教学方法。教学方法的选择与使用,体现着教师的智慧,标志着其教学艺术水平的高低。 3实践教学指导教师课堂组织管理能力 课堂组织管理能力是指教师对课堂教学中各种要素进行调控,使教学得以顺利进行的能力。而教师要想对课堂教学进行有效的组织与管理,就必须有按照教学设计实施教学方案的能力,有序实施、营造课堂学习气氛、调动学生积极参与教学和控制课堂教学的节奏。课堂教学是一个双向活动过程,应营造一个宽松和谐、兴趣盎然的学习氛围。教与学必须有一个和谐课堂步骤,形成一个完整的教学步骤来实施素质教育,使学生学得积极主动,真正成为课堂学习的主人。达到有效教学,创设情境,形成问题,使学生愿学。情境的创设关键在于情,以情激境,以最好的境、最浓的情导入新课,形成问题。要完全的掌控课堂,教师要认真研究教材,吃透教材是教师进行有效课堂教学的立足点。除了教学的重点,难点的把握,教师还应该考虑到教材的重组与知识的延伸;仔细推敲教学方法,多种教学方法灵活综合应用;有针对性的设计课堂教学案列和实践练习。教师在整个教学过程中,时刻做好学生学习活动的组织者、合作者、引导者和鼓励者。 4结束语 高质量的实践课堂教学是有效的。有效的实践教学是建立在教师高度的责任心和耐心上的;有效的实践教学应引导学生积极、主动地参与;有效的实践教学应使教师与学生、学生与学生之间保持有效的互动;有效的实践教学应该使学习者形成对知识的真正理解。教师要时刻提高自己的责任心和耐心,保持对教育工作的严谨态度,真正把教育教学工作当作事业,而非职业。教师要有用自己丰富知识和智慧去完成自身所肩负的使命的责任感和完成使命后的成就感、自豪感。只有这样,高质量的实践教学才有质量,培养出来的学生才能掌握专业技能而为社会所需要。 作者:郑蕾 单位:广西国际商务职业技术学院 信息工程系 软件技术毕业论文:传感器原理与计算机软件技术结合 摘要: 计算机技术在飞速发展,计算机软件也随之被广泛的应用。软件技术比硬件技术有着更大的发展空间,并且还有广泛的发展领域。人们最为重视的是应用软件技术,现在非常流行的硬件技术是传感器技术,而其经过计算机软件的开发和结合,使传感器的功能有了进一步的发展和优化。基于此,重点对传感器原理与计算机技术的结合进行了分析。 关键词:传感器;计算机软件;应用范围 现在物联网正在快速的发展,物联网中一项较为重要的技术就为传感技术,有效的对传感器原理进行应用可以制作出多种感知世界的物品,并将自然界中存在的终端转变成物联网的客户端点。有效的对传感技术进行应用可以准确识别物品,之后再经过计算机技术互联网对物品进行信息采集,使物联网中的数据管理系统得以构建。本文依次介绍了传感器的原理和实际的应用,之后通过计算机对传感器的编程进行了分析。 1传感器概述 1.1传感器概念 传感器与我们的感官非常类似,通过感觉器官对外界的一切信息进行有效感知,然后将这部分信息按照相关规定协议对其进行修改,从而将其转变成能够有效使用的信号装置。并且将现阶段使用的模拟信号转换成电子信号,这就是我们说的模数变换过程。一般由感官和信号交换两部分组成,其中感官就是传感器的末梢,还有一类是将这两部分进行结合起来的。 1.2传感器分类 传感器可以应用到所有工业产业及相应电子产品开发中,按照传感器的工作原理对其进行相应的分离。例如,按照物理工作原理可分为光学传感器、力学传感器及声学传感器等。而按照化学反应可将其划分为化学传感器;依据感应功能进行区分,可以分为基于酶、抗体、激素等和生物类相关的传感器;而按照传感器的相关使用功能进行划分,可以分为热敏、光敏、气敏、力敏、磁敏、湿敏、声敏、放射线、色敏和味敏等十大类元件传感器。 2传感器应用 随着信息化时代的到来,使半导体技术得到迅猛发展,将先进的信息和科学技术灌输到传统的工业生产中,使其具有新的活力和生机。而使用半导体技术能够有效地使各类型传感器进行单独工作,成为一个独立的个体,并且对其周围环境参数进行相应的检测,在很多领域,自动化系统都得到了广泛的使用。例如,在煤矿生产的控制系统中,使用传感器对矿井周围的环境中气体参数进行监测,能够在一定程度上对煤矿安全生产做出保障。 2.1传感器中计算机技术的应用 计算机软件水平促进科技发展得到有效提升,并被应用到很多方面中,计算机软件技术包括软件开发及嵌入式软件开发,而软件开发中也包含了对处理器单片机及相应程序。软件开发结合实际应用才能发挥其意义,用户结合实际需要开发出的计算机程序有更高的工作效率,可以让人们顺利进行生活。有效把传感器原理结合到计算机技术当中,就可以通过单片机的应用来对传感器进行读写,以往使用的传感原件就是利用热敏电阻感应来降低热敏电阻值,然而在后续环节中需要对信号进行相应的处理,而热敏电阻不具有良好的稳定性,不能对温度的变化进行准确的测量,对整个系统的精度也不能进行有效检测。 2.2传感器应用范围 如今我们身边无处没有传感器,常见例子就是温度计。温度计可以用来感知人体的温度,在温度上升到与人体温度相同时就不再变化。我们人体的温度可以通过温度传感器感受,当温度达到一定的时间后将不再发生变化,电子温度计将对这时的温度进行显示并且语音提示。把传感器应用到汽车运行中将会有很大的作用。在发动机上应用温度传感器,不但可以显示当前温度,汽车的中心控制还可以接收传来的温度信息,对喷油量进行控制;排气前段有氧传感器,汽车废气中的氧气分数信息可以通过传感器感知,中心控制接受信息后调节发动机,让发动机正常运作,并在利用率得到最大发挥的基础上控制尾气排放;流量传感器能够将一些流量信息传输到中心控制器中,再由中心控制器把其转变成最恰当的压力和流量状态。 3计算机技术编写传感器技术 温度测量是较为常见的应用。具体生产工艺过程中对温度控制的要求非常的高,如电子产品。计算机在应用CPU进行温度监测时,当温度不在规定的范围时将会及时发出报警信号,在生产工艺中对温度控制有严格的要求,很多电子产品有较高的温度环境要求,器件在正常工作中也要有适合的温度,如计算机对CPU有检测温度的功能,当温度超出规定范围时就会报警,23℃~25℃是一般机房所要求的环境温度。机器中的马达控制器在温度方面也有要求。通常情况下温度传感器都会被当作成计算机软件的参数控制计算机的程序流向,在工业上有着很大意义。LM75是美国国家半导体元件公司生产的,有广泛的应用,其芯片由温度感应、模数变换和通信接口三部分构成。针对将温度值在数码管理上显示的问题,笔者应用C语言编程进行了相应的举例,代码如下://主程序:逐一获取温度Voidmain(){intt;SysInit();for(;;){t=LM75A_GetTemp();DispClear();DispTemp(t);Delay(1000);}}通过LM75传感器进行编程,可以在温度升高时发出报警,而MCU则是根据自己获取到的信息来对报警范围进行设置,在温度超出设计范围之后就会发出报警提示。 4结语 传感器技术是高新技术,所有国家都关注其发展。传感器在网络技术过程中表现出了巨大作用,为了让传感器技术有更广泛的适应范围,应该从多方面进行创造。应用传感器技术可以使感知能力比感官能力更高,所以,我们生活当中经常会发现传感器技术的存在,其成为环境检测、普及物联网和自动化工业中的一员。本文对传感器原理进行了相关介绍,而且还进行了传感器的编程举例,把传感器原理和计算机软件技术进行了有效的结合。 作者:薛军 单位:常州机电职业技术学院 软件技术毕业论文:计算机软件技术不可靠性探析 随经济的迅猛发展,计算机技术发展也越来越快,特别是计算机软件技术,发展的势头愈发强劲。计算机软件技术具有操作方便、适用范围广、灵活性强等优势,越来越受到人们的喜爱。但近年来人们逐渐认识到计算机软件技术的安全性问题,业内人员注意到了计算机软件技术的不可靠性,下面就简单介绍其不可靠性以及一些简单的解决方法。 1计算机软件技术概述 计算机软件技术涉及到的内容较多,但通常我们将计算机程序、方法以及计算机运行时所需的各种数据统称为计算机软件技术。如上所述,计算机软件技术一种较为先进的技术,对于当今世界的发展具有重要意义,同时又因其具有操作便捷、运行速度快、适用范围广等特点而备受现代人们的喜爱。计算机软件技术分类的方法较多,但我们常将其分为科学计算、数据处理、过程控制以及人工智能等几个部分。计算机软件技术是计算机实现其功能目标的保障,如果没有计算机软件技术,那么计算机就和普通的机器没有区别。如今是一个技术发展迅速的时代,在这种环境背景下要想充分发挥计算机软件技术的优势,就应加大对计算机软件技术专业人才的培养力度,提高计算机软件技术人员接受新知识、新技术的能力。 2计算机软件技术的不可靠分析 随着社会科学技术水平的不断发展,计算机软件技术也取得了较大的发展和进步,但是在其发展进步中,难免会存在一些不可靠性表现,下面具体分析一下其不可靠性。 2.1计算机软件的可靠性定义 近年来,计算机软件技术取得了较大的发展,同时我国的信息化建设工作也逐渐趋于正规化和规范化,软件产业成为促进我国经济和科学技术水平快速发展和进步的支柱型产业。在学术界,将计算机软件的可靠性定义为能对软件性能、工作效率等内容进行详细描述和评价的标准。即我们所说的,在一定的环境下、一定的时间范围内,使用计算机软件而不会引发系统故障的概率。随着计算机软件技术的推广,如何确保计算机软件的可靠性成为人们关注的重点问题。根据计算机软件技术的特点,我们发现要想提高计算机软件技术的可靠性主要还是应该做好软件开发工作。 2.2计算机软件技术的不可靠性表现 我国软件技术发展一直备受关注,也制定了许多相关政策对其发展给予一些必要指导和帮助。因此我国软件技术与产业在近年来发展势头良好,进步较为稳定,但是与全球软件行业发展的程度来看,我国计算机软件的发展依旧存在诸多问题。 (1)计算机软件技术与计算机硬件技术不同,计算机硬件技术问题的产生主要是因为硬件材料的性能决定的。计算机硬件技术的科研重点就是解决硬件材料问题,从而增加硬件的使用寿命;计算机软件技术不存在磨损问题,也不存在使用寿命问题,计算机软件技术的问题主要是软件程序的稳定性问题。在使用计算机软件技术时最常出现的问题就是软件程序问题,程序一旦出现问题,如果处理不当就会使软件失效。而软件技术工程师在开发软件时很难预测到软件程序会出现问题,这就增加了软件技术开发的难度; (2)软硬件技术的可靠性一定程度上存在很大的相似性与互通性。两者同样运用复杂的函数作为定义缺陷和故障的标准。但计算机软件和硬件技术还是存在很大的差别性。软件技术开发过程是一个“思考创作”的过程,主要是以用户的需求为基准,通过建模、编程等步骤解决用户的问题。这一过程,主要是人的思维能力和创新能力的一种体现。但由于是人的思维过程,一定会存在思考不到位的情况,致使计算机软件技术存在漏洞和不合理性。这些漏洞和问题有的可以在软件测试阶段被检测出来,有的却难以被发现,只能等到用户使用过程中才会被发现,而一旦出现了这些问题就会造成软件失效或崩溃; (3)计算机软件与计算机硬件在技术维修方面存在差异,计算机硬件的故障主要集中在硬件系统方面,这些故障往往都是属于可维修的故障,有解决问题的方法。但计算机软件系统一旦受到破坏就很难维修,一般只有通过重新设计软件才能解决问题。 3解决计算机软件不可靠性的对策 针对上文介绍的计算机软件技术不可靠性的表现,下文将具体介绍一些解决对策,以解决计算机软件的不可靠性。 3.1减少软件出错 当软件出现差错时,引起软件故障,降低了软件可靠性,而致使软件出错的主要原因是人的原因。因此,在软件开发过程中应做到下述几点。第一,要确保软件开发人员的专业素养水平;第二,对于语法错误等技术性问题必须严格注意。此外,当计算和计划错误的时候,软件开发人员要进行认真的思考,直到最后版本等内容完全一致,还要学会分析工程的实际情况,做好材料的选择。 3.2注意软件的评审工作 计算机软件开发中,工作人员并未参与其各阶段的评审工作,因此有时会产生各种各样的问题,为了各阶段都符合相关要求,避免跨越阶段现象的出现,要在软件开发的各个阶段组织测评工作,确保软件开发的准确性。评审人员要包括设计师、管理者等全体人员,保证专家评审的质量,这对提高工作质量有很大帮助。对评审组来说,主要工作就是对设计师提交的软件文档是否符合要求进行审核,通过专业人士的管理,对计算机硬件进行更好的维护,保证计算机软件的更深层次发展。 4总结 随着计算机软件的迅猛发展,对其可靠性有了更高的要求,我国计算机软件产业有了长久且稳定的发展,但是仍然存在一些不可靠性问题,为了更好的解决计算机软件技术不可靠的问题,需要各个方面的不停努力,不断在研究中发展进步,从实践中总结经验,吸取教训,获得更多技巧与经验,保证计算机软件技术可靠性的提升,促进计算机软件技术的更好发展。 作者:张军猛 软件技术毕业论文:气象信息计算机软件技术的运用 1气象业务的现状和特征 随着国家对气象工作越来越重视,气象服务覆盖面不断扩大,服务领域不断拓宽,专业气象服务的针对性逐步增强,重大气象灾害预警应急管理得到各级政府和社会各界的充分肯定。现在也建立了完整的预报预测业务,形成了比较完整的数值预报预测业务。数值预报预测能力逐步提高,初步建立了灾害性天气临近预报业务,建立了基于人机交互处理平台MICAPS。综合气象观测和技术支撑能力进一步增强,基本建成地基、天基和空基相结合的观测系统。形成了以气象通信网络、高性能计算机、卫星数据海量存储和卫星数据广播为代表的实时气象信息系统,资料获取能力、处理能力和传输时效显著提高。初步建立了气象技术装备保障体系和“两级管理、三级保障”的业务体系,技术装备保障能力逐步提高。气象业务有以下特点,第一,气象业务容量大种类多,这就需要应用计算机技术来整合。第二,气象业务要求可靠性强时效高时间及时性,在计算机技术的帮助下气象业务能明显提高准确性和时效性。第三,由于气象业务面向大众和科研,各类用户需要给全社会单位,很多施工单位和实验单位需要通过气象业务的预报服务产品才能满足需求正常运转,所以气象业务需要非常强大的开放性系统来支持,这样才能迅速而准确的运作。 2气象业务应用计算机软件的必要性 由于气象业务所要处理的数据特别多,而且对于数据的反馈要求非常及时,同时又要求数据的精确度要很高、信息传递和的范围都要很广,同时能满足这些条件的就只有先进的计算机软件技术。将计算机技术软件建立的服务平台运用到气象业务中来是十分必要的。 3气象业务应用计算机软件的方法和意义 在计算机软件技术发展迅速的今天,各种各样的软件技术层出不穷,我们要针对气象业务的具体特点去选择合适的计算机软件设备。如今计算机软件技术发展迅速,各类软件技术层出不穷,要选用适合气象业务的计算机软件设备。例如,MICAPS系统(气象信息综合分析处理系统,MeteorologicalInformationComprehensiveAnalysisAndProcessSystem),它是在1996年后随着气象部门“9210工程”正式启动后推出的与卫星通讯、数据库配套的支持天气预报制作的人机交互系统。其主要功能是利用丰富的气象数据资源,通过检索显示各种图形和图像,并根据需求能够进行编辑加工,为气象预报人员提供一个中期、短期、短时天气预报的工作平台,为预报员日常工作提供全程支持的自动化系统。之后,为满足不断发展的业务需求,相继推出功能更为强大的MICAPS2.0、MICAPS3.0版。GHOST软件,该软件是美国软件公司SYMANTEC推出的能使被破坏的系统恢复的硬盘复制工具,GHOST支持多种常见的或是不常见的文件系统,另外在存储文件时压缩文件的压缩率高,能够节约存储的空间。由于气象业务要处理的数据量不仅种类多而且数量大,这就需要一个及方便快捷,容量又极大的数据库来处理。这个软件就符合气象业务的需要。计算机技术软件只是气象业务建设中的一个辅助的工具,气象业务要充分的利用发展中的科学技术来发展壮大自己,而不是完全依赖高科技提高技术业务水平。比如说:气象业务部门的所有成员技术人员都应该具备提高自身素质的意识,不仅仅要熟悉自己岗位专业气象行业里的知识,还要有熟练地运用计算机的能力,理解计算机软件的工作原理,将计算机软件的作用真正发挥到极致,这样才能将计算机软件与气象业务完美高效地结合。计算机网络技术处理的应该是一些能够利用自动化处理方式减轻工作压力,提高劳动效率节约劳动力、节约时间并且提高精确度的工作,例如气象资料通信传输所从事的大量一些预报员日常做的劳动或者是手工操作的工作,另外,纸质气象档案资料数字化处理、气象数值预报模式应用等工作,均需要通过专用的计算机软件进行处理后,才能达到信息处理及时,数据共享便捷,服务信息丰富,用户使用灵活数据资料统计和整合通过计算机软件处理过后都会更方便查阅和调用,利用计算机软件技术也可以很快的处理气象信息的,不但快速而且量能够达到要求。在计算机技术应用中,工程方法主要分三个阶段:最主要的就是定义的阶段,在这一阶段中,主要工作是梳理业务,摸清需求。气象部门要根据实际情况判断出气象业务所需要的是什么类型的计算机软件服务系统,气象部门要对自己的气象业务有着全面、详细的掌握,对业务服务需求和当前存在的业务问题相当明确,才能提出选择出与之相配相适应的软件系统的功能分析和说明。其次是开发阶段,主要工作是需求的分析、设计、实现和测试。这是指气象部门通常采用构建专业数据库,对各类数据源进行采集处理、加工分析、存储共享和服务反馈,最终面向用户提供专业性较强的气象业务应用和服务平台要建立区域气象的数据库,通过信息收集和对数据信息的明确处理来掌握当地日前的气象情况以及长期以来的气象状况,在一段时间的总结过后,根据结果来建立具有专业性的气象业务的网站平台。这样一来,这个区域的总体气象业务管理和服务,就能够通过这个网站系统进行。最后是支持阶段,主要工作是在用户和开发人员间建立良好互动机制,做好软件运行后的技术支撑。这个阶段要求气象业务部门在利用计算机软件技术建立的平台时,遇到的各类系统问题都要及时准确反馈给开发人员,以便问题能及时得到解决。同时,开发人员要立足用户,加强交流,积极响应,对软件不断进行优化完善。 4结语 计算机技术软件应用于气象业务能够从根本上提高气象业务部门的工作效率和工作质量,使之能够做到及时、快速、准确的传递并且接收气象信息,从而能够更好的满足自身业务、科研和社会生产生活的需要,与此同时,这也为气象业务的全面现代化建设提供了技术支持,计算机技术在气象业务中的研究应用是十分重要的科技成果。 作者:李永利 单位:内蒙古自治区气象信息中心 软件技术毕业论文:计算机软件技术不可靠性研究 信息时代促进了我国计算机软件技术的飞速发展,计算机技术有方便、快捷、灵活性强等特点,被广泛运用于人们的生活中。但是,计算机软件的不可靠性随之被人们发现,计算机软件的不可靠性影响着计算机使用的安全性、可靠性,也威胁着用户的隐私安全和财产安全。因此,需要对计算机软件的不可靠性进行深入的研究,解决其中的问题,以提高计算机软件的安全性和可靠性,推动我国计算机软件技术的稳定发展。 1分析计算机软件技术的不可靠性 1.1计算机软件的特点分析 计算机软件是计算机的灵魂,指挥着整个计算机的运行,计算机强大的功能离不开计算机软件。首先,计算机软件技术性较强,软件的开发需要专业的计算机人才和高科技辅助工具,且开发周期较长,需要投入大量的人力和物力。其次,计算机软件有较强的功能性;计算机运行依赖于计算机的程序,而计算机程序要到达一定的目的,则需要通过一些代码和指令。计算机软件是软件开发人员智慧的产物和逻辑研究的产品,在极大程度上计算机软件的不可靠性是设计过程中的人为因素造成的,有极强的主观性和难以预测性。 1.2计算机软件不可靠性表现 当前,我国出台了很多政策来支持和指导计算机软件的发展,计算机软件技术也取得了很大的成就。但在激烈的全球软件行业竞争中,我国的计算机软件在发展中仍然存在一些问题:(1)软件失效:硬件失效通常是因为物理故障,是器件物理化的必然结果,会出现浴盆曲线;而软件失效与硬件失效有明显的区别,软件失效是由于自身的缺陷和改编程序的干扰,具体体现在两个方面:首先,软件不会被磨损,也没有浴盆曲线,但是会出现陈旧落后的问题;其次,软件的程序容易被篡改,可以人为的改编软件,也可以通过其他程序的入侵来篡改。(2)决定计算机软件可靠性的是人为因素;从软件开发的角度上来说,软件的设计要满足客户的要求,需要软件开发人员从顾客的角度出发,分析、设计软件;这就决定了软件的设计是一种思考创作,而创作中的每一个环节都是通过软件设计师的智慧和水平来实现的。但由于设计师水平的差异,在设计软件的过程中难免会出现疏忽和不合理的问题,使软件技术出现漏洞,甚至软件失效或崩溃。(3)计算机软件的维护方面;计算机软件的维护是通过更换或修复被损坏的系统来实现的,软件一旦被破坏,就只能通过重新设计软件来恢复失效软件的功能。(4)目前计算机软件的可靠性验证还没有建立完整的理论体系,相比硬件开发来说,计算机软件的设计开发还处于发展阶段。 2解决计算机软件不靠性的措施 2.1加大计算机软件人才培养力度 计算机软件在开发过程中就存在潜在的人为错误,首先,计算机软件的开发需要加强软件开发人员专业素质的培养力度,让软件开发人员在充分了解软件知识的基础上对客户的要求进行更加准确的理解;其次,软件开发人员在开发软件前,应做好软件设计前期的调研、规划、可行性分析等工作,进而避免潜在的风险;最后,要求软件开发人员在开发软件的过程中避免出现一些技术性的错误,比如变量使化错误和语法错误等,加强软件开发人员的软件开发水平。 2.2对软件开发过程进行评审 为了确保软件的开发符合客户的要求,有序的进行软件设计,避免出现跨越阶段现象的发生。在软件的开发过程中,需要组织评审组对软件进行及时的评审,评审组的成员要包括总体人员、设计师、管理师和质量保证师等领域的专家。评审组对软件设计师所设计的软件标准和要求进行评审,从而有效增强计算机软件的可靠性,促进计算机软件的发展。 2.3建立有效的软件质量监督机制 目前,国家虽然对计算机软件技术制定了一些技术和开发方面的规范,但还缺乏对一些测试软件质量、评价修改软件和软件技术改良的相关政策。因此,国家相关部门还需要建立有效的软件质量监督机制,促使软件开发人员进行自我测试、自我编制,进而有效减少软件开发人员在软件开发过程中出现的错误,提高计算机软件开发的整体水平和核心技术。 2.4建立软件可靠性数据收集系统 软件开发人员在软件开发的初期,需要参照其他相似软件的故障数据,并综合考虑其中的重要度、复杂性、调用度等影响因素,从而尽可能节省软件开发的精力,提高工作效率。计算机软件开发是一项需要多方面技术的工作,为有效避免计算机软件的不可靠性,相关部门还要在软件可靠性测试和实践的基础上规范对软件文档的要求,建立计算机软件可靠性数据收集系统,从而为计算机软件错误的分析、纠正和评估提供详细、可靠的数据,进一步提高计算机软件的可靠性。 3结束语 计算机软件技术给人们的生活带来了很大的便利,人们在享受着计算机软件带来的便利和快捷的同时,也被计算机软件的不可靠性困扰着,计算机软件的不可靠性不仅威胁着人们的账户安全,而且还阻碍了计算机技术的发展和计算机的安全使用。为进一步提高计算机软件技术的综合应用性,计算机软件开发人员在软件设计和开发的过程中要规范操作、明确计算机软件技术的核心内涵、应用特征,并认真分析引发计算机软件不可靠性的具体原因,以便能够采取有效的措施提高计算机软件的可靠性和安全性,从而促进我国计算机软件行业的健康、持续发展。 作者:邓勇 单位:南昌市工业技术研究院 软件技术毕业论文:软件技术专业综合性系统开发课程研究 1课程教学目标 该课程旨在通过项目综合训练,将所学系统设计技术、面向对象开发技术、数据库技术、程序设计技术和软件测试技术进行综合的应用与实践,通过一个完整的软件项目,培养学生遵照行业标准和软件工程规范进行软件需求分析、设计、编码、测试、部署的能力[2],尤其训练目前流行的系统开发技术和方法,培养学生团队开发和协作能力,实现学生具备岗前准职业人的编码能力和职业素养。 1.1知识目标 ⑴掌握数据库设计与维护技术;⑵掌握母版页与站点导航控件的使用方法;⑶熟悉访问数据库技术;⑷掌握主流多层系统架构技术和第三方控件、工具的使用方法;⑸能够编写用户控件和自定义函数;⑹掌握Web服务器系统部署方法;⑺熟悉面向对象的开发技术、软件测试与调试技术;⑻掌握主流程序语言的高级数据操作程序编码技术[3];⑼掌握数据报表技术;⑽掌握软件开发流程和文档编写方法;⑾熟悉UML建模技术;⑿了解项目管理知识和方法。 1.2能力目标 ⑴能够架构多层B/S网络数据库系统;⑵能够设计CSS+DIV页面布局;⑶能够根据系统实际需求进行多种数据库访问和配置;⑷能根据实际需求,按照软件工程流程,进行项目分析、设计和实现;⑸能够快速架构多层软件软件系统:⑹能编写基于面向对象的系统功能代码;⑺会调试系统代码和系统;⑻会编写规范的软件设计文档。 1.3素质目标 ⑴培养学生学好软件的信心,在学习过程中充分培养学生学习的主观能动性;⑵培养学生学习软件的严谨作风,编码以行业标准进行规范,杜绝编码过程中的主观随意性;⑶培养学生团队合作与沟通能力;⑷培养学生从事IT行业的职业技能和职业规范[4],养成良好的职业习惯。 2课程设计思路 2.1课程设计思路 选取一个综合性的企业级软件项目为载体,采取综合性实训的形式开展训练,坚持“产学并行”的训练理念[5],营造生产性流程和职业环境,不断提高学生生产实践能力和编码岗位胜任能力,主要采用基于产品质量的课程管理和评价方法,也就是更重视学生团队协作下的软件项目研发质量,对接企业化的要求进行拟岗训练。各训练小组可以选择自己感兴趣、实战性强的项目作为载体开展训练,教师提供5-10项目选题,供小组选择,每个小组只能选择则一个项目开展训练,项目一旦选中不能更改,小组按照选取的项目和项目设计要求进行分工,设计各自的子项目任务,按照项目计划进行训练。教师担任指导和引导的角色,对重点技术问题进行分析和解释,监督和指导学生进行训练,通过过程把控和考核进行课程管理。 2.2教学方法设计 ⑴分组训练法将学生3-8人分成一个小组,按照项目团队职责进行分工,合作开展训练,项目按照小组为单位验收,并进行现场答辩,采取小组互评和教师评价相结合的方式进行考核,使学生真正体验到综合项目开发流程和规范。⑵优秀作品展示为激发学生兴趣和积极性,对于每个阶段项目,采取优秀作品答辩和展示的形式,激发课程特长生的积极性和带领团队的主动性。⑶项目答辩在完成整个项目后,分小组进行项目报告撰写,并制作答辩PPT进行项目答辩,聘请专业教师担任评委,公开验收实训成果。 3考核方案与考核标准 该课程考核采取形成性考核(报告+项目)的考核方式,平时项目训练考核占40%、最后报告(含答辩)占60%。其中平时项目训练考核含学生出勤、态度、团队合作,最后报告(含答辩)考核主要依据正确率、编码规范、是否准时提交、完成效果、创新性等几个方面。总评成绩=项目训练考核(40%)+报告(60%)。 4教学资源开发与利用(含教材选用、实验实训场室、耗材规划等) 建议教材:自编讲义。实训场室要求:实训室安装VS2010以上版本,SQLServer2008以上版本,Eclipse、PHP运行环境,Oracle10以上版本,根据上课实际情况配置以上环境,实训室容纳人数不低于50人。除软件外无需任何耗材。 5教师能力要求 ⑴具备面向对象分析与设计能力;⑵具有较强C#、JAVA或PHP编码能力;⑶教师要具有很强的协同施教和教学改革能力,以及校企合作经验;⑷能够熟练使用Visio工具进行UML建模;⑸具有面相对象的系统架构、数据库管理与设计能力;⑹具有产教融合的软件项目研发和设计能力。 6结束语 对该课程的教学设计分为:需求设计、概要设计、设计与编码、测试与部署、设计文档编写等模块。通过多个学习单元使学生掌握UML需求分析的方法;掌握数据库模型设计方法;熟悉SQLServer或Oracle数据库管理工具的使用方法;掌握系统总体功能和系统流程设计方法;掌握程序流程图设计等技术和方法。引入企业真实案例,以企业为实训背景,依托有企业实战经验的教师,指导学生完成实训课程,为学生毕业实习和将来的就业打下基础。该课程在设计的过程中还需要建立相应的项目资源库,有条件的可以制作相关内容的微课或教学视频供学生在课前预习和课后复习,激励学生自主学习,培养其主动学习的意识和发现问题、解决问题的能力。通过该课程的学习,让学生进一步掌握软件编码、软件测试、前端页面制作等岗位工作技能。 作者:顾蓬蓬 单位:苏州健雄职业技术学院 软件技术毕业论文:计算机软件技术中插件技术的应用 1插件技术概述 插件技术在计算机软件中的合理应用,能够在很大程度上增强计算机软件的功能,具有不可替代的重要作用。 1.1计算机软件技术中插件技术的概念 插件,实质上就是一种程序[1]。插件程序需要遵循相应的应用程序接口,同时对其进行相应的编写。运行过程中,应用程序主要通过相对应的接口规范插件,就能够扩展相应的应用程序功能。大多数计算机软件中均包含着插件,目前对于这些插件还未形成一个统一标准。除此之外,若是应用软件平台中没有具备此类功能的程序,那么插件只能在程序规定的系统平台中运作。 1.2计算机软件技术中插件技术的功能 计算机软件中的插件技术,主要将未出现改动的软件程序当作基础,更新与扩展软件功能。从软件开发方面来看,计算机软件主要由软件开发平台与插件组成,其中插件在计算机软件中是一种补充模块,实质上就是对计算机软件的功能进行扩展,而软件开发平台是主体。 2插件技术在计算机软件中的应用原理及类型 2.1插件技术的应用原理 现阶段,计算机软件的发展呈现多样化,对于插件技术予以支持的计算机软件不断增多[2]。插件技术在计算机软件中的应用原理,主要包括以下几个方面:①接口。实质上就是主程序与插件之间的一个标准通信协议与规则,能够确保主程序与插件的有效交互。所以,保证计算机软件功能扩充与插件插入的关键在于接口是否有效。②插件。计算机软件中,可以将插件以一种动态的形式插入其中,还可以增添一些基础功能。所以,在计算机软件中插入多个插件,能够全面的完善计算机软件,有利于强化功能处理。同时,插件需要为计算软件提供一个相应的接口,确保主程序的调用行为能够有效的被识别。③主程序。主程序的主要功能就是启动计算机软件,并且在计算机软件运行的过程中将插件加载至进程地址中。Windows系统中主程序的表现主要为.exe文件;除此之外,主程序还要管理程序中的所有插件。 2.2插件技术的类型 目前,技术软件开发技术的发展十分迅速,在很大程度上扩大了插件技术的应用范围,插件的数量、类型呈现多样化。现阶段,计算机软件中的插件主要包括以下几种类型:①组件对象模型插件。组间对象模型,英文简称为COM,即ComponentObjectModel,能够对主程序直接进行接口定义,不需要对插件功能实现过程有所了解,是一种直接将接口提供给主程序的插件,能够实现主程序与不同插件之间的良好通讯。②动态函数库DLL插件。此类插件对于主程序功能的实现,主要通过动态数据库形式。主程序通过相应工具对DLL插件中存在的函数进行调用,然后再利用相应函数对动态函数库DLL插件进行调用。这种插件的不足之处主要在于主程序在运行此插件时可能发生“DLLHELL”状况,造成插件无法运行。③脚本插件。实质上就是通过相关的编程语言将插件逻辑写成脚本代码的一种插件;编程语言可以是开发人员自行开发的,也可以是通用的。现阶段,脚本插件的编程语言主要为XML,具有可操作性强、简易等特点,但是存在一定的风险。 3计算机软件技术中插件技术的应用及其优势 3.1插件技术的应用 插件技术在计算机软件研发过程中具有十分重要的作用。插件具备的优点较多,在研究插件的过程中需要花费的资金较少,而收益却远远高于支出。只要通过接口将插件与相应的软件程序有机连接起来,计算机软件就能够拥有插件程序功能。在研究插件的过程中,需要深入了解插件服务软件的主程序,根据软件主程序原理、方法对插件进行研发。插件与系统之间的连接点主要是接口,接口为插件进入软件主程序提供相应的入口,也是在主程序中撤除插件的分离端。宿主程序与插件程序之间有着明确协议,规定应当在一个子文件夹中放入插件的全部内容,为了避免对软件主程序造成破坏,必须严格管理插件技术[3]。所以,虽然插件与计算机软件是放在一起使用,但是插件仍然具备一定的独立性,对于软件产生的影响极低。用户对于插件的选择与应用,应当根据自身在生活中的实际需求,不能认定使用。同时,在对某些软件进行使用的过程中,一些用户将软件附带的插件删除,降低终端机在运行过程中的负载,这种做法并无任何问题。计算机软件技术中插件技术的实际应用,主要包括:①IE插件,Plug-in是一种程序。通常情况下,浏览器都是直接对插件程序进行调用,通过对一些特定文件进行处理,将其转换为浏览器的一个组成部分。②FLASH插件,实质上就是在浏览器中安装的一种插件,主要作用是确保浏览器中sef文件的良好播放。 3.2插件技术应用优势 主要包括以下几个方面:①插件重用率高,在对软件结构进行调整的过程中,方便简捷。②插件与插件不会发生互相干扰等不良状况,结构简单,构造清洗,不会影响计算机软件系统的运行。③插件技术在很多方面均有优势,如产品扩展、产品生产以及项目计划等方面。④插件结构灵活,由于插件主要由多个小插件功能结构组成,通过接口为软件系统提供服务,因此删减、增加较为简便,不会对软件产生不良影响。 4结语 插件是计算机软件组成系统中不可缺少的一个重要部分,插件技术在计算机软件中的应用能够进一步简化计算机程序,提高计算机程序的反应速度。插件技术的快速发展,在很大程度上促进了计算机软件功能的全面化与多样化,因此应当充分重视计算机软件技术中插件技术的合理应用。 作者:白晓海 单位:湖南省长沙市路桥征费维护管理处
软件技术专业论文:软件技术外包专业人才培养探讨 摘要:因为新一轮的全球的产业转移,中国的软件外包服务产业正处在高速发展的阶段,急切的需要把握住机会,向更加高端的市场,即欧美市场进行延伸,这个新的趋势对人才的要求提出了更高的要求,人才的问题或将成为制约这个行业发展的因素,现阶段需要培养高质量的软件人才,然而,在我国的大学高等教育中相关的英语专业并不能培养出大量的相关的高质量的人才,无法满足这个市场的相关需求,因此,我认为,针对这个急需要解决的问题,我们应该具体的分析这个行业的具体要求,设计一套完整的人才培养体系,培养出符合标准的一系列合格的人才。因此,本文将对软件技术欧美软件外包专业的人才培养问题进行探讨。 关键字:软件外包服务;英语技能;人才培养 近些年来,我国的软件服务外包行业在不断的蓬勃发展之中,相应的,对这种类型的软件人才就有了更多的需求,在这个行业不断发展的过程中,我们需要强占更大的市场,因此,我们就需要瞄准国外的欧美地区的市场,向欧美地区的软件外包行业进军,所以,为了使我国的软件行业不断的向更高的水平发展,加快产业升级和经济结构的转型,我们就应该进行相关的专业人才的培养,培养出大批既掌握软件技术,又掌握服务工作和英语能力的大量人才,以满足市场的需求。 1高等院校软件服务外包人才培养过程存在的问题 在当前的高等院校进行的高等教育中,所培养出来的人才大多是单一性人才,并不具有软件技术欧美软件外包的专业人才应该具有的素养,例如,英语专业的学生,大多数英语水平达到这一类人才的具体要求,但是其软件技术远远达不到要求,而学习计算机软件工程的学生,大多数同学的软件技术可以达到软件服务外包的要求,但是其英语水平和服务意义还有待考量。另外,根据数据显示,由于现在部分大学连续扩招,总体上来看,大学生的自我认识不足,不能够很准确的为自己定位,不清楚自己的就业定位,导致从总体上来看,大学生的就业情况不是很理想。而且部分学生的综合素质不高,害怕吃苦,缺乏远见,同时,对于信息的接收不是很全面,导致其对服务外包行业的认识不是很到位,因此,我们迫切的需要培养大量的合格的专业人才。 2对培养模式的具体改革的思路 2.1打破原有的班级限制我们的高等教育都是按照专业和班级来划分学习班级以及学习科目的,但是在进行软件服务外包人才的培养时,可以打破原有的班级限制,挑选专业技能不同、学习状态不同和对英语掌握水平不同的学生进行不同分列组合,组合成不同的班级,提出不同的教学目标和教学要求,对于不同层次的学生,进行不用层次的任务布置。2.2把教学与职业相联系进一步明确教学目标和教学内容,把教学内容和职业相互联系,把具体的学习和应用相联系,真正把教学的内容延伸到职业生涯的教育中,在教育教学的过程中,真正的体现本类课程的价值和内容,让同学们提前切身的体会软件服务外包人才的真正要求,以便他们在以后的工作中能够更加快速的融入到以后的工作中,把课堂所学内容和实际应用密切的结合起来,力求做到学有所用。2.3完善考核体系和评价机制在对软件服务外包人才的培养过程中,需要不断的完善考核的体系和评价的机制,要严格进行对软件技术欧美软件外包专业人才培养过程中的监督体系,要对传统的单纯笔试的形式做出调整,加入在某些特定情境下的口试考核环节,力求做到从多个不同的方面进行对软件服务外包人才的综合考察,这样也能够督促学生认真学习,不断提高自己,因为在传统的高等教育模式下,大部分学生的自制力不强,对于所学内容不能够很好的掌握,而且还有很多学生消极怠学,对于所学的内容漠不关心,在考试时也是敷衍度过,若进行严格的考察制度,不单单以笔试的方式进行考核,要对学生的综合能力进行考量,这样也能够在同时督促监督学生的实时学习状况,可谓一举两得。2.4调整传统的课堂教学模式调整传统的课堂教学模式,改变授课的方法,在课堂上改变单纯的老师讲课,同学接收的状态,让学生变被动的老师边讲边翻译,学生边听边笔记的被动模式,变为主动的吸收模式,让学生主动的参与到课堂的讨论中,让学生成为真正的课堂主角,不断的走进课堂,参与课堂,并且努力实现主宰课堂的目标,成为课堂真正的主体,不断的激发学生的学习兴趣,让同学们能够渴望上课,渴望展示自己,从而能够不断的提高自己的课堂听课效率,有利于学生的对于知识的掌握,从而具有合格的软件技术欧美软件外包专业人才。 3结论 通过进行一套行之有效的软件技术欧美软件外包专业人才的培养计划,培养出大量的符合要求的人才,填补我国这类既可以掌握软件技术,又知道服务工程技术的,同时又能够掌握较高水平的外语技能的综合性人才的空白,帮助我国软件行业的快速发展,使得产业结构快速升级和转型。 作者:刘子豪 单位:曲阜师范大学计算机与科学学院 软件技术专业论文:计算机软件技术专业课程体系建设研究 摘要:大力发展现代职业教育是社会经济发展的迫切需要,课程体系改革是职业教育发展的关键环节之一。软件技术专业课程体系改革应从实践教学、校企合作、师生考核考试机制等方面进行。 关键词:课程体系设置;实践环节建设;师资队伍建设;教学环节建设 在当前职业教育发展背景下,高等职业院校软件技术专业要想实现专业培养目标,课程体系改革就成为其中重要一环。笔者认为,相关课程体系改革应该从以下几个方面进行。 1课程体系设置 关于职业教育中软件技术专业核心课程的设置,许多高校的做法或多或少存在一些可商榷的地方,主要表现在:软件技术专业课程体系不完整;核心课程不明确;课程设置随意性较强;设置思路不清晰等。课程体系的设置根据学生的专业培养目标和专业定位需要,一般应包括4个模块:通识模块、专业模块、拓展模块、综合训练模块。在确定人才培养方案课程体系的时候,要立足高职院校现实,目标明确、定位准确。要根据市场发展趋势提前做好谋划,具体情况如图1.图1是人才培养方案课程体系的几条主线,其他课程如安卓开发、互联网编程技术等可以作为拓展的模块去考虑。 2实践环节建设 目前,绝大多数高职院校的软件技术教育主要是倾向于理论教育,实践教学环节薄弱。软件技术实践教学之所以薄弱,与软件技术知识更新速度快、行业发展迅速、计算机语言种类多、软件平台更新较快、高校自身问题等密切相关。改变高校软件技术专业的实践教学发展现状,可从以下几个方面着手。2.1充分考虑实践课程之间的衔接在建立专业课程体系的时候,精选课程,不贪全,确保精。在确定课程的时候,充分考虑后续课程的实践环节与前期课程的衔接度。每个实践环节既要考虑根据本门理论课程而设置,又要考虑与其他课程主线的耦合度,强调课程之间的内在关联。只有科学地处理好理论环节与实践环节的关系,对实践环节进行高度的统筹规划和整合,处理好整体设计与局部内容之间的关系,才能确保实践教学内容的延续性和扩展性[1]。2.2充分保证实践课程学时由于理论教学组织形式和操作性相对于实践教学有很大的便利性,致使当前许多高职院校通常重视理论课教学环节,忽略实践教学内容。这种安排严重制约了学生学习兴趣和动手实践能力的培养,难以保证实践教学质量。在以“能力培养为基础”的方针指引下,首先,在学时安排上,学校要保证每门课程理论学时和实践学时的比例最少是1:1,甚至可以全部是实践学时。另外实践课程中要增加综合性和设计性内容的比例,要求所有学生都必须参与整个设计环节,直到最后完成作品。2.3加强校企合作通过学校之间的交流、教师的调研、聘请企业工程师讲座等方式来了解市场需求,是大多数高职院校的做法,这种表面上很周全,实际上短暂而有限次数的活动,并不能真正帮助师生掌握市场行情。校企合作首先要弄清几个问题:企业需求是什么?我们需求是什么?有合作点没有?如何才能合作?现实情况是,企业需要什么样的员工,我们就应该培养什么样的学生。如何培养企业需要的员工,应该是校企合作的出发点。基于以上事实,学校必须加大对企业的调研力度,及时了解企业的需求,合理设置实践课程的教学内容。教学管理部门允许教师及时更新知识和实践教学内容,保证学生对于新知识的学习,鼓励和支持学生深入到企业,加强他们的动手实践和创新能力。2.4加强实训室管理学校的一切管理最终都是为教学服务,然而,当前大多数高校为了实训室管理上的方便,减少机房开放时间,使得学生仅能在上课期间进入实训室。这样怎么培养学生的动手能力,怎么形成技能?学生学习的积极性、主动性和创造性又何以培养?学校要培养学生的动手能力,就必须解决实训室开放程度不够的问题。如建立实训室管理制度,延长开放时间,做好日常机房使用日志登记工作,工作人员值日制度,勤工俭学学生工作管理制度,设备领用登记制度,培养学生的自我管控能力等。2.5加强课程考核改革目前,理论课考核方式和手段比较简单,一考定成败。实践课程的考核使用这种方式肯定不行,因此实践课程考核机制随意性和随机性就经常出现。大多数教师根据学生的出勤状况、书写的实践报告、现场答辩等综合给出学生的最终成绩,不同的教师对于相同的学生给出的成绩差异性比较大。这必将挫败学生实践的积极性和主动性,不利于对学生实践能力的培养。因此,要大力鼓励实践课程教师进行教学改革,针对不同的专业方向,选择多样化的科学合理的评价考核机制;考核中应考核学生系统设计和实现能力、报告书写整理能力以及作品的展示与汇报能力,还需要特别注重考虑学生分析问题和解决问题的能力、自主学习的能力、运用理论知识解决实际问题的能力,从而促使学生能够适应工程实践的需求[1];也要考虑学生将来从事的职业素质的需要,可以引用企业对员工的考核方式,对学生进行该门课程的考核。 3师资队伍建设 当前高职院校师资队伍建设基本上是按照本科院校模式进行建设和考核的,因此,组建一支符合现代职业教育需要的教师队伍确实是一个值得探讨的课题。第一,高职院校以培养学生的职业技能为重要目标,引进教师不应过多强调学历,要考虑更多其有关的专业技能。如:有无企业实践经历?参加过哪些级别、哪些专业的技能大赛?参加过哪些社会实践活动?发明专利?除考试获奖以外,还有获得过哪些动手操作类奖项?第二,对现有教师队伍进行建设。现代职业教育使得高职教育的培养模式要适应它的发展。作为这一模式的执行者——教师自身必须具备这种素质,加强技能培训,提高自身的实践动手能力。一个优秀的高职院校教师既要走进企业,又要贴近市场,还要掌握当代高职学生的身心特点。第三,教师队伍职称系列多元化。现代职业教育应把加强师生技能实践放在第一位。教师如果花过多的时间去写论文,参与课题,何来的时间进行技能培训。因此,能够体现教师技能水平的一些资格证、技能证书等应该在高职院校教师职称评定和晋升中更多地体现出来。第四,加强教师团队建设,形成在技能上、年龄上、职称上合理的教师梯队,这是职业教育的生命力,也是高职院校的生命力。学校在这类教师职称评定、绩效奖励、考勤考核等配套的机制上要给予较大的倾斜。 4教学过程建设 4.1培养学习兴趣兴趣是最好的老师,培养学生学习的兴趣是职业教育的首要课题。在物质资料比较丰富的今天,要求学生去学习枯燥的软件技术专业课程,确实有一定的难度,但如果我们把作为支撑的程序设计与项目相结合,与学生感兴趣的东西如游戏相结合,一定能取得较好的效果。4.2提高教学水平程序设计类课程虽然是软件技术专业的基础课程,但是这些课程对学生今后进行系统开发和设计工作与学习都有着紧密的联系,因此,要特别重视这些基础课程的教学,提高这类教师的教学水平。程序设计类课程是一个工具,开发时还应和其他专业结合应用,教师必须具有一定的联系能力和综合能力。另外,程序类课程知识的时效性比较强,设计语言的更新换代较快,教师应该培养自己终身学习的意识和行动,注重知识的更新换代,争取把最新的知识传授给学生。4.3改进教学方法采取合适的教学方法能够减轻学生的学习负担,让学生乐于接受知识,有利于建设专业课程。教师在进行专业课程授课的过程中,可以采取多媒体教学和实验教学相结合的教学方法,教师讲授一个知识点之后,学生可以随即应用,既能够加深印象,还能吸引学生的学习兴趣[2];也可以利用适合本专业的教学方法,如项目教学法、模拟企业的开发情景,让学生体会到上班的情形,培养其职业素质;还可以发挥学生的主动性,将学生分组,在班内组织互相学习,集体进行讨论,相互鼓励,既能培养学生的学习热情,又能培养他们的团队意识。4.4培养动手能力软件技术专业课程是应用性和实践性都很强的课程,只懂理论,不会动手,在应用市场是没有生存空间的。培养学生的动手能力,首先,要特别重视理论课程后面的单项实训,这一环是培训学生基本技能的基础,是为后面的综合项目服务的。其次,综合项目开发。这个阶段是模拟企业或者直接从企业拿项目过来进行的,这是真正的应用,也是学生形成技能的关键阶段。最后,为了提高学生的技能,可以多组织一些校级本专业的赛事,如软件设计大赛、技能大赛等,鼓励学生多去参加省级、国家级的本专业的大赛等。4.5改革考核机制大力推进考核形式和方法改革,对专业基础课程强调知识的全面性考查,大面积减少闭卷考试方式;对实践类课程的考核采取上机操作、作品展示等形式。[3]学校要对学生的各种创新行为和成果给予正面的激励和奖励,对学生在技能大赛上的获奖,在综合测评中更多地体现出来,以评价促发展,全面提高学生的综合能力。 5总结 职业教育改革的核心问题同时也是专业建设的核心要素就是课程改革。构建一个适应于未来发展需求的软件技术专业课程体系,软件技术专业培养就成功了一半。 作者:高锦标 李立 单位:安徽中澳科技职业学院 安阳工学院 软件技术专业论文:高职软件技术专业课程体系研究 摘要:随着我国经济的发展,教育事业也在蓬勃发展。如何培养人才,培养符合市场需求的实用型人才是高职教学改革所面临的主要问题。基于“六业贯通”的人才培养是深化高职应用型人才培养的具体体现,本文结合教学工作经验,详细阐述六业贯通人才培养模式下的高职软件技术专业课程体系构建对策。 关键词:六业贯通;人才培养;高职软件;课程体系构建 一、关于“六业贯通”的概述 1.所谓六业就是指:学业、产业、行业、企业、就业、创业。2.“六业贯通”人才培养模式,是指改革以课堂为中心的传统人才培养模式,依托专业办产业,办好产业促专业,做到产学研用相融合,六业相贯通,学业是关键,行业、产业、企业是平台,就业是导向,创业是目标。促进学校教育与地方经济建设紧密结合的一种人才培养模式。 二、“六业贯通”人才培养思路 职业教育的目的是为地方经济建设提供高素质的技术技能型人才。这一目标,体现了三个主体,即人才、教育主体和服务对象。为了达到职教目的,实现三主体共赢,就要求职业院校除了有完善的教学设施、合格的师资队伍,还要构建与地方经济相适应的人才培养模式;要求学校与当地的经济产业相结合,走校内办企业,企业中教学的校企双主体办学的道路。因此高职软件“六业贯通”人才培养必须要紧紧围绕以一定的培养理念和方法,并遵循学生的发展规律,把成长和发展作为目标,以期最大限度地满足用人单位的需求为思路,将校企合作、工学结合、顶岗实习等这种方式方法应该被融入到高职教育人才培养的模式中。传统学科的课程体系注重知识体系的完整性和系统性,基于“六业贯通”模式的课程体系更关注课程的职业能力,学生的学习过程更接近企业的工作过程,缩短了教育和工作之间的距离,更有利于实现高职教育的职业性、应用性和技术性。 三、高职软件专业课程设置存在的问题 1.缺乏认识,目标不明确。通常来说,课程体系的构建必须根据具体的情况设置,这些具体的情况包括以人的发展为目标、以服务为宗旨、以就业为目标,同时还要贯彻落实国家的相关政策等等。这些具体情况的目的是要将课程体系的构建与社会需要以及学生发展的需要紧密结合起来。然而,我国的高职软件专业对于课程体系的设置,并没有以学生的发展为目标,导致出现人才培养目标的不明确,进而导致软件课程体系机构目标的不明确。出现上述现象和问题的原因,究其实质首先还是因为思想上的不与时俱进,进而导致部分老师的思想认识与其他老师的认识出现不一致不协调的情况,对于目前阶段建立新的课程体系存在犹疑的心理,这影响了课程构建的科学性和效率性;其次是对于市场的把握不够,特别是在进行软件市场调查的过程中不细致、不完全,导致高职教育软件专业课程体系的构建失去了科学的调研和论证,进而使高职教育软件课程体系构建出现了一定的偏差,没有形成特色,就不能满足市场的实际需求。2.缺乏针对性,特色不明显。众所周知,高职教育发展的时间是不长的,还有很大一部分的高职院校还处于原始积累的阶段,特别是对于专业课程的设置和体系构建依然处在一个探索的阶段。因此,这些院校的课程设置难免就会出现雷同重复以及不注重实践能力,或者是课程设置与实际严重脱节,并在课程设计方面具有很大的随意性和主观性,这在一定程度上致使学生的知识点不成体系,进而影响学生技术的使用和操作,从而达不到课程的体系构建目标。3.师资力量与体系构建的关系。不管在什么学校,师资力量是一个十分重要的方面和组成部分。高职学校在师资这方面出台了很多政策,其中不乏好的方法。但是在具体的操作运行环节中,就出现了一系列的问题,这些问题,可能是由于思想、制度或者是财力的问题导致的。进而对于师资队伍的建设没有实际的效果,还使课程优化设置以及体系建构没有改观。我国的软件专业中,老师成为软件课程体系改革的主要关键人物,所以,优化师资队伍,充分利用企业和市场的相关资源,才能够有效改革软件专业课程的体系。4.资金投入不足。软件专业对于其他专业来说,需要的资金和资源等是十分昂贵的,目前,我国的高职软件专业出现课程改革体系构建问题也是由于资金问题造成的。(1)软件开发具有十分强的实践性,所以学生在操作的时候,需要一个机房实验室,并且配有完善设备的实验室。(2)在实际教学训练过程中,老师付出的要比学生多,而这些精力和时间上的损耗都没有一个合适的报酬兑现。(3)在相关制度等在操作过程中的问题。 四、六业贯通人才培养模式下软件技术专业课程体系构建的策略 1.加大市场的调研,明确培养目标。基于软件市场技术发展比较快的特点,高职院校在构建“六业贯通”人才课程体系前一定要通过与校企合作的沟通,做好市场调研,明确人才培养目标:首先高职院校在确定课程体系前要深入市场对软件企业进行深入的调研,了解企业需要什么规格的人才,要求学生具备怎样的专业能力和综合素质,充分体现出课程建设以社会需求为导向的思想,以此实现高职院校与市场的零对接;其次结合市场确定课程建设目标。高职院校要从职业岗位知识、能力、素质要求等方面入手,对软件课程体系进行合理开发,要求学生掌握必需的软件技术专业理论和技能,能够熟练地应用软件编程等实践技能;最后高职院校课程设置必须要紧紧围绕服务地方经济的基本要求。高职院校是服务地方经济的教育机构,因此高职院校在课程设置上要紧紧围绕当地软件市场的发展需求设定人才培养目标。2.将项目作为集训的平台,建立具有特色的课程体系。基于“六业贯通”人才培养的软件课程必须要注重实践项目操作的锻炼,因此高职院校要构建以项目作为课程改革驱动的教学模式:首先高职院校要为学生创建提升“六业”能力的实训平台。软件项目实训操作能够提高学生的就业能力、创业能力以及创新能力等等,所有高职院校要加强与市场的对接,将市场项目纳入到课堂设置中,以此提高学生专业理论知识与实践能力的融合;其次高职院校要构建基于“互联网+创业”的实践平台。在互联网+行动实施下,高职院校要鼓励学生通过创建相应的平台,提高自身的专业素质。例如针对软件编程技术的发展,高职院校要鼓励学生自主进行编程创业,通过校内创业提高其综合能力;最后高职院校要构建“三维一体”的特色课程体系,通过专业基础课程、综合素质课程以及专业特色课程的综合培养具有“六业贯通”的高素质人才。3.加强和企业的合作,有效对资源实行配置。校企合作是高职教育发展的主要趋势,也是整个软件课程体系的核心,通过校企合作平台能够培养具有社会适应型的软件专业人才,无论是创新能力、创业能力以及就业能力都离不开实践操作,因此在高校转型发展的关键时期,必须要重视实践教学:一是要提高高职院校实训平台的规格。高职院校要增加对软件实践训练基地的建设,购置先进的实训设备,提高实践教师的综合素质。二是强化企业在教材编制中的地位,突出教材内容的实用性。企业参与到教学编制中能够将最新的市场需求纳入到常规的教学中,进而提高了高职软件教学的实践性,改变了以往的以理论知识为主的模式。当然在“六业贯通”人才培养模式下,高职院校必须要重视待岗实习的作用,为学生争取真实的就业环境。三是形成以赛促学、以证促教的局面。软件专业教学必须要注重比赛的引导作用,鼓励学生通过参加各种比赛提高学生的综合实践能力。4.考核评价的多样化。合理的课程体系应该包括课程教学、实践教学和项目集训这三个主要的方面。对于一些主干课程,例如C#语言程序设计、WEB程序设计、数据库访问技术等课程,实践能力要求很高,因此我们在考核时,除了考查学生的理论知识,还注重学生实践能力的考核。考核时采用“334”的方式,即30%的平时成绩,30%的上机考试成绩,40%的笔试成绩,这样很好地考查了学生的理论与实践相融合的能力。同时,对一些主干课程,我们采用与企业合作,考取微软证书的形式进行考核,这样既可以考核学生的学习情况,又可以让学生获取相关的国际认证证书,为学生以后找工作打下好的基础。 作者:聂作财 管天球 单位:湖南应用技术学院 软件技术专业论文:软件技术专业教学方法探讨 摘要:基于“项目导向、任务驱动”模式的高职软件技术专业教学方法有利于提高学生的软件开发能力。本文以《移动商务网站开发》课程为例,探讨了该教学模式的优点、关键步骤和实施要点,有利于培养学生的学习兴趣,提高教学质量。 关键词:项目导向;任务驱动;教学模式改革 随着计算机和信息技术的飞速发展,企业对软件专业人才的需求也日益迫切,各高职院校的软件专业,主要培养应用型人才,为了适应企业的需求,必须改变传统的教学模式,不断地更新教学内容,并大力推进课程教学方法的改革。 一、基于项目导向模式的高职软件技术专业教学方法的优点 高职软件技术专业课程的教学过程中,按照旧的教学方法,教师往往采用填鸭式的方式,不断向学生灌输专业知识,而不管学生是否能够顺利消化知识。学生往往缺乏学习动力和兴趣,仅仅是被动地学习知识,处于一知半解的学习状态,独立分析和解决问题的能力得不到有效锻炼,动手能力差,达不到企业对软件人才的能力要求目标。采用基于项目导向模式的高职软件技术专业教学方法,能够有效克服传统教学方法的缺点,实现“教、学、做”一体化,从而提高学生的学习热情,驱动学生积极主动掌握知识和技术[1]。“项目导向、任务驱动”的教学模式下,教师可以将专业课程划分成若干个项目,学生在完成项目的过程中,学习软件开发技能。每个项目下面包含多个任务,学生自己动手解决每项任务实施过程中遇到的问题,最终掌握该门课程的知识和技能[2]。《移动商务网站开发》是高职院校软件技术专业的一门专业课程,对软件技术的应用开发技能要求很高。“项目导向,任务驱动”教学法可使《移动商务网站开发》课程教学与企业软件开发工作有效结合起来,理论联系实践,让学生在“学中做、做中学”,提升学生的应用开发技能,从而培养出合格的软件技术应用型人才[3]。“项目导向、任务驱动”的教学方法,可以将抽象的知识转变成具体的技能教学内容,将枯燥的理论课程内容进行调整,改变教学内容脱离实际应用的弊端,让学生能够在完成项目和任务的过程中学习和掌握知识点[4]。通过任务驱动,促使学生在实践中主动地收集资料,分组合作,分析和解决问题,提高学生利用互联网、帮助文档解决问题的能力,促使学生勤于了解行业发展动态,学习新技术。基于项目导向模式的软件技术专业教学方法,通过引导学生分析问题、找出解决方案、制定工作计划并实施,最终解决问题,能够提高学生收集和分析信息的能力,培养学生的科学思维方法和可持续发展能力。 二、基于项目导向模式的高职软件技术专业教学方法的关键步骤 基于项目导向模式的高职软件技术专业教学,可以融合项目教学法、案例教学法、任务驱动法、大脑风暴法、小组工作法等各种最新教学方法的优点。项目实施的关键步骤包括合理设计项目和细分任务、计划与实施项目和任务、项目完成情况的评价和归纳总结等。1.合理设计项目和细分任务。以《移动商务网站开发》课程为例,根据软件开发工作的实际需求,按照软件开发流程,可以将该课程的教学内容分为8个项目,即手机网页开发基础、CSS手机网页布局、HTML5实战、Web存储和数据库、文件缓存和地理位置定位、移动网站服务器端和数据库技术、移动Web应用开发、移动网站的与测试。将项目进一步划分为20个任务,即开发和测试环境的准备、手机网页开发基础、Viewport和设备方向、CSS手机网页布局、专用于手机的JavaScript、HTML5编写规范、HTML5视频和音频、HTML5结构元素、画布Canvas、Web存储、WebSQL数据库、文件缓存、地理位置定位、移动网站服务器端的开发、数据库操作技术、使用jQueryMobile开发Web应用程序、使用jQueryMobileUI插件、使用Ajax和程序动态控制jQueryMobile、使用PhoneGap、移动网站的与测试。2.计划与实施项目和任务。以《移动商务网站开发》课程中的一项移动Web应用开发综合项目为例,即移动网络书店项目,此项目分为移动网络书店首页、图书商品分类、图书商品列表、图书商品展示、购物车、订单产生、用户中心共7个子任务。项目的教学过程分为咨讯、决策、计划、实施、检查等5个过程。咨讯过程中,教师展示移动Web应用开发综合项目的预期效果,明确学习目标,导入学习任务。决策过程中,教师布置工作任务,并说明任务完成的验收标准,学生接受和分析工作任务。在计划过程中,学生搜集和学习参考资料,组建项目团队,讨论和制定工作计划。教师组织各项目经理阐述工作计划,组织学生对计划进行讨论,不断改进,得到最终的工作计划。组建项目团队的时候需要按照优势互补的原则,将不同性别、能力的学生划分到一个小组里面。在实施过程中,教师主要发挥指导和监督的作用,学生主要根据工作计划,完成项目和任务。在项目实施过程中往往会遇到一些困难,需要教师指导学生解决,如在移动网站开发过程中,针对代码出现的编译、运行错误,需要进行调试查错。可以应用角色扮演法,让学生扮演项目经理、需求分析师、架构设计师、软件设计师以及客户代表等,按照软件工程的真实流程,来完成项目和任务,从而促使学生将来更好地适应软件企业的工作环境。在项目实施过程中,教师要经常巡视辅导,协助学生解决疑难问题。遇到普遍存在的问题,教师可以采用大脑风暴法、小组讨论法、SWOT分析法,适时组织学生集体讨论解决方法,并统一解答。在检查过程中,学生互相交流和展示作品,教师检查各组完成情况,对已经完成项目任务的小组公开表扬,激励其他学生,对检查中发现的问题,要引导学生解决。学生要积极思考老师检查中发现的问题,避免在将来的实验过程中继续犯错。3.项目完成情况的评价和归纳总结。在评价过程中,教师对项目和任务的完成情况进行点评、归纳和总结,提出注意事项和改进建议。学生总结本次课的经验教训,并思考改进方法,记录注意事项。 三、基于项目导向模式的软件技术专业教学方法的实施要点 基于项目导向模式的软件技术专业教学方法在实施过程中需要把握好一些细节要点,才能获得良好的教学效果。1.明确课程的专业能力目标,围绕目标来合理设计项目。以《移动商务网站开发》课程为例,该课程的专业能力目标是:培养学生设计和开发移动商务网站的能力,掌握移动Web的语法,构建适应性强、响应迅速并且符合标准的移动商务站点,改进小尺寸屏幕中的Web可用性。通过本课程的学习,使学生能够掌握移动商务网站开发的全面知识体系;掌握HTML5最新应用;掌握HTML、CSS、JavaScript手机网站设计及开发过程;与JQueryMobile结合,学会快速开发手机网络应用程序;掌握移动网站服务器端的开发和数据库操作技术;参考大量手机网站设计实例,提高研发能力和效率[5]。围绕着这些培养目标,最终设计出了8个项目,从而帮助学生探索和学习移动商务网站开发的相关知识,并灵活运用软件技术知识。2.以能力评价为中心,建立过程化考核体系。课程考核方式包括期末作品考查和平时任务完成情况评价。期末作品成绩包括网站的实现情况、技术的应用情况、答辩过程中的语言表达能力及设计文档(书面表达能力)等几个主要方面。平时成绩包括项目团队合作表现、平时作业及实验、出勤情况、学习态度、自学能力等,主要考核团队协作能力、学习态度、学以致用的情况、理论联系实际情况。项目团队合作表现重点考查学生对工作任务的态度、职业能力、团队合作精神。3.注重提高学生的学习方法能力和社会能力。在培养学生系统掌握课程知识的基础上,培养学生选用参考书、查阅手册及文献资料的能力,培养独立思考、深入研究、分析问题、解决问题的能力。通过分组方式,培养学生团队协作能力和自我展示能力,提高沟通能力及自学能力;通过网站的实现和应用,增强就业岗位适应性;培养良好的职业道德及保密意识;培养良好的时间观念及执行能力;培养良好的文字及语言表达能力。 四、结束语 为了更好地实现教学方法改革的目标,在“项目导向、任务驱动”的教学模式中,教师应注意发挥学生的主体作用,让学生自己去查找资料,探索解决问题的办法,教师本身偏重于项目引导和过程指导,解答学生在项目实施过程中遇到的疑难问题。这样才能真正提高学生的创新能力和实践技能,增强团队协作意识,培养出符合企业需求的软件技术应用型人才。 作者:邹才凤 单位:广东机电职业技术学院 软件技术专业论文:高职软件技术专业人才培养体系的构建 【摘要】高职院校软件技术专业,在人才培养方面应该侧重技能与实践。在软件技术专业中重点应该掌握高级语言的应用、后台数据库的熟练掌握、项目工作模式如客户服务器模式、浏览器服务器模式等。同时关注新技术,岗位工作新需求。所以要真正培养出优秀的毕业生,为企业输送合格的工作人员要从多方面下手,在课程体系开发过程中关注这些重点方面。努力提升学生的软件开发与应用技能。 【关键词】数据库;课程体系;高职院校;校企合作;平台 1高职软件技术专业课程体系设计要以学生为中心 课程体系搭建是为了教学服务,为传授学生知识与技能这个目标而努力。因此,课程体系要充分考虑高职院校学生的特点。高职院校的学生,义务教育阶段的基础相对薄弱。自学能力不足。所以在进入高职院校的时候,他们对学习能力其实是不够自信的。所以在课程体系的设置上应该考虑到这一层面。前导课程设置应该相对简单。便于学生接受。为学生重塑自信。针对一些理论知识较多,相对抽象的课程,如果必须放入前2个学期学习。也要在具体课程设置中,减少过多的理论研究内容。以够用便于理解为主要依据。让学生先能掌握住基础。培养并提升学生的自学能力。在未来如果学生通过锻炼能力得到提升需要掌握更多深入的理论内容时,可以通过阅读资料和咨询方式,进行再学习。高职学生的另一个特点就是年龄特点。青年阶段懵懂好动,对于静态的课堂讲授难以提起兴趣。所以课程体系中,要考虑教学方法的搭配。用生动的教学方法,更加便于提高课堂知识传授的效率。在软件技术专业,比较适合的方法有任务法、项目法、演示法等。 2高职软件技术专业课程体系设计要考虑专业的特色 课程体系设计要符合专业特点。软件技术专业,是培养学生计算机软件开发方向的能力。经常涉及到代码的编写、项目的软件工程思想、高级语言的使用、用代码实现硬件交互等能力。所以在课程体系中要把这些能力细化,分解。再重新融合到不同的课程章节中。另一方面,通过上面的描述我们发现,这些能力都需要实际的操作来实现。掌握高级语言,需要能够熟练的掌握高级语言的语法规则,使用这门语言进行编码。软件工程思想,要体现在与客户的沟通,建立需求分析。塑造原型,最终进行代码实现和维护等阶段来完成。而这每个步骤都需要实践完成。所以在软件技术专业的课程体系设置中,要突出实践能力的培养。合理的安排实验课程的课时。保证实验内容可以满足能力锻炼需求。涉及软件开发的岗位,根据软件开发周期规律,选择软件开发工作过程作为建立课程体系的逻辑起点,依靠领域专家、按照岗位能力成长规律构建课程体系。通过分析在软件开发过程中各工作岗位需要完成的典型工作任务,确定各软件岗位的具体能力要求;根据能力要求的复杂程度归纳总结出软件开发的行动领域;以行动领域为课程开发平台,按照各岗位职业成长规律,将行动领域转化为学习领域。 3高职软件技术专业课程体系设计要考虑技术变化与更新 计算机专业技术在不断的更新当中,甚至可以说几年时间就有主流技术更换的可能。几年前,操作系统的变革。使得诺基亚让出了手机霸主的位置。现在智能手机的发展,逐渐占领了市场空间。众多网络应用受到手机应用的竞争。例如博客用户已经锐减。人们更加习惯使用微信。开发平台从客户服务器模式独霸。到现在安卓开发技术的崛起。这些都是几年时间内发生的。很多广告的竞争与推广也关注在微信平台推广。所以软件技术也在不断的发展。对于主流技术和新技术、新平台要进行关注,尽量把新的技术趋势加入到课程体系建设中来。 4高职软件技术课程体系的建设应该有企业人员的参与 积极与企业合作,建立双赢的合作关系。可以为学生提升毕业就职竞争力。与企业深入合作,可以通过定岗实习、实训、教师交流、设备援助等多种方式来完成。把软件开发企业请到学校中来,把企业对毕业生的需求进行深入的分析。拿出目前的课程体系。请企业人员提出不足,提出他们期望在课程中增加的内容。适当删减在实际工作中应用不到的知识,以够用为主。共同合作建立科学的软件技术课程体系。校企深度合作,将“工作过程”融入教学中,形成基于工作过程的教学模式。以“职业情境、任务导向、能力递进”的校企合作人才培养模式为指导方向,专业优质核心课程上实施了以“项目为载体、能力为导向”的基于工作过程的项目教学改革和实践。引入企业真实项目进行教学,依托“教、学、做”一体化教室,采取以任务为驱动、子项目递进为综合项目的现场情境教学和岗位实践加讨论研究的教学方式,一体化场景教学的应用课堂教学,提高学生的学习兴趣和学习场景创新能力。 作者:宋磊 刘立栋 单位:哈尔滨职业技术学院 软件技术专业论文:高职软件技术专业基础课程教学与实践 摘要:软件技术专业主要涉及高级语言类课程、算法类课程、网络类课程、以及在项目开发中常用的软件工程思想、实现代码的数据结构、与计算机硬件互通的汇编语言等多门课程。而软件技术专业的基础课程,就是要为培养学生软件开发能力做好准备。本文就软件技术主业的一些基础课程进行简要介绍,对教学方法提出一些可行性的建议。 关键字:数据结构;算法;项目开发;实训;逻辑思维 1高职院校软件技术专业基础课程特点分析 高职院校软件技术专业基础课程相对较多。有专业基础课也有公共课。我们在这里尝试列举几门,并对它们的特点进行简要的分析。 1.1从公共基础课程来说 高职院校基本都开设英语和高等数学课程。这对于每个专业大致相同,但是对于软件技术专业其实还是起到重要作用的。因为软件技术专业无疑是计算机专业的一个分支。而计算机是美国最先发明,目前为止计算机技术仍然是美国处于领先地位。因此很多的编程语言和代码,基本都是由英文字符组成。甚至一些关键字,是一些英文单词的缩写。在后面的专业课程学习中,还会接触到专业英语。所以学好英语这么课程对软件技术专业有一定的帮助。高等数学课程对软件技术专业也格外重要。软件的编程最终要通过算法实现,数学建模。可以说学习越深入,对数学的需求越高。计算机专业可以说是数学专业之外,学习数学最多的专业之一。 1.2从自身的专业基础课程来说 每个职业院校开设的不尽相同。大致可能有一下科目:计算机基础、C语言、JAVA语言、数据结构、数据库原理或者网络数据库。这些课程软件技术专业中出现较多。下面简要说下课程的特点。计算机基础,是让中学阶段没有接触过计算机的同学,掌握一些基本的计算机操作。例如打字,在操作系统环境下完成简单操作任务、使用办公软件等。这门课程相对不难,但是知识点繁杂,初学时容易因不熟练而产生错误。C语言课程,这么课程常常是学生的第一门编程语言。因为它是结构化编程语言,适合教学,为学生树立清晰的编程思想。虽然实用性不强。但是学习后,能够大大缩短其它高级语言的学习过程。甚至通过自学就可以完成其它语言的而学习。JAVA目前比较流行的编程语言,很多项目的开发的首选高级语言。数据库,是数据存储,操作应用的后方平台。在项目开发中也不可或缺。数据结构,是为学生提供一些经典的编程模型,打造编程思想,实现思想到模型乃至到算法的转换。 2教学中关注的重点 2.1以人为本,建立和谐的师生关系 教师是知识的传授者,学生是知识的渴求着者。学生应该尊重教师,教师应该做出表率,为人师表。尽力帮助学生获取知识。但是在实际的学习情境中,学生还很年轻,不能够完全的情绪,对尊师的思想意识不深。可能会在无意的状态下,触犯教师。这时候,教师应该体现出自身的素质,用宽广的胸怀原谅学生。在适当的情况下,指出他的错误。在教学中与学生交朋友,这样才能打造和谐的教学气氛。另一方面,学生的学习有时完全是依靠兴趣来驱动。如果教师学生间产生矛盾,学生就会产生抵触情绪。不愿意学习这门课程,延误了自身的学习进程。所以和谐的师生关系是好的教学表现的根本。 2.2巧设学习情境 软件技术基础课程教学目的,是让学生打破常规,启迪思想,通过探索、实践,掌握理论知识并能灵活地加以应用。“情境教学”正是基于这一先进思想的教学方式。如学习语言编译时,使用“栈”可实现函数过程的调用。当计算机输出数据打印时,打印机速度慢,为解决这个问题,教师安排学生们分组讨论,最终在操作系统中设一个打印队列,将打印任务逐个完成,避免了数据丢失或打印次序混乱。任务进行过程中,学生们热情高涨,积极思维,体会知识的奥妙,深刻认识到了这门课程的意义和作用,同时小组成员团结协作,焕发出可贵的集体智慧,在目标实现过程中体验成功带来的巨大喜悦。 2.3注重实践的作用 软件技术专业需要大量的实践。实践操作可以让学生了解编程的经典思想,熟悉代码编写过程,养成良好的代码书写习惯。实践操作可以让学生掌握项目开发的各个流程,养成软件工程的思想,避免因工作环节不足,工作顺序不合理而出现的功能缺失和错误开发。实践可以让学生独立的掌握各个软件工具。从高级语言到后台的数据库;从脚本编写到特效代码的添加;从服务器的配置到客户端的调试,每个实际操作到包含了若干个知识点,到帮助学生提升了软件开发的能力。结束语:要做好软件技术专业基础课程的教学,就要对这些课程进行合理分类。了解基础课程的具体作用。能够抓住不同课程的特点。有的放shi同时在教学过程中注交流,重实践。师生通力合作,完成好教学任务。不断的为提升学生的能力而努力。 作者:宋磊 刘立栋 单位:哈尔滨职业技术学院 软件技术专业论文:高职软件技术专业自助餐教学模式探析 摘要:四川信息职业技术学院软件技术专业目前开设了5个专业方向(.NET方向,Java方向,软件服务方向,软件外包方向,移动应用开发方向)。该校软件技术专业在建设发展的过程中,通过校企合作、师资共享、课程共享、硬件资源共享等方式辐射其它专业,带动了其它专业的发展。作为省级示范高职院校重点建设专业,其“自助餐”教学模式在软件技术专业已经推行了四年,被认为是比较成功的一种教学模式。 关键词:自助餐;模块;教学;方向 作者简介:谢宇(1982.06-),男,四川德阳人,四川信息职业技术学院信息工程系教师,讲师,西南交通大学计算机技术专业硕士研究生,研究方向:软件技术应用 四川信息职业技术学院软件技术专业建设充分依托校企合作,按照共建共管共享原则,实现校内实训基地“工厂化”、校外实训基地“教学化”,先后与中软国际、四川华迪信息、用友四川公司等多家企业合作,建立了校外实习实训基地。其“自助餐”教学模式在软件技术专业已经推行了四年,被认为是比较成功的教学模式。在前三学期或前两学期开设专业基础课程,从第三学期或第四学期开始按“岗位”分为若干专业方向,学生打乱建制,像吃“自助餐”一样,学生选择岗位,重新组班,小班教育,独立培养,从而实现了个性培养、因材施教。为了更进一步拓宽学生的选择面,软件技术专业将优化过去的模块,增加“软件测试”方向、“软件UI设计”方向等。 一、自助餐教学模式简介及主要解决的教学问题 1.自助餐教学模式简介 主要内容是探索和实践了一种符合当前高职院校软件类专业的教学模式,该模式是采用一种类似“自助餐”的人才培养模式。该模式适合当前高职学生的自身特点和软件岗位特点,具有岗位针对性强、校企合作灵活、能充分发挥学生自主学习潜力等特点。在方案设置上:前三学期开设软件类的基础课程和通用的专业基础课程,从第四学期开始,将按照目前较为实用的方向制定出5大专业方向模块,分别为“.NET开发方向”、“Java开发方向”、“移动应用开发方向”、“软件外包方向”、“软件服务方向”,学生根据自己的发展目标选择适合自己的专业方向进行学习。软件技术专业主要改革进程如下:(1)2006级和2011级:在这6个年级中,由于学生的规模限制,每个级都只有2个班,所以一直以来都分为两个专业方向来开设课程—Java开发方向、.NET开发方向;(2)2012级:对于2012级,由于学生的规模大大提高了,学生人数达到约200人;软件开发岗位进一步细化,由于自能手机的普及,手机软件开发人才的需求量不断提升。(3)2013级、2014级:在2012级的基础上继续推行和实践“自助餐”人才培养模式,修订了过去不太合理的课程设置,添加了前沿的、使用的课程、优化了模块之间的关系、完善了分方向的选拔流程。 2.主要解决的教学问题 (1)当前软件技术专业现状分析 当前软件技术专业在人才培养过程中存在如下的一些特点,在制定人才培养方案时往往顾此失彼,达不到理想的效果。①高职高考时填报专业的盲目性,对于软件技术专业不是真正的了解,最终导致在高职软件专业学习过程中出现厌学等情况。②当前IT行业的发展非常迅速,新兴行业的不断地出现,作为职业院校很难根据市场的变化做出及时的调整,往往落后行业发展好几年,这样就导致学校教育和行业脱节。③由于我国软件行业的现状,大企业少,小企业多,所以每家企业的用人计划非常有限,一家企业往往只招几个人。同时,软件开发技术的分支又非常的繁多,学校很难使用一个专业来满足大部分企业的需求。④由于软件行业具有发展快、变化快等特点,很多企业在某些时候需要部分订制的软件开发人员,对于现有的人才培养模式,学校很难做出调整来适应企业,最终导致丧失学生对口就业的机会。 (2)效果分析 ①解决学生专业填报盲目性问题。学生在前三学期学习软件技术专业基础课程,通过学习逐步认识到专业的特点和自身的特点,第4学期就可以根据自身的爱好、特点来选择适合自己学习的专业方向,提升了学生的学习主动性,有利于学生在该专业方向上成才。②解决专业培养和行业脱节问题。软件技术行业虽然发展非常快,但是基础知识的变化还是很小,每种方向发展也只是几门课程的区别。③解决学生对口就业问题。将专业分为多个方向,每个方向的人数就相对减少,在就业时,就业压力就大大减轻了。 二、自助餐教学模式解决教学问题的方法 1.化大为小、化繁为简的方法。将一个很大的软件技术专业分为若干个专业方向来进行培养。 2.自由选择的方法。让学生自由选择学习的专业方向。 3.与时俱进、灵活调整。依据行业的发展和企业的具体要求,对部分专业方向做出灵活的调整,以适应行业的发展需求,也可以根据企业的要求,制定符合企业订单需求的专业方向。 三、自助餐教学模式的创新点 ①以就企业岗位需求目标开设模块方向,提升学生的就业力。②以学生自主选择的专业方向进行培养,提升学生的学习激情。③以行业发展的方向为培养的方向,提升学校的竞争力。④经过多年尝试,毕业学生已经取得不错的成绩。⑤已经尝试多年,可以很好地在兄弟院校进行推广。 四、自助餐教学模式的推广应用效果 本次改革是采用了一个循序渐进、逐步推进的过程,在几届学生中逐步试行,改革思路清晰,实施过程可操作性强,完全可供其他高职院校软件技术专业借鉴。目前已经指定出一条完善的、可操作的人才培养方案,可以在同类院校推广。 作者:谢宇 单位:四川信息职业技术学院 软件技术专业论文:高职软件技术专业人才分类培养模式 目前,信息产业对软件技术人才的需求日益增加,但是高职软件技术人才的培养模式却远不能满足这种需求。一方面,众多毕业生难以找到合适的就业岗位;另一方面,企业难以招聘到动手能力强、项目经验丰富的技术人员。若要从根本上解决这一矛盾,需改革现有的人才培养模式。 一、软件人才培养现状 虽然企业对中低端软件人才的需求很大,但受全球经济环境的影响,高职软件技术人才培养陷入招生难、培养难、就业难的“三难”境地。主要表现为招生人数逐年锐减,高校信息类专业办学举步维艰;培养模式单一,课程体系无法适应市场变化,授课教师工程项目能力偏弱“,双师型”教师缺乏,学生综合素质不高;就业率和专业对口率不高,学生、家长、社会满意度低。可见,先行培养模式仅按照同一标准批量培养,没有根据学生特点分类培养、因材施教,不能真正培养出适应学生又适合企业的人才。 二、软件技术专业方向分析 随着信息技术的发展,软件行业不断扩大,衍生出了很多分支领域和职业岗位,以往单一、粗放型的“万金油”培养模式已无法满足市场需要。按照就业岗位,软件技术专业可分为软件开发、软件测试及实施、软件产品营销三大方向,具体典型岗位及对应职业核心能力要求(如表1所示)。 三、校企合作人才培养模式 影响软件技术专业学生学习的因素有三方面:一是学生基础弱。二是学生间在性格、习惯、能力存在差异。三是选择专业存在盲目性。因此,必须改变以往的培养模式,开展“分类培养、因材施教、能力导向”的校企合作人才培养模式。 (一)人才培养模式构建 按照“以人为本、能力导向、分类培养、因材施教”的理念培养软件技术专业人才,主要就是根据学生的特点和专业学习实际情况,动态调整专业发展方向,让学生在软件技术专业大类中调整自己的发展方向,不适合搞编程开发的可选择做测试;不喜欢搞实施的可做推广销售;不适应搞营销的可选择搞开发。其实施过程可以分为三个阶段。大一阶段,软件技术专业各方向第一学期的课程安排基本一致,开设专业规划教育、专业基础课程和通识课程,让学生掌握基础知识;第二学期根据学生性格、兴趣及能力进行方向调整,实现第一次分流。大二阶段,进行职业规格教育,开设专业核心课程,让学生掌握专业核心技术与相应的专业技能,并根据学生兴趣、能力和方向确定岗位学习方向。大三阶段,进行岗位规划教育、专业实训和定岗实习,根据岗位方向,确定岗位实训方案,让学生具备胜任岗位的专业综合能力。在第五学期进入专业项目实训阶段,针对不同层次的学生采用不同层次的项目进行实训,提升其综合项目开发能力。实训期间,进行第二次分流,通过岗位上的自我调整与定位选择更适合自己的专业方向。第六学期进入定岗阶段,根据学生的就业意向选择自己喜欢的就业城市和企业开始定岗实习,直至就业。 (二)课程体系构建 在这种课程体系下,学生完成专业课程学习的同时也就具备了相应的项目开发经验。另外,注重职业素质课程的开发,提升学生沟通表达、自我管理、团队协作、抗压能力、就业能力等综合素质。不同的培养模式有不同的特色,“分类培养、因材施教、能力导向”的高职软件技术人才培养模式在专业建设方面,应结合区域软件人才需求和软件职业岗位群,开设难易程度不同的微专业(多个专业方向);在专业方向上尊重学生的知情权和选择权,因人而异选择、调整个人主攻的专业方向;在人才培养过程中关注学生基础、性格、兴趣等方面的差异,分类培养、因材施教、扬长避短,激发学生学习潜力和动力,让学生在适合自己的专业方向获得最佳发展。 作者:廖坚 单位:湖南机电职业技术学院 软件技术专业论文:软件技术专业课程改革与实践 1涵盖的技术 作为一名技术人员,在动态网站研发过程中,最先要掌握的基本语言,应该是超文本标记语言。这种语言从名字就可以看出是专门为制作网页和网站服务的。因为代码简单,方便易懂。所以可以作为前导的基础课程。其次,要开发动态网站,至少要掌握一门面向对象的高级编程语言,从本门课程的名字大家也能分析出,这里选用的是Java高级编程语言。当然在动态网站制作过程中,脚本语言必不可少。目前较为成熟、流行的脚本语言有,PHP、C#和JSP,后者跟JAVA有着天然的结合性,技术也不逊色于前两者。是教学中不错的选择。当然动态特效脚本语言也是需要了解的,这里面选择性较大,不一一介绍。最后,选讲一门数据库技术,让网站从静态变为动态,才真正实现网站的意义。SQL可以进行简单介绍。除了技术角度之外,还应该介绍网站的功能设计、主题与内容的安排,风格的确定等。如果课时允许的情况下,还可以适当拓展网页美化相关的专题。 2软件技术专业JavaWeb课程存在的问题 在课程内容上未能紧跟技术发展趋势,现有的JavaWeb开发高职高专教材多以基础的知识和技能为重点来讲解,与用人企业对JavaWeb开发人才需求相差太大,不能满足用人单位的需要。比如企业多需熟练掌握SSH框架的JavaWeb开发人才,但学生没有深入地学习实践这些主流的开发框架,就业时面对企业人才需求比较被动。在教学模式上,能够采用任务驱动,项目导向的方式,但是每个项目只针对某些知识点,相对单一,虽然全部项目涵盖了全部知识点和技能,但是系统性不够,不能很好地引导学生将这些零碎的知识和技能应用于综合的系统开发中。另外,课堂和实训地点相分离,缺乏职业氛围,与企业联系不多,学生在校学习与实际工作存在不一致性。 3软件技术专业JavaWeb课程改革的有效措施 首先打破传统教学观念,以“任务为驱动”“、案例+项目”的方式进行教学,从学生熟悉的实例出发,首先提出问题,引导学生解决问题,问题扩展,再解决问题,再扩展,再解决。这种通过一个程序的层层推进,引入课程内容,使得学生的每一步学习都有基础,是循序渐进,螺旋式上升的过程,使学生的学习是在“走台阶”,而不是“三级跳”。其次在课堂教学上采用师生互动、小组讨论等形式,也通过老师巡回指导,发现学习中普遍性问题和同学中的新思路、新方法,实时地提出问题,学生进行正误判析,解决普遍性问题,或者请有独特思路的同学演示自己的方法或程序,对比各种方法的优缺点,鼓励大家再提出新方法。再次计算机类课程的学习有其自身的特点,听不会,也看不会,只能练会,所以在课程教学中必须强调程序设计训练。学生只有通过大量的练习,才能真正掌握语言知识,培养程序设计的能力,逐步理解和掌握程序设计的思想和方法,能利用计算机解决实际问题。最后课程采用过程性评价和结果性评价相结合的考核评价模式。其中,过程性评价成绩占课程总成绩的60%,结果性评价成绩占课程总成绩的40%。过程性评价以项目为单元来进行。结果性评价通过学期末的集中考试进行,重点考查学生对JavaWeb开发的基础知识及常用开发框架的理解掌握情况以及代码编写能力。每个项目成绩都是从知识、技能、态度三方面考核,考核依据是提交的成果、项目总结、平时表现、小组内部评价、组间评价等。 作者:宋磊 杨文 吴奇英 单位:哈尔滨职业技术学院 软件技术专业论文:软件技术专业实训基地建设 1软件技术专业实训基地建设思路 1.1校内实训基地建设思路 (1)设立专业实训室.在建立校内实训室时,经费是首要考虑的问题,在有限经费条件下,可以根据专业特点及专业班级人数来设置实训室的功能与数量,也可以与计算机其他专业共用实训室,来达到控制成本,提高利用率的效果.如软件技术专业计算机类课程分为计算机基础课、专业基础课和专业核心课.对于计算机基础课与专业基础课可以和计算机类其他专业共用实训室,针对专业核心课程可以成立软件开发测试等实训室.在规划软件开发测试等实训室数量时,要充分考虑软件专业各年级的班级数量及专业课程设置要求与特点.计算机软件技术专业课程教学一般都采用理论实训一体化的教学模式,学期教学中会有整周的阶段性专业技能训练,要做到正常课程教学与阶段性实训不冲突,要有一定的实训室冗余.在规划实训室规模时,可以考虑专业学生班级人数成立大小不等的实训室.(2)成立软件工作室.利用校内实训室的条件,创建软件工作室.软件工作室的成员由校内的专业教师和校外周边地区软件企业的兼职教师,及来自计算机专业的对软件设计与开发感兴趣的学生组成.软件工作室可以承接一定的软件项目,在专兼职教师带领下,与学生共同完成承接的项目.在完成项目的过程中,不但可以提高教师的实践教学能力,还可以进一步锻炼学生的专业素质能力和团队合作能力. 1.2校外实训基地建设思路 校外实训基地是对校内实训基地设备、场所和功能缺陷的有效补充,能有效缓解学校实训基地建设所需经费和空间不足的矛盾.在建设校外实训基地时,可以选择与企业合作的方式,将学生送到企业进行顶岗实习.实习期间,在学生自愿的情况下,企业可以有偿或无偿对学生在软件项目开发整个流程及团队合作进行短期培训,使学生能更好地适应岗位,并为企业及学生双方创造更多价值. 2软件技术专业实训基地建设成效 2.1校内实训基地建设情况 根据专业实际需求,在满足教学实践教学要求的前提下,在学院原有实训设备的基础上,重新整合并更新了软件技术专业实训基地,成立了计算机应用实训室、计算机组装维护实训室、Java开发实训室、.NET开发实训室、软件测试实训室、软件综合项目实训室和项目开发实训室(软件工作室).为了使实训基地发挥其作用,有序的开展各项实习实训活动,制定了完善的实训室管理制度,在实训基地管理上还配备了专门的实训室管理教师与学生.教师负责实训室软件环境运行维护,学生负责实训室的日常管理,如实训室卫生的打扫及实训室开关门,在教师的带领下参与实训室软硬件的维护管理等工作.利用校内实训室资源成立了一个软件工作室,为了营造更真实的软件开发实践情境,更好地维护工作室的运营,工作室成员可以争取更多的软件设计客户,为学生提供更多的实践机会.为了争取更多的客户,工作室既要向企业展示自身的优势,如较强的技术实力等.在争取客户过程中,为工作室的员工提供了更多与企业进一步接触的机会,为学生提供更多就业机会,也为企业招收优秀的软件技术人员提供了便利. 2.2校外实训基地建设情况 软件技术专业与北大青鸟签订了合作协议,成立了青鸟软件技术专业,由我院和北大青鸟共同研究专业课程体系,共同为学生联系对口的实习岗位.在学习期间,由北大青鸟企业教师对学生进行专业、职业培训,并带领学生参与到一些项目的开发中来,提高了学生的实践能力.在与北大青鸟的合作中,学生每年都可以参加北大青鸟组织的院校赛,并设立了奖金,充分调动了学生学习的积极性及参加比赛的热情. 3结束语 软件技术专业实训基地的建立是培养具有创新意识、创造能力及应用型人才的实践场所,是提高教学质量的重要途径,是培养学生职业能力、提高职业技能水平和提升职业素质的基础保障,也是职业教育的必由之路. 作者:翟秋菊 单位:黑龙江农业经济职业学院 软件技术专业论文:软件技术专业人才培养模式 对于移动互联网竞赛,还能融合更多的移动互联网商务平台优秀的APP,提供更多的商机。另外Apple和Google公司倡导的应用软件商店改变了传统软件行业的格局,降低了软件开发和推广的门槛,作品完成后也不用像传统产业的产品进行一系列的销售推广,产品可直接通过移动互联网网络市场进行定价销售,通过网络,足不出户就能完成产品的需求,设计,开发,销售等环节的工作。这样的产业特点强化了产品的市场需求,也为学生的实习和实践条件提供了广阔的空间,更为校企合作增添了一条渠道。 1.“一二三四”人才培养模式的具体内涵 1.1“一个纽带” “一个纽带”即“校企合作”是联系学校、人才、市场和企业的纽带。企业生产出满足市场需求的产品而获取利润,企业需要的即是能够生产出满足市场需求产品的人才。因此学校培养出的人才应该满足企业对人才的需求,即是学校应该培养出能够生产出满足市场需求产品的人才。软件技术专业校企合作拟从现有工学结合人才培养出现的问题入手,重新思考工学结合的内涵,探索与实践工学结合人才培养模式中的“市场因素”。充分发挥“前店(企业或应用软件商店平台)”、“后厂(校内生产性实训基地或学生个人和小团体)”的资源优势,学生实践的作业即是市场需求的项目,在教师和企业骨干的带领下一道完成项目的开发,将学生的作品转化为产品和商品,这样的过程与真实项目的开发过程无缝衔接,提升学生的学习和创业能力;把握市场脉搏,制订出培养学生三种能力(职业能力、创新能力、创业能力)的人才培养方案;紧跟市场走势,以培养学生可持续发展能力为宗旨,推进课程建设与改革,突出能力“三转化”即作业转化为作品,作品转化为产品,产品转化为商品,循序渐进地培养学生职业素养和职业技能;充分利用企业以及国内和国外(如Apple和Google公司)的应用软件商店平台,从这些“前店”获取资讯,根据所获取资讯完成课程作业,结合市场需求,学生将这些作业、作品整合成产品和商品,并且将这些商品放在“前店”销售,学生从商品销售情况中发现、总结成绩与不足,达到检验教学效果的作用,为学生毕业后走上工作岗位积累工作经验。 1.2“双元教学” “双元教学”即在教学过程中加入“慕课”与“翻转课堂”的元素。基于“慕课”的“翻转课堂”教学要求学生在课前通过教师在“慕课”平台上提供的教学视频来进行自主学习,完成课前练习。教师根据学生在课前的学习收获和疑问,设计有效的课堂学习活动,学生要在课后继续巩固知识,做拓展练习,扩大知识面的掌握,教师将学生完成的作品进行整理最后给出点评,与全班学生进行分享。基于“慕课”的翻转课堂教学颠倒了传统教学的师生角色,学生是学习的主角,教师是学生学习过程中的指导者。这样的教学方式不仅有利于学生的自主学习,更有利于培养学生的信息素养以及教师的自我发展。 1.3“三个平台” “三个平台”即技能大赛、APP应用商店、企业实习这三个实践平台。学生通过参加技能大赛,在移动互联网应用软件商店上传自己的作品并进入软件企业进行实习等环节的训练,充分了解市场的需求,充分理解产品的开发过程,充分融入企业的职场氛围。通过三个实践平台的训练,使学生从技术和意识上都达到企业的用人标准。 1.4“四段培养” “四段培养”即是将高职三年制的培养时间分为“1212”四个阶段。第一学期,进行公共基础课程的教学。学生在这个学期学习公共基础课和职业规划课,为后续的专业课程打好基础,并为自身的职业发展做好规划。第二和第三两个学期,进行专业基础课和专业技能课的教学。学生在两个学期学习专业基础课和专业技能课。第二学期主要学习专业基础课程,掌握专业基本知识和基本技能;第三学期主要学习专业骨干课程,掌握核心技能,培养学生的计算机应用、软件编程等专业基本技能。第四学期,进行项目化课程教学和职业资格认证。学生在这个学期学习的课程是学习领域课程。也就是常说的饭碗课程。课程内容均是以真实软件项目为载体的项目实战,培养学生的项目开发能力和新技术应用能力。另外,学生在这个学期还将进行专业认证的考核,取得相应的职业资格证书。第五和第六学期,学生进入企业顶岗实习。这两个学期学生全部到校外实训基地进行顶岗实习,在顶岗实习企业中的真实项目开发,培养学生的职业素养与软件企业岗位胜任的能力。期间完成毕业设计,同时为就业做准备。 2.结论及展望 高职软件技术专业“一二三四”人才培养模式在市场需求的驱动下,较好的平衡了学校培养学生与企业开发产品之间的供求关系,实现了人才培养与企业效益的双赢。基于“慕课”的翻转课堂教学不仅有利于学生的自主学习,而且有利于培养学生的信息素养以及教师的自我发展。同时提高了教学质量,为高职教师提供改变传统教学方式的一种新思路,也为高职院校进行教学改革注入新的力量。技能大赛、APP应用商店、企业实习三个实践平台通过不同的方式提升学生的实践能力和职业意识,实现学校的人才培养与企业的用工需求的无缝衔接。 作者:刁绫 陈磊 徐受蓉 单位:重庆航天职业技术学院计算机工程系 软件技术专业论文:软件技术专业产学合作中的问题及对策 1软件技术专业产学合作中存在的问题概述 1.1企业工程师和软件行业专家参与教学工作的积极性不高 在对软件技术专业学生进行软件教学的过程中,绝大多数高职院校为了降低教育成本,选择以学院教师为主,以专业教师为辅的教学模式。由于软件企业工程师和软件技术专家几乎没有时间和精力参加教学活动,使得软件企业的工作理念、创新思维和企业文化很难被传播到软件学院的教学活动中,导致软件行业工程师和专家很少有机会参与到教学活动中,容易导致软件专业的教学模式和教学方法不能得到及时有效的更新。 1.2校企合作中容易出现企业冷、学院一头热的情形 高职院校都希望软件专业的教师和学生能够共同参与到软件技术的研发,以此提高学生和教师的动手研发能力和实践创新能力。软件研发技术的特殊性和技术性,使得软件研发企业的研发项目的保密工作与学校的课程进度安排相矛盾,教学进度、学生的数量与保密性等问题的冲突使得多数软件企业不愿与软件专业教师、学生合作研发软件,导致校企合作关系很紧张。 1.3欠缺双师型的教师,教师素质不高 多数高职院校的软件开发专业教师往往一毕业就到学院来实习工作,由于缺乏丰富的工作实践经验,使得教学质量得不到提高。由学生直接到教师的角色转变使得教师在进行授课过程中,往往照搬枯燥的理论知识,不利于激发学生的课堂学习兴趣,尤其是无法将企业的先进技术和创新文化、经营理念带到教学实践中去。加上绝大多数专业教师没有增加企业锻炼的实践机会,使得教师缺乏对软件技术开发专业知识的有效更新。软件教师极少的外出培训机会使得软件技术教师无法与一些先进院校的老师进行充分的技术交流,不利于教师专业技术的改进和教学水平的提高。 1.4软件专业教师的科研水平有限 由于软件专业教师的授课任务往往比较繁重,使得教师没有多余的精力和时间参与到科研项目中,加上对科研项目的了解比较浅薄以及科研课题和科研经费申请程序的复杂,使得软件技术教师申请科研项目的数量少之又少。校企共建的核心课程不够使得教师对科研课题的来源和申请科研课题的流程缺乏相应的了解。校企共建的软件技术专业核心课程的设置对提高软件专业学生的专业质量和学生的实践应用能力至关重要,这直接关系到软件技术开发专业的未来发展趋势和软件技术开发企业的未来发展道路。现阶段校企共建的核心课程较少,这很难满足软件技术专业的创新发展。校企共建的软件研发核心课程力度较弱,使得软件课程只涉及到覆盖面较小的课程标准和教学实训方案。此外,软件专家参与的时间与机会以及付出的精力和时间较少,使得软件专业教师的科研水平有限。 2软件技术研发专业产学研合作中存在问题的对策分析 2.1高新聘请软件技术专家和企业工程师进行实践教学 聘请软件技术行业专家和软件企业的工程师进行实践教学活动有利于激发学生参与实践教学的兴趣,为教学活动的顺利开展注入新鲜的血液,更加深刻地理解软件技术开发理论知识,深入感受软件研发企业的团队合作精神和软件设计的文化创新理念,进而完善我国的软件开发流程,使学生充分发挥自身的创造力和想象力,在产学合作过程中实现学习与实践的双赢目标。这不仅有利于使学生明确职业发展与生涯规划,还有利于为学生在毕业后进行就业选择提供便利的条件。 2.2在校园内建立校办企业 在校园内,为了实现软件学院教师和聘请的软件技术开发工程师实现对软件企业的共同管理和高效经营,高校可以对外承接软件技术研发项目,构建新型校办软件开发企业。[2]对外承接软件项目所创收的利益,在减去基本成本后,将剩余的利益运用在完善教学设备,引进先进的研发技术和科研项目的资助上,充分调动教师、学生和工程师、专家的创造力和研发的积极性,激发学生的研发软件的创新潜力,为建立优秀的高校科研项目提供优越的条件,实现了产学合作方式的优化创新。 2.3提升软件专业教师的整体素质 为了推动软件教学水平的整体提升,高职院校应当积极鼓励专业教师进行软件项目的深入研发,定期对软件专业教师进行定期考核和技术培训,提升软件专业教师的专业素质,推行相关的优惠政策激发研发热情,锻炼软件研发专业教师的实践能力,既能够提高软件专业的教学水平,又能够丰富软件技术开发的专业知识,提高软件技术开发专业教师接受高校培训的覆盖率,进而使软件学院能够积极选拔优秀的教学骨干,增加专业教师接受国外培训的机会,创新高职院校软件开发的办学理念,优化办学模式,有效传递国外先进的软件技术开发方法和理念。为增加软件技术专业教师外出培训和出国深造的机会,提高软件技术开发教师的教学水平创造良好的优越条件。 2.4提高科研水平,培养学科带头人 高校应当创设优越的软件专业建设环境,增加软件学生科学实践的机会,完善软件技术专业的人才培养方案,提升软件专业教师的科研水平。软件专业教师可以通过丰富自身的理论知识和实践经验,提高自身的科研水平,对学院教学水平的指标进行有效衡量,为提升软件公司的经营水平创造良好的经济基础条件,软件专业教师还应当完善科研项目,增加教师培训、进修和出国的机会,为创设优秀的教学科研项目打下坚实的基础,培养软件技术专业学生的创新能力和实践能力。高职院校还应当设计独具风格的校企核心课程,完善软件研发的人才培养方案,实现软件研发项目的高质量发展,实现教师、专家和学生充分有效的互动和合作。同时制定完善的软件技术专业授课计划和科学的课程标准,提供高质量的授课教案和校本教材。在教材编写过程中,可以共同发挥软件教师的创新潜能,实现软件企业元素和软件企业文化理念的充分融入社会实践,进而完善软件技术专业的产学人才培养模式。 3结语 综上所述,随着软件技术研发的不断发展和信息科学技术的不断更新和推进,我国高校软件技术开发专业产学合作模式的完善应当建立起新型的软件技术研发专业的教学体系,完善软件技术开发专业产学合作体系运行的解决方案,软件技术专业的教师和学生也应该鼓励科技创新,改进软件研发技术,丰富软件研发的实践教学方式,增加校办软件企业的经济效益和社会效益,提高现有专业教师的整体业务素质,为软件专业学生毕业后更好、更快地融入到企业环境中创造良好的条件。 作者:张丹 单位:哈尔滨剑桥学院 软件技术专业论文:高职院校软件技术专业毕业设计论文 一、高职院校毕业设计存在的问题 (一)对毕业设计的重要性认识不足 毕业设计一般开设在高职教育的第五学期,此时很多学生都已经签约了用人单位。学生在思想上会认为自己已经毕业,毕业设计只是个形式,只要把论文完成,按时上交就可以了。因此,很多学生在做毕业设计时态度不积极,课堂上有些学生占用大部分时间上网聊天、看视频或者玩游戏,有的甚至不来上课。等到要交作业的时候,随便从网上下载一篇毕业论文应付了事。在每年的毕业论文答辩会上,都出现过这样的情况:学生对自己的论文题目解释不清,对所开发系统的功能描述不准,对专家提出的问题回答不上来。这些都是因为学生没有充分认识到该课程的重要性。 (二)毕业设计选题不当 选题是毕业设计开展的第一步,也是关键的一步。好的选题能够激发学生的创作热情,提高学生的学习兴趣。但是目前有些高职院校的毕业设计选题陷入了恶性循环,主要存在两个方面的问题。一是题目陈旧没有新意。很多教师在毕业设计指导课上会习惯性地给学生一些参考题目,这些题目往往是连续使用了很多年的旧选题,严重影响了学生创新能力的培养和发挥。二是选题不准确。学生缺乏实际项目开发经验,很容易出现选题过大、过小或题目缺乏实际应用价值的现象。题目过大,系统功能复杂,技术要求高,超出学生的能力水平会导致设计任务完不成;题目过小,难度和工作量上就不能满足毕业设计的考核要求[2]。 (三)课程管理不到位 不少高职院校的学生在进行毕业设计时都已经到用人单位顶岗实习,这给毕业设计的管理带来不便。毕业设计的教学模式不同于普通课程,教师一般是定期对学生的工作进展情况进行抽查,对学生设计过程中遇到的问题进行集中答疑。对于已经到单位顶岗实习的学生,只能通过网络进行在线辅导。学生的选题不一样,难度不一样,加上自身素质的差异,他们在进行毕业设计时的工作进度往往是不一致的。由于缺乏统一的管理,最终毕业设计完成情况就各不相同,部分学生到最后草草收场,严重影响了毕业设计课程的教学质量。 (四)考核方式不科学 基于毕业设计课程的特殊性,很多高校都采用集中答辩的方式进行最终考核。答辩时,学生用PPT解说自己的毕业设计项目,评审老师检查毕业论文,进行提问。由于时间有限,评审老师主要检查论文编辑格式是否符合要求,论文是否有明显的抄袭痕迹,项目是否有详细的设计过程,项目是否实现以及专业知识提问能否回答正确。这种考核方式就给部分投机取巧的学生提供了机会。他们从网上下载现有系统,抓取操作截图,把网上相关的毕业论文重新编辑整理,蒙混过关。因此,毕业论文完成情况并不能反映学生的真实水平,这种考核办法存在很大的漏洞。 二、解决方法 (一)提高认识,端正态度 首先要让学生明白毕业设计课程的重要性。教师要利用第一节课给学生讲明白毕业设计的意义、主要工作任务、上课方式和考核办法,让学生对这门课有清晰的认识,在思想上高度重视起来。同时,在平时的课堂教学中,教师除了传授知识和技能外,可以有意识地强调本门课程在进行毕业设计时发挥的作用,让学生对自己所学的知识有系统的认识,为最终的毕业设计打下基础。 (二)解放思想,发展个性 在选题上,教师一方面可以给学生提出专业性的建议,另一方面要充分尊重学生自己的想法。具体做法是:一要充分了解新时代大学生的个性,综合考虑学生对所学课程的理解和掌握程度,关注学生感兴趣的热点话题,从实际出发,鼓励学生选择自己喜欢的课题;二是教师可积极吸收学生加入到自己的科研队伍,感受真实项目的开发过程;三是参加顶岗实习的学生可以选择企业的实际工程项目,在工作的同时完成毕业设计。这些做法可以充分调动学生的学习积极性,锻炼学生的创造力和想象力,充分发挥毕业设计课程的价值。 (三)细化任务,重视过程 细化毕业设计任务,重视过程化管理是保证毕业设计质量的重要手段。一般高职院校学生进行毕业设计可2~3人分组完成。按照自由组合的原则,教师可适度调整,保证每组人员搭配合理。比如两名优秀的学生可以帮助一名中等生;每组中既有编程能力强的,又有数据库设计好的,还有擅长文档编写的,尽量模拟企业真实情况,充分发挥每个学生的特长,做到各尽其才[3]。软件技术专业学生开发管理信息系统的工作任务分解及过程化考核指标如表1所示。(四)全程监控,量化考核毕业设计任务安排清楚后,实施有效的过程化考核手段是非常必要的。合理、详尽的考核措施可以更好地约束和引导学生完成毕业设计。这里,我们建议利用网络作为交流平台,对学生的毕业设计开展过程实施全程监控,对每一步的工作成果实行量化考核。教师首先教学任务安排;学生在规定的时间内提交阶段工作成果,教师审阅并给出修改意见;学生修改并上传修改结果,教师对本阶段作业以百分制打分;当整个毕业设计课程结束时,教师按相关比例进行换算,给出最终成绩。这种考核方式既给了学生充分的自由空间,又能有效督促学生保质保量地完成毕业设计。学生在专业技能得到综合运用的同时,也在自我管理、自我约束和团队协作方面得到了一定的锻炼,为今后进入职场打下良好的基础。 三、结语 毕业设计不仅是学生对所学专业技能的一次综合应用,也是学生职业素质的一次综合培养。积极正确的引导,新颖恰当的选题,规范开放的管理,科学合理的评价是提高毕业设计质量必不可少的四个要素。对软件技术专业学生而言,毕业设计的实施方式贴近企业实际项目开发,能鼓励学生主动参与研究,培养其严谨周密的思维和有效合作的团队意识,改变学生被动接受,疲于应付的学习状态[4],是有效开展毕业设计的重要举措。 作者:张丽景 单位:兰州石化职业技术学院 软件技术专业论文:商务英语专业软件技术论文 1.课程设置重复 不可否认,到目前为止,江苏省中高职衔接的尝试与实践已经取得了很好的成绩。但是,中职与高职课程设置脱节、培养目标定位雷同、课程设置重复等问题已越来越引起人们的关注。在本课题的研究调查过程中,笔者发现,很多中职院校的商务英语专业开设的课程门类繁多,且与高职院校课程体系有大量重复。不难看出,商务英语专业在高职阶段开设的课程,中职阶段已经开设并且课程门类更多,难度更大。而且一部分课程教学内容大同小异,难易程度区别不大,在职业技能要求方面也提出获取一种职业证书,通常都要求学生先获得单证员职业证书。这就在很大程度上造成教学内容的重复及倒挂、教学资源的浪费,学生学习动力的下降。 2.岗位群雷同 高博应用英语专业(商务英语方向)将就业岗位群定位在企事业单位、外贸行业的商务助理、文秘、外贸业务员、单证员等。在调查中,笔者发现中职学校的岗位群与高职出奇地相似,除以上岗位外,还有跟单员、报关员、报检员、国际货代业务员等岗位,与高职院校商务英语专业岗位群定位雷同。中职学院的专业基础课程设置以“必要、够用”为度,对商务英语专业的课程设置明显倾向于商务知识及实践课程,轻视英语听、说、读、写、译等专业基础课程的设置,忽视英语综合应用能力的培养,导致高职阶段学生的英语语言能力薄弱,与普高生相比,差距很大。再加上必要的人文知识缺乏,因此,大部分中职学生无法接受教师用英语授课,难以适应高职层次的教学要求,从而逐渐失去学习兴趣等。 3.建立以就业为导向的商务英语专业课程衔接体系 经过对毕业生的跟踪调查和市场调研,商务英语专业学生在外贸行业的发展通常会经历“新手-商务助理-商务主管”三个阶段。在对其主要工内作容分析后,笔者总结了十项典型工作任务:常用办公室设备操作、外贸企业工作流程、商务接待、客户开发与维护、商务谈判、企业及产品认知、单证制作、跟单、现场翻译及策划营销。通过对商务英语专业典型工作任务的确定,中高职院校可以根据工作岗位的晋升和工作内容的难易程度,在教育部门的统一规划下确定各自的教学计划,并在学分制、弹性学制、导师制等政策的协助下,最终建立以就业为导向的商务商务英语专业课程体系。 3.1积极推行学分制与弹性学制 苏州高博软件职业技术学院根据《教育部关于全面提高高等职业教育教学质量的若干意见》(教高[2006]16号)、《教育部关于在职业学校逐步推行学分制的若干意见》(教职成[2004]10号)的精神,结合学院实际情况,制定了“学分制与弹性学制管理实施细则(试行)”。其中,学分制是以学生自主学习为核心、以学分为学习份量、以绩点为学习质量、以修满规定学分为毕业标准的一种教学管理制度。弹性学制是指学习年限有一定的伸缩性的学校教育教学模式。它是在学分制的基础上演变而来的,是学分制的另类发展和表现。弹性学制的最大特点是学习时间的伸缩性、学习过程的实践性以及学习内容和学习方式的选择性。也就是说,学生可以分阶段完成学业,允许学生申请保留学籍1~2年从事社会实践、工学交替、半工半读等活动,实行学分累积制度,所取学分在校长期有效。中高职衔接的弹性修业年限为2~5年(含休学),不论学生提前或推迟毕业,其学制均按基本学制计。高职学校认可学生在中职阶段所修课程的学分,并且同意用获得的证书换取学分。因此,如果商务英语专业的学生在中职阶段已经考取单证员证书,在高职阶段即可以直接获取“国际贸易单证实务”的课程学分。打通学分制通道,实现中高职学校学分互认,是解决中高职目前课程重复的一个行之有效的举措。弹性学制的实施是以学分制为前提的,要实现弹性学制的中高职衔接模式,就需要高职院校通过开设大量选修课的方式,拓宽中职学生的专业知识面。因此,教师综合素质的提高及企业工作经验是学分制顺利实施的有效保障。 3.2实行导师制确保学分制及弹性学制的实施 实行导师制,主要是指在教学计划的实施过程中,聘任导师从专业角度指导学生学习,为学生提供专业上的指导和服务。着重指导学生选课、科技创新、社会实践、择业就业等各项活动。提高学生综合素质,引导学生全面发展(苏州高博软件技术职业学院导师制暂行办法(院办字[2013]54号)。辅导员制和导师制,两者各有分工、相互配合、相辅相成。辅导员主要从学生的思想政治教育、学风建设、日常生活、社会实践等方面进行管理,着重于学生的日常管理,导师则是从学生的专业学习、职业发展等方面进行管理,着重于学生专业学习的指导。学校聘任熟悉教育、教学规律,具各一定的专业水平和合理的知识结构,具有较强的科研能力、组织能力和学习指导能力,了解本专业的专业教学标准培养,熟悉本专业教学计划、各教学环节的相互关系及全部培养过程的教师担任导师,原则由硕士研究生(含在读)或中级以上职称的教师、教学管理干部担任。实施导师制,导师可以根据中职生源的情况,进行专业指导,一方面可以确保学分制和弹性学制的顺利实施,另一方面可以进一步巩固中高职衔接体系。 3.2加强中高职院校同类专业之间的沟通 目前,中高职院校之间的沟通大多停留在院校的层面,即使是在同一城市或同一行业的高职院校和中职院校之间的同类专业之间也鲜有交流,彼此对对方的课程体系设置不了解,严重影响了中高职教育的内部衔接。中高职院校应该积极建立多渠道的信息沟通,开展多形式的合作,共同实现双方教育资源的共享(代唯良、钟永发:2010)。中职院校应该树立可持续发展观,为中职生的进一步深造和高技能性人才的培养奠定良好的基础,并且在课程设置上既要重视商务专业知识的教学与实践,又要重视语言能力的培养。高职院校应密切关注中职院校的课程体系,开设大量专业选修课,并实行中职生与普高生分开培养的政策,根据生源特点区别对待,因材施教,不能一刀切,苏州高博已经于2013年全面开始将来自中高职不同生源的学生分班授课,并执行不同的教学计划。 3.3加强教材建设 以就业为导向的商务英语中高职课程体系衔接的实施在很大程度上依赖于教材的衔接。中高职院校可以组织相关专家编制商务英语专业中高职衔接教材。一方面给中职生源的学生往高职过渡提供一个衔接的桥梁,另一方面可以让学生对应培养规格的新知识、新技术,进一步提高课堂教学效果。 4.小结 建立以就业为导向的中高职商务英语专业衔接体系,需要高职、中职及政府教育部门多方的努力。高职商务英语专业应将中职生与普高生区别对待,加强与中职院校的深度沟通,通过学分制、导师制等方法努力使中职学生尽快适应高职的课程体系,中职院校也应该通过各种有效的途径实现与高职院校的良好沟通,设定低于高职的培养目标,教授难度相对低的教学内容,打通学生上升的渠道。当然,政府教育部门的统一规划指导是实现商务英语专业中高职课程体系有效衔接的重要力量。中职和高职作为现代职业教育体系中的两个重要层次,实现有机衔接是建立具有中国特色的现代职业教育体系必然要求。因此,打破原来中职、高职两个阶段各自为政的局面,实现中高职一体化的培养目标和课程体系,明确两个阶段的培养任务,充分发挥中职和高职在职业教育人才体系中的教育资源优势,是实现职业教育的可持续发展的必然趋势。 作者:马亚丽 马乐乐 单位:苏州高州博软件技术职业学院 软件技术专业论文:复合专业模块式软件技术论文 一、专业复合的研究 为适应社会对各类人才的需求,各高校对复合型人才培养进行积极探索,采取辅修、双学位、第二学位、大类人才、专业复合培养等模式,为学生提供跨学科领域学习的机会。但从复合的含义来讲,专业复合培养模式与其他四种模式有着本质区别,辅修等其他四种培养模式,虽然也涉及到不同的专业,但学生只是进行两个独立专业课程体系的学习,其侧重点是学习不同学科的专业知识,而专业复合培养模式其侧重点强调的是两个专业知识点的交叉融合。根据对中国知网“教育与社会科学综合”领域的相关论文统计分析,2008年1月至2012年6月期间,关于“复合人才”,可以查到256条记录;关于“复合专业”可以查到142条记录。其中多数文章只涉及复合型人才定义、教学方法、教学内容等方面容,仅有50余篇文章涉及专业复合型人才培养。通过对上述文章的总结可以发现,目前我国复合型人才培养模式分为三类:1.技术与外语复合人才技术与外语复合型人才是当前复合型人才培养比较多的一种模式,该模式主要分为两种形式:其一,以外语专业为主体,改革单一型外语人才培养模式,在精通外语的基础上,同时兼备商贸、旅游、法律等一门或多门专业知识的综合性人才,外语在整个课程体系中保持着相对稳定的地位。其二,英语作为一种技能,依附于其他各种应用性专业,主要是培养学生运用英语语言从事相关工作的能力。2.技术与经管复合型人才这种人才培养模式,主要是将传统专业知识与管理类知识,如金融、贸易、经济、营销等相结合,主要培养相关专业领域的既懂技术又懂管理的复合型人才。3.技术与技术复合型人才这种人才培养模式,一般来讲主要是相近学科或跨学科专业复合,强调学科间知识融合,这种培养模式的课程体系有别于任何单一专业的课程体系,突出强调的是专业知识融合。比较普遍的是传统专业与计算机类专业复合,培养运用计算机技术解决不同行业领域问题的复合型人才。 二、模块式教学模式简介 模块式教学模式源自美国,其借鉴工业生产中的模块化方式,将原有学科课程体系结构中的知识分解成一个个独立的知识点,再将知识点按其内在逻辑聚合成相对独立的单元,然后根据不同职业岗位群或技术领域的职业能力需要,将关联的单元组合成教学模块,通过调整单元数量和组合方式,从而实现教学内容的更新和专业方向的调整。目前,模块式课程体系的构建方法,已逐步被我国职业教育界接受和采纳,根据对中国知网“教育与社会科学综合”领域的相关论文统计分析,在2008年1月至2012年5月的论文中,以“模块式”为关键词进行搜索,可以查到345条记录,涉及教学模式改革、课程体系构建等多个方面,但按照“模块式”教学模式的理念和方法,在软件技术专业方向上构建的复合式课程体系,至今还未见有学者发表相关论文。 三、构建软件技术复合专业模块式的课程体系 软件技术(工程造价软件应用方向)属于技术与技术复合型人才培养类型,与大连交通大学的传统专业+软件工程专业的双领域复合型人才培养有相似之处,但两者从培养层次、培养目标均不相同,一个是高职高专层次以培养实用技能型人才为主,一个是本科层次以培养培养既掌握传统专业知识又掌握软件技术的复合型高级人才;同时在拟定的课程体系构建方式上也不尽相同,一个是按照兼顾职业能力和可持续发展能力的要求,校企合作构建的“能力本位”模块化课程体系,一个是以培养应用研究型人才为主的学科课程体系。软件技术(工程造价软件应用方向)课程体系围绕工程造价、软件技术、外语应用能力、职业素养和实训5条主线设计,将整个课程体系按照模块式进行组合,软件专业的课程体系分为外语模块、职业素养模块、基本能力模块、工程造价模块、软件技术模块和综合实训模块,模块化的课程体系设置能够适应软件产业技术更新快的特点,其体系结构如图1所示。 四、结束语 本文讨论了复合专业模块式课程体系的构建,并以软件技术(工程造价软件应用方向)为例,构建软件技术复合专业模块式课程体系。 作者:唐俊 江文 单位:湖南科技职业学院
电子商务软件开发探析:电子商务软件开发技术课程的教学改革与实践 [摘 要]电子商务软件开发技术是计算机专业的方向课程,教学方法的研究与改革是一个牵涉到教学工作方方面面的系统工程。它涉及课程设置、教学方法、教学手段等研究内容。本文阐述了课程的教学改革方法,并提出了加强学生实践动手环节能力培养的观点。 [关键词]交叉学科 课程体系 课堂案例 考核改革 电子商务软件开发技术作为Internet新的应用领域,已经逐步地走向商务活动的各个环节和领域。而电子商务的发展也使得社会对电子商务人才的需求更为凸显。[1]由于计算机专业的特点以及需求的不同,针对计算机专业的电子商务软件技术开发方面的课程相对比较单一,教学研究和教学方法还较为保守,正是在这样的前提下,我们从计算机专业的角度针对该课程实行了一系列的改革措施。 一、教学改革的思路 电子商务软件开发技术作为一个新的学科领域,是建立在多学科基础上的交叉学科,涉及计算机技术、信息技术、经济管理等多个学科。[2]因此,要求学生应具有扎实的计算机技术、信息技术和系统全面的经济学和管理学知识,能将技术与管理有机地融合;能把握新型学科的特点,了解该领域的主要研究成果,关注企业信息化的发展进程及电子商务在企业的应用进展;毕业后能在相关部门从事企业级电子商务的开发、规划以及应用和管理工作,能够成为企业制订和实施电子商务战略的复合型人才。 我们的教学改革思路是从电子商务系统的软件实现角度出发,以面向复用的构件化设计思想为基础,将电子商务系统实现技术按照建设流程进行划分,将Web技术及信息安全技术分为两大技术支柱,以电子商务的交易模式、电子商务的安全技术、基于第三方支付平台的电子商务支付技术为辅助,结合国内外的电子商务平台开发的实例来让学生系统地学习这门课程,着重研究构建Web技术和电子商务安全技术以及企业级电子商务系统的开发和实现技术, 从而为将来顺利开展计算机学科的电子商务课程体系的教学提供良好的主观条件。 在教学改革中,我们设定的目标是总结出一套计算机专业的电子商务软件开发技术课程教学的完整实施方案与管理办法,从而为在计算机专业大量开设电子商务课程体系的核心课程奠定基础。同时,提高学生学习的主动性,改变课堂教学以教师讲课为中心的教学模式。教学改革的具体思路包括以下3个方面。 1.理论教学方法研究: 新型学科课程课堂教学法研究、课堂案例比例问题研究、教学中实验课的改革、学时矛盾解决方法研究、新型学科课程教学的考试方法研究、交叉学科课程在专业课程中的最佳比例研究、教材建设等。 2.实践教学方法研究:组建学生实践团队以及结合项目练习的方式,加强学生工程实践的动手能力。 3.现代教学手段研究:新型学科课程教学中现代教学方法的应用研究。 在课程的教学改革实践中,必须解决以下3个关键问题。 问题1:在计算机的相关专业中有不少课程为电子商务软件开发技术课程提供了很好的教学条件,但学生对前续课程的掌握及动手能力究竟到了何种程度? 问题2:在教学实施的过程中,教学的重点仍然是计算机专业知识,相关学科的知识不是重点。因此,在电子商务软件开发技术课程的授课环节中,教学的重点和难点究竟采用何种比例更为合适? 问题3:实践教学环节相对薄弱,难免让学生有读懂了书本,却不太能动手的感觉。因此,如何提高学生动手实践的积极性和主动性,让学生更好地掌握课程内容? 二、教学改革的实施 首先确定课时比例,根据目前的计算机专业教学环境与教学条件进行充分论证,确定出课程教学课时中理论教学和实践教学的合适比例;其次,根据交叉学科课程的特点,结合一定课时的学生课堂分组案例的以及课后的攻防模拟演习,使得学生具有系统分析、设计及技术实施的基本能力,可以进行企业级电子商务平台的规划、技术开发和应用管理;再次,组建学生的课程实践团队,结合项目进行练习,多方面锻炼学生的动手能力,使得他们具有信息组织、分析研究、传播与开发利用的基本能力,并能把握本课程作为新型学科课程的特点,具有一定的科研能力和实际动手能力。 (一)课堂教学改革 课堂教学针对课程的重点、难点进行分析、讲解,也是对相关知识进行扩展的平台,课堂教学的好坏直接影响教学效果。因此,在课堂教学中可采用以下方式。 1.采用多媒体授课,提高学生的学习兴趣,增加学生的知识信息量,较好地把原先很难在课堂上讲授好的内容体现出来。对多媒体教学过程的设计,既体现“启发”的主导作用,又体现知识性。讲义做得细致且精简,还补充了许多跟课程知识相关的重要链接。使学生在课后能通过预习和复习讲义内容,深入地理解课程的内容。 2.采用先进的国内外教学理念,注重培养学生的动手及动脑能力,增强课堂教学的互动性,增加“课堂案例”的环节:将学生进行分组,每组6-8人,教师针对每章的内容布置课堂案例,学生以分组的形式在课后进行讨论和模拟对攻演习,结合课堂所学的知识,形成分组报告以及模拟攻防后的效果截图,做好案例的电子文档和PPT演示文稿,然后在课堂上由每组派出一名同学进行案例,教师随堂进行分析和评定。这一环节不但可以培养学生的自学能力和实践动手能力,而且也加强了学生对专业技术知识的了解,调动了学生学习的主动性和积极性。 3.增加课堂讨论的环节,布置了相关的讨论题,特别是针对课堂案例部分,让学生分组讨论如何设计这个案例,并以小组为单位给出设计方案。在课堂讨论过程中,学生们各抒己见,互相学习,教学效果较好。 (二)实践教学改革 实践教学对于提高学生的综合素质、培养学生的创新精神与实践能力具有重要的作用。通过组建教学实践团队和结合项目练习的方式,多方面地锻炼了学生对电子商务网站平台建设的动手能力,具体实施方法包括:增加安全和攻击方面的演练,围绕工程开发实例,合理设计实验教学内容,撰写详细的实验指导书等。 (三)课程考核改革 改革考核方式,以考核学生的动手能力为主,测试学生在教学过程中对知识点和难点的掌握程度。根据课程本身的特点和性质,灵活运用开卷、闭卷、开闭卷结合、答辩、实践技能操作、撰写技术报告、提交作品等多种考核方式。考核形式推行在多个阶段(平时测试、作业测评、课外阅读、社会实践、期中考核、期末考核等)、多种类别(校内能力考核、社会等级考核等)的考核制度改革,强化学生课外学习。增加论文、作业、课堂表现及参考阅读等成绩考核中的比重,以此提高学生的专业基本能力与综合素质。 (四)构建案例库和运用网络教学系统 搭建案例库,采用启发式案例教学方式;改革传统教学模式,提出了主动式、网络集成化教学模式,采用基于网络的多媒体辅助教学系统,针对各教学环节设计相对独立的、方便可控的功能模块,通过有机的网络集成提供全程辅助教学服务,支持多层次、多线程学习模式,为学生提供丰富的数字化资源;通过网络交互,增加交流、反馈等机制,突出网络多媒体辅助教学中以人为本、自主学习的教学理念。 三、结束语 随着计算机科学的迅猛发展,社会人才市场对高校计算机科学教育提出了更高的要求,对新型交叉学科课程的推广教学已是势在必行。[5]电子商务软件开发技术课程的教学改革涉及课程设置、教学对象及任课教师、教材选择、教学方法、教学手段等研究内容,对学生动手能力的培养起到很好的带动作用。大部分课堂教学都是以教师讲课为主,学生被动地接受知识,较难调动学生学习的积极性。本课程在教学改革中通过课堂案例和攻防演习,使学生有了更多的动手和动脑的机会。同时,通过本课程的学习,学生的知识面更广了,而且还能把握交叉学科课程的特点,了解电子商务领域的主要研究成果,关注企业信息化的发展进程以及电子商务在企业中的发展应用。我们衷心地希望电子商务软件开发技术课程教学改革的成功能为计算机专业其他交叉学科课程教学的进一步开展奠定坚实的基础。 电子商务软件开发探析:电子商务园区软件开发项目应用 摘要: 眼下随着电子商务在国内外的蓬勃发展,一批新兴的电子商务园区在国家政策的扶持下如雨后春笋般拔地而起。对于这些创业初期的企业而言,在有限的成本控制下,开发一套适合企业发展的企业管理软件显得尤为重要。然而,在传统的项目管理模式下,软件开发周期长,开发成本高,项目返工率高等一系列因素成为了制约企业前进的绊脚石。20世纪中期,著名的管理学家彼得•德鲁克提出的目标管理法很好的解决了这些问题,本文通过分析这类企业的特点阐述了引入目标管理法的必要性和实际效果,以此给这类企业将来的管理模式以启迪。 关键词: 电子商务园区;目标管理法 电子商务是时下一个比较时髦的名词,它起源于20世纪60年代,由美国运输数据协调委员会即TDCC提出第一版的电子数据交换即EDI标准。 [1]然而那个时代的电子商务由于存在地域的局限性其实质仅仅是电子化取代纸张化的过程。随着互联网的普及,越来越多的普通大众也开始接触到电子商务,20世纪末开始电子商务逐渐由公司间的贸易形式转变为面向大众的在线电子交易平台,这一方面是科技进步的必然结果,也体现了当前市场对电子商务的需要。而我国由于庞大的消费群体成为了世界上最具潜力的电子商务市场,伴随着国家鼓励创业的优惠政策,一大批依托电子商务企业创立的电子商务园区正逐渐在大中型城市里迅速崛起。现代化的企业管理当然也离不开先进的科学技术,这其中,ERP系统的运用更是为我们大家所熟知。早在1977年,美国著名的生产管理专家奥利弗•怀特就提出了ERP的原型——MRP。[2]随着时代的变迁,以及科技的进步,目前广大企业的业务借助互联网正越做越大,产生的数据和管理的范畴也越来越多,人们对于象ERP这类的软件的需求也变得越来越迫切。 当前市场中,比较知名的ERP软件提供商如国外的SAP、Oracle以及国内的金蝶、用友等,依托庞大而专业的开发团队,他们的产品设计专业度高,企业需求匹配度高,当然,直接购买的成本也很高,这对于众多创业初期的电子商务园区来说将是一笔非常可观的支出。同时,由于这些产业园区的业务需要,他们需要的不仅仅是传统模式下对企业的自身业务的管理,更需要对客户的经营状态作出及时的分析和预判并及时作出调整,这需要软件本身能及时适应客户的需求变化。由此,固定的软件模块已经满足不了企业的需要,二次开发甚至是量身定做的ERP系统成为了许多电子商务园区的理想选择。 开发一套成熟的ERP系统,需要庞大的开发团队做支撑,也需要经历一个较长的研发周期。根据调查,一个中等规模的研发团队,开发一套基本的ERP系统至少需要4个月的时间。在传统的项目管理模式下,管理者大多应用关键路径法预留了较长的项目时间以应对可能出现的问题。然而,这种管理模式依然摆脱不了功能模块大量返工,客户需要得不到完全满足,项目人力资源调配不合理等诸多问题,由此给企业自身以及开发团队都造成了大量的资源浪费。 20世纪中期,著名的管理学家彼得•德鲁克在其名著《管理实践》中提出了目标管理这个概念。目标管理法是一种以目标的设置和分解、目标的实施以及完成情况的检查、奖惩为手段,通过员工的自我管理来实现企业目的的一种管理方法。[3]通过目标管理法,项目管理者能将原来的宏观目标按照自顶向下的原则层层拆分。以ERP项目为例,开发团队的最终目标是完成一套ERP软件,而在实际制定目标的过程中,项目经理可以依据功能模块或者开发阶段先进行大致的目标分解,然后再将每一个开发阶段或者功能的具体实现进一步细分,落到具体的开发者身上。而这整个制定目标的过程,都是由项目组的上下级共同参与的,不仅提高了目标拆分的合理性,减少了开发工作的返工概率;也能针对不同员工的实际工作效率制定相应的开发任务,提高员工的工作效率;同时,由于目标分解较细,先完成的开发人员可以马上投入到其他的任务中,相比较传统管理模式下等待某一批任务完成整体前进的工作方式在人力资源的利用率上也大大提高。 目标管理法在电子商务园区软件开发项目中的另一个优势在于它能对客户需求的变更做出及时有效的响应。传统管理模式下的项目流程图几乎无法更改,一旦关键路径上的某个节点出现变更,则几乎整个计划需要重做。在目标管理法的基础上,由于任务与任务之间大多处于平行的模式,某一个目标的更改对于其他目标的实现产生的影响较小。这种模式更能适应电子商务客户的需求变更以及技术领域企业不断进步的技术对软件的进一步需要。目标管理在人力资源管理的领域所起到的作用也不可忽视。传统的项目管理模式,大部分的项目组只有中期和收尾阶段进行绩效考评,而这种考评模式容易带来的直观问题便是问题发现晚,返工不及时影响整体项目进度,项目奖金发放周期长影响员工积极性。而目标管理法则不同,每个任务或者每一组任务结束进行考评,员工可以及时根据发现的问题自我调整,相对较高频率的奖金发放更是对员工工作的肯定从而提高员工的积极性。 实践证明,采用了目标管理法后的项目开发周期短,员工工作效率高,项目开发成本低,客户满意度高。这些都是项目管理不断进化所带来的可喜变化,也是适应现代化企业需要的管理方法。在电子商务园区的软件开发项目中应用目标管理法所带来的成功,不仅仅让我们看到了以ERP为代表的软件技术的进步,也让我们的项目管理者看到了先进管理思想给企业带来的巨大的商业利益和进步的空间。相信以目标管理法为代表的管理理念的革新必将推动我国企业管理走向更高的台阶! 作者:丁马宗 单位:上海交通大学 电子商务软件开发探析:电子商务软件开发风险管理初探 1商务软件开发项目可能存在的风险 (一)人力资源造成的风险 人力资源是电子商务软件开发过程中必不可少的因素,但是在电子商务软件开发项目过程中如果不能很好的开发人力资源也会给软件开发项目带来很大的风险,主要表现在以下几个方面:首先,由于激励措施的缺失,造成了开发项目的工作人员没有很高的积极性,造成生产能力的低下,而另外,还有某些可能对于工作环境的不适应或者是由于对于软件工具的运用不熟悉,需要更多的时间适应,造成软件项目的开发不及时而出现风险;其次,项目组各个成员之间由于思路理念等不一致,造成在实际中可能出现冲突,再加上沟通不畅而导致设计出的产品不佳,接口部分出现不匹配,重复的设计工作等增加工作量;再者,开发项目的人员不足,并且流动性非常大,特别是开发项目负责人的流动性比较大,再加上开放项目的储备人员不足与具有专业技能的人员等,不能及时的补充由于人员流动而在成的缺口,这也给软件开发项目带来不稳定的因素,增加项目的风险机率;最后,在电子商务软件开发项目的过程中撰写报告所用的时间比较长,也给项目带来较大的风险。 (二)技术问题造成的风险 软件技术不断的发展,但是在软件开发项目中缺少经验丰富的人员,这就可能因为开发项目由于缺乏技术技巧影响整体项目的进程以及最终的结果,给开放项目带来更大的风险。比如说:在功能的设计方面,由于考虑的不够全面,造成设计的产品存在性能问题,无法达到既定的要求,还比如:由于缺乏经验丰富的技术人员,不能及时的对新技术与开放的方法等及时应用等,这都在一定的程度上为电子商务软件开放项目带来很大的风险。在软件开放项目的初期,识别到风险,才能采取更有效的手段预防风险的发生。 (三)外部原因带来的风险 首先,市场的需求的变化给开发项目带来的风险,需求是软件开发项目进行的基础,但是外部的需求是不断变化着的,这给项目的开发带来很大的不确定因素,在开放项目的进程中,如果不解决这些不确定的因素,就会造成项目不能成功的完成,给项目开发增大了风险,与需求相关的一些风险如果采取不作为的能就可能制造出错误的产品,甚至是劣质的产品,不管是什么产品都加大了项目开发的风险。其次,政府部门推出的相关政策以及要求发生变化给项目的开发带来很大的风险;再次,项目外包的部分不能达到质量的要求,造成不能按要求及时交货,这也给项目开发企业带来很高的风险。 (四)资金与管理带来的风险 首先,软件的开发项目的范围发生了变化,导致资金的紧缺,而新的资金不能及时的到位,势必影响项目的成功,给项目带来很大的风险;其次,管理上带来的风险。主要是由于高层的管理人员缺少管理方面的经验,没有对市场需求等进行调研,造成决策不符合实际要求,造成项目的进度缓慢,项目开发时间比较长,另外管理部门的审核时间比较长,给项目的开发造成了更大的风险。 2商务软件开发项目风险管理工作的建议 只有及时的发现风险,才能及时的采取有效的措施规避风险,进而降低风险发生的概率,可以采取以下几种措施规避风险。 (一)注重人力资源的管理 首先,控制人力资源的成本,电子商务软件开发项目需要较高的人力资源成本,但是在实际的项目开发中,没有把人力资源的变动因素考虑到人力成本中,更没有把人力资源流动与工作量两者相结合的考虑,而是为了保障项目的质量与进程,不断的督促项目开发人员进行超时的加班或者追加人力。但是长期的加班会造成工作的效率更低。比如说:由于劳累可能对于项目的开发不够认真导致出错率更高,造成项目质量下降,这就需要再次返工,不断增加了工作的时长,而且会延误工期,而不断在项目中增加新的人力,也会由于新的工作人员对工作环境的不适应或者需要原有工作人员教授指导,也可能会出现延误工期的情况。而且这两种情况都会造成人力成本高于实际计划的成本。如果出现人力资源不足的时候可以考虑把一些任务或者是子项目采取外包的方式,进而减少项目的压力,但在外包之前要对外包的公司进行相应的考察,避免出现质量与进度体导致的风险。还可以采取部分项目人员为兼职的形式,比如说:高级技术人员以及专家等这样也可以在一定程度上节约用人的成本。其次,电子商务软件的开发项目会需要不同能力以及不同角色的人进行合作,为了保障工作质量以及工作效率,要合理的规划项目人员的管理与分工,同时还要注意选择有业绩的项目成员,并根据成员的特点进行合理的分工,从而规避成员差异带来的风险。最后,加强团队之间的沟通,团队的组建需要不同能力的人,既要有技术专家,又要有市场销售能力的人员,还要有管理方面才能的人员,只有各尽所能,才能促使团队更好地团结起来。另外还要建立良好的沟通平台,最好有完善的信息系统,促使成员之间加强联系。还要明确成员组织的结构,使每一个项目问题都能够及时的解决,从而促使风险管理工作更有效的进行。 (二)制定合理的项目计划 电子商务软件开发项目的管理估算是很必要的工作,要结合项目人员的综合能力、任务、资源以及外部条件等相关因素,才能使制定出来的计划与实际的情况相符合。但是由于电子商务软件开发项目没有更多的经验可以借鉴,在加上客户没有明确的需求,运用的又是比较先进的工具与技术、成员组成又比较复杂,市场的变化有比较快。如果没有制定科学的计划就会造成项目的进度与质量难以得到保障。项目经理在制定计划时可以采取分阶段制定的方式,先计划近期的任务与细节部分,可适当的设计少量的远期任务,从而使计划更加灵活多变。对于客户的需求变化,可以在指定的计划中留有余地,在与客户进行沟通,进而明确客户的合理需求,这有这样才能更好对风险进行管理。 (三)建立风险管理工作系统 首先,做好风险管理文档,项目经理对于项目的规划中一般不会专门做风险管理工作的文档,即便有风险管理文档,也是与项目的计划书合并在一起,甚至有些项目经理仍是不到风向管理工作的重要性,在风向管理环节只做表面的应付工作,不能及时的防范风险的发生。电子商务的软件开发项目确实是时间紧任务重的一项工程,但还是希望项目经理抽出一些时间来完善风险管理工作体系,创建风险管理的文档,并在项目的开发进程中对项目做好风险监控的工作;其次,做好风险管理的知识库系统,项目经理一般在项目结束时,不会对项目的进行细致的总结,这是不利于对电子商务软件开发项目的经验的累积,这就要求项目经理在项目结束时,把风险的应对策略与经验添加到风险管理工作的实时库系统,从而更好地避免在今后的项目开发中出现同样的问题,为风险管理工作增加经验积累,更好的规避风险。 3、结束语 总之,随着电子商务的快速发展,电子商务软件的需求越来越多复杂,这就造成电子商务软件开发项目的存在更多的风险问题,这也就要求在项目风险的管理工作中寻求更多的创新方法,从而更好规避项目开发的风险。 作者:何涛 单位:柳州市柳邕农副产品批发市场有限公司
软件质量管理论文:软件质量管理体系研究 [摘要] 随着软件行业的发展,软件质量越来越成为人们关注的焦点。本文从软件质量管理体系出发,结合笔者自身多年的软件质量管理经验,对现有软件质量管理体系进行了总结和归纳,提出了软件开发过程中质量控制的具体改进方法,并将全面质量管理观念融汇于实际软件质量管理日常事务之中。 [关键词] 软件质量管理体系 改进 全面质量管理 持续发展 一个开发团队要提高效率,就需要思考目前的管理活动中有哪些要素是可以改进的:如何把一些事务性的操作变得自动化,从而节约人力;如何找到更好的方法,让开发过程更为合理,更注重软件的质量;如何在团队中传播优秀的思想,让团队成员不断地学习和进取,自发地改进过程。这些美好的愿望几乎是所有方法论和各种认证的共同心声,但要完全做到可就太难了。在本文中,提出了一些优秀的实践,优秀实践均是来源于软件开发界中的一些新思路和新理论,它们能够为以上愿望的达成起到正面的作用。在组织中引用这些实践决不是一个容易的过程,但它们确实非常有效。这些实践包括:建立日创建、测试驱动开发、建立核心框架和面向组件进行编程。 一、软件开发的有效管理:日创建 一个组织应当拥有一个有效的工作流程,这个工作流程能够指导软件开发的进行。这个流程应当是具体的、可操作的。随意的计划和从来不遵循的进度决不是一个有效的工作流程。日创建实践提出了一种对开发过程进行精细管理的方法,它是量化软件管理的基础。有了日创建,你会发现计划的制定和进度的监控是非常容易的一件事情。 我们传统开发软件的流程一般是这样,理解领域问题,然后分配任务,由不同的人负责不同的软件部件,在开发完成之后,再把各人的部件整合起来,形成完整的软件。这个思路看起来并没有什么问题,但是在实践中却问题多多。 首先,这种方式适合开发人员之间工作彼此没有交集的情况,以前这种现象很常见,但是现在,随着软件规模的扩大、分工合作的加深,开发人员间的相互依赖程度越来越高,这种清晰的职责划分已经变得越来越难了。 其次,在软件集成时,往往会出现各种各样的问题,可是却很难发现到底问题在哪里?公说公有理,婆说婆有理。每个人的代码都没有问题,结合到一起就出现大量的问题。 所以日构建就将平时难得一见的集成工作转换成频繁进行的一件工作,从而使得原先如同噩梦般的集成变成了一件简单的工作。这也是很容易理解的,如果集成工作几个月才进行一次,谁能够记起几个月前的细节呢?但是如果集成以天,甚至以分钟为单位进行,排除bug就变成一件很容易的事情了。 二、测试驱动开发 软件质量的根源来源于测试,测试做好了,软件质量就会好。这是毫无疑问的。问题的关键在于怎么做测试,才能保证测试的投入能够带来软件质量的有效提升。测试驱动开发正是为了解决这个问题而出现的。它不是一个完整的方法论,可以和任何一种开发流程进行融合。测试驱动开发不但能够改善测试效果,还能够改进软件的设计。 测试驱动开发起源于XP法中提倡的测试优先实践。测试优先实践重视单元测试,强调程序员除了编写代码,还应该编写单元测试代码。在开发的顺序上,它改变了以往先编写代码,再编写测试的过程,而采用先编写测试,再编写代码来满足测试的方法。这种方法在实际中能够起到非常好的效果,使得测试工作不仅仅是单纯的测试,而成为设计的一部分。 在编写程序之前,每个人都会先进行设计工作。可能有些人的设计比较正式,绘制模型,编写文档。有些人的设计只是存在于脑海之中。且不论设计是精细还是粗糙,你都为随后的编码活动制定了一个标准。这个标准的明确程度和你的设计的细致程度有关。但应该承认,这个标准是不够细化的。因为你的设计不可能精细到代码级的程度。而标准不够明确则会产生一些问题,例如,在编写代码的过程中,你还可能会发现原先的设计出现问题,从而中途改变代码的编写思路。这将会导致成果难以检验,进度难以度量。 既然以设计为导向的标准不够明确、不够具体。那什么样的标准才是合适的呢?只能是代码。因为代码是最明确、最具体的。所以测试优先的本质其实是目标管理。编写测试代码其实是在制定一个小目标。这个小目标非常明确,它规定了你需要设计的类、方法,以及方法需要满足的结果。这些目标制定完成之后,你才开始编写代码来达成该目标。测试的目标要比设计的目标粒度更小,但是成本上却更为经济。 测试优先是软件开发中一种细粒度的目标管理方法,通过明确的目标,推动软件开发的进行。 三、建立核心框架 框架是一种具有高度重用性的软件,这个特性决定了它非常适合成为软件组织积累知识的一种有效手段。传统的知识积累的方法是文档,但是文档容易产生歧异,开发人员往往也不愿意去阅读和理解文档。框架提供的是一种综合的手段,包括文档、模型和代码。更容易理解,更重要的是,开发人员必须在日常的工作中使用框架,这使得他们对框架中的知识非常熟悉,并根据工作的需要来改进框架。 四、面向组件编程 有效的组织在于有效的分工。体力活动容易进行分工,脑力劳动则比较难,而软件开发似乎就更难了。所以,长久以来我们都习惯采用以功能块为单位的粗粒度划分方式。面向组件编程采用更加细密的划分方式,并以服务作为组件之间相互依赖的契约,不但定义了组件和组件之间的关系,也规定了组件开发者、组件使用者、组件测试者的权利和义务。从而能够进行软件开发工作的分配、管理、QA等工作。 软件质量管理论文:软件质量管理6大最佳实践 软件形式上是产品,本质上是服务,是高科技计算机信息技术和人类创新智慧的结合。在软件产品的研发过程中,软件质量一直处于最为核心的地位。ISO9001标准和CMM原则被誉为软件质量管理的圣经,是当今国际上最推崇的软件质量改进方法和保证措施。然而,很多实施ISO9001、CMM3级的企业过于强调过程管理,忽略了“人比过程更重要”这一原则,形式重于实质,这一做法在国外已受到猛烈抨击。如何更好地将质量管理理论和企业经营生存之道密切融合,走出一条独辟蹊径、立竿见影的“质量革命”之路,是摆在诸多企业高管面前的重要课题之一。这里总结了软件项目质量管理的6大最佳实践,供同行参考。 全面管理,塑造质量文化 全面质量管理即为全员、全过程、全方位的质量管理,它具有以下基本特点: 1.全员:质量控制从少数质量保证人员扩展到企业的所有人员。质量控制管理不是质量保证部门一个部门的事情,需要全员的大力支持、准确理解、精确执行。 2.全过程:将质量控制、质量检验、质量统计延伸扩展到整个产品生命周期。 3.全方位:全面运用一切有效方法,全面控制质量因素,如软件开发成本、进度、可靠性、安全性等。 全面质量管理可以归纳为两大基本原则: 首先是以满足顾客需求为导向,不断改善,最终实现顾客的全面满足;其次是以全员参与为基础,进行全过程的质量控制。质量管理理论认为,“质量出自计划,而非出自检查”。软件前期的质量保证主要依靠设计、生产、研发,后期的质量保证则主要依靠测试、完善、改进。全过程的质量保证依靠行之有效的管理体系。这种观点强调运用确定性、过程化的管理制度、程序、体制来控制管理潜在诸多不确定性、多变性因素的软件质量品质。事实上,影响软件项目进度、成本、质量的三大因素分别是人、过程、技术,人永远是第一位的,人永远比过程更重要,人是影响质量的最关键因素,只有在软件质量管理过程中坚持“以人为本”,强调人与过程的和谐,塑造以人为核心的质量管理文化,才能让质量管理的成效得到淋漓尽致的发挥。 分级管理,把握 质量目标的层次性 ISO9001体系认为,建立质量方针、质量目标是实施质量管理的必经之路。事实上,现代软件的架构是层次化的,这一点尤其重要,软件质量也应按照层次从里到外、功能由轻到重、地位从低到高因地制宜、区别对待,对于不同的软件层面和需求制定不同的质量目标。例如:对于一个大型网络游戏而言,大气炫丽、细腻仿真的3D动画操作界面是非常必要的;但对于一个小型超市仓库管理软件而言,只要能满足出库、入库、损益、盘点的基本需求就可以了,简单粗糙的操作界面反而更容易上手。 在进行软件工程的质量控制时,应把握关键层面,抓住质量控制的瓶颈。一般来说,越是靠近底层、核心区域(如平台、框架、引擎、关键业务等)的代码质量要求越高,开发人员的素质要求越高,质量检测及保证工作代价开销越大。精益求精只适用于靠近核心的代码层;而对于外围代码层, 可酌情适当降低代码质量,放松测试条件。 验证确认,全程质量控制 质量控制是确定项目结果与质量标准是否相符,并及时纠正产品缺陷的过程。质量控制的主要手段是验证与确认:验证是从开发者的视角来检查是否正确地构造了产品,而确认则是以用户的视角来检查是否构造了正确的产品。 事实证明,具有清晰开发模式及过程管理规范的软件产品,在质量上要明显超过那些没有明确过程模型及规范指导的软件产品。软件工程理论提出了诸多开发模型,如瀑布模型、喷泉模型、增量模型、快速原型模型、螺旋模型、迭代模型等,当前最常用的大型软件开发模式是螺旋式的增量开发方式(如图1所示)。 图中1〜7 是各阶段的输出点,也是质量控制点,有相应的输出文档和阶段性成果,均需要得到质量保证部门的确认。软件项目中最常用的质量控制工具手段,包括评审(技术评审、代码评审、设计评审、同行评审等)、审查、测试验证(黑盒测试、白盒测试、单元测试、集成测试、确认测试等)、抽查、调查、走查、旁站、缺陷跟踪等。 技术评审最初是由IBM公司为了提高软件质量和提高程序员生产率而倡导的,分为正式技术评审(FTR)和非正式技术评审(ITR)两种,该方法已经被业界广泛采用并收到了很好的效果,它被普遍认为是软件开发的最佳实践之一。需要重点指出的是,同行评审是一种特殊类型的技术评审,由与产品开发人员具有同等背景和能力的人员对产品进行技术评审,非常有利于发现产品中潜在的问题。成功的同行评审是提高质量和生产率的重要手段,评审的对象应该包括所有软件开发的中间和最终工作产品。 引入工具,复用成功模式 质量管理是可以通过信息化手段量化的,采用先进的质量管理工具可以极大地提高质量管理水平。例如:Bugzilla是Mozilla公司提供的一个开源的缺陷跟踪工具,在全世界拥有大量用户。它能够为软件组织建立一个完善的缺陷跟踪体系,包括报告缺陷、查询缺陷记录并产生报表、处理解决缺陷等。 质量和缺陷是一对无法化解的矛盾,想要提高质量必须千方百计地减少缺陷。有三种方法可以减少缺陷产生的频率、数量、规模等级。 1.事前预防:在开发过程中始终要考虑工作成果可能产生缺陷,将高质量内建于开发过程之中。主要措施包括提高技术水平和规范化水平,也就是练内功,通称为“软件过程改进”。 2.事中控制:及时对各个阶段的工作成果进行质量检查,找出并消除其中的缺陷。这种方式实践效果较好,已经被企业广泛采用,主要措施是技术评审、软件测试和过程检查。 3.事后补救:当软件产品正式交付到用户手中投入生产经营时发现了重大缺陷(如系统常常崩溃、运行速度极慢、报表统计错误等),然后再进行修改维护。这实质上反映出软件项目管理中存在较大的缺失和漏洞,建设单位、承建单位、监理单位三方都有不可推卸的责任,应规避这类水平低级、后果严重、影响恶劣的失误再次发生。 复用是在软件开发领域提高软件质量的重要方法之一。被复用的对象往往是经过反复使用验证的,自身具有较高的质量,因此,合理化复用有利于提高质量、提高生产率和降低成本,技术开发活动与管理活动中的任何成果都应尽量被复用,如思想方法、经验、程序、文档等。软件质量管理的最终目的除了能够不断持续改进之外,还在于形成有特色、有成效、可操作的质量管理模式,并最大程度地复用。 协同合作,三权分立 由于软件质量管理的专业性和复杂性,软件项目组织建设上应实行“设计、检验、监管”三权分离、鼎足而立的原则:设计部门专攻软件需求分析、规划设计、系统研发工作;检验部门从事系统测试(性能测试、回归测试等);质量监管部门制定质量管理工作计划,对各部门的质量管理工作提出指导建议,跟踪、内审、改进质量体系的运行。 技术评审、测试和质量保证是提高软件质量的三个重要法宝,但三者在作用上各不相同。技术评审与测试关注的是产品质量而不是过程质量,两者的技术强度比质量保证要高得多。技术评审和测试能弥补质量保证的不足,三者是相辅相承的质量管理方法。我们在实践中不能将质量保证、技术评审和测试混为一谈,也不能把三者孤立起来执行。建议让质量保证人员参加并监督重要的技术评审和测试工作(大约占其工作量的30%左右),只有这样他们才能更深入地了解软件的质量问题,把三者有机地结合起来,做到三位一体,全方位堵住质量缺陷的漏洞。在部门职能规划上,质量保证部门具有充分的权力,可以对质量不合格的工作成果做出处理,只有这样质量保证工作才不会被轻视,才更有助于加强全员的质量意识(质量保证过程域的主要活动如下图2所示)。 和谐管理,做好一把手工程 当前很多软件企业都组建了质量保证部门,出台了质量保证制度,然而软件质量并未得到实质性突破,质量保证人员也没有发挥预期的效果,造成这种情况的常见原因有两个:一是软件开发团队管理过程不够规范;二是企业领导者,尤其是最高领导者(即“一把手”)重视程度不足,措施不到位。 调查结果表明,在软件项目中,质量保证人员往往是最“吃力不讨好”的一族,通常没有实质性权力,项目成功功劳属于别人,自己缺乏成就感,项目失败却担负最多的责任。鉴于这种情况,领导层一定要从根本上重视、爱护、支持质量保证工作,充分发挥组织协调作用,体现人文关怀,运用管理艺术,构建和谐团队,让每一个项目组成员都树立较强的责任感、归属感和大局意识。事实上,软件开发工程是典型的“全员参与工程”、“一把手工程”,没有企业“一把手”的知情、重视、认可和支持,软件项目顺利实施和取得实效根本无从谈起。有时候企业领导层对于软件质量保证的作用往往是决定性的,这是任何技术手段都无法替代的。 链接 软件质量管理常见误区 误区一:软件质量是可以精确测量的。 软件的质量属性很多,如正确性、健壮性、可靠性等,但在大多数用户看来,实用、适用、好用的软件就是成功的。成功的软件通常都会在功能、性能、界面、操作等方面,以最简捷有效的方式满足用户的最紧迫、最直接的需求。质量是一个相对的概念,软件产品质量没有国际通用的评价标准,质量目标的弹性较大,没有绝对合格或不合格的界限,软件不可能做到“零缺陷”,有缺陷的软件仍然可以使用。 误区二:企业软件的质量越高越好,最好是“零缺陷”。 商业目标决定了软件的质量目标。软件的质量评价也不能从纯粹的软件工程、软件商品、软件技术的角度去考量。理想的软件质量目标不是“零缺陷”,而是恰好能够满足应用需求、生存发展、市场竞争需要,并且将提高质量所付出的代价控制在预算之内。一味追求高质量代码,把质量目标凌驾于赢利目标之上,是多数技术人员所犯的常见错误。 误区三:通过ISO9001、CMM3级认证就意味着软件质量一定有保证。 当前很多通过CMM3或者ISO9001质量认证的软件企业在软件项目管理上的确更加规范了,但代表核心竞争力的软件质量驾驭能力并未得到实质性的提升。产品生产过程与产品质量存在一定的因果关系,通常好的过程产生好的产品,而差的过程将产生差的产品。实践证明,软件质量保证并不能绝对保证软件质量,质量保证只能检测出哪些不符合既定程序规范、肤浅的软件缺陷,对于潜藏在软件深处符合既定设计规范的缺陷却显得无能为力。仅靠制度、规范、流程是无法全面识别出软件中的潜在缺陷的,质量保证对于保证质量而言只是必要的手段,而不是充分的手段。 误区四:拥有充足的人力资源,软件质量就有保障。 软件开发并不一定是人多力量大,相反,人力资源配置不当反而会延误工期。不同人员的水平和素质差异较大,软件项目增加新人可能会增加新的缺陷,无益于软件质量提升。软件开发是一种智力创新活动,任何程序员都无法避免缺陷的发生,缺陷发生是必然的,程序员首先必须了解决定软件质量的各个关键因素(如成本、进度、可靠性、安全性等),搞清楚质量控制的目标和计划,然后才可以在进行需求开发、系统设计、编程测试时确保交付软件的高质量。 软件质量管理论文:基于过程性能模型的软件质量管理过程的研究与应用 摘要:软件产品的质量在很大程度上受到软件开发过程的影响。为了提高竞争力、改进质量以及提高效率,软件企业就需要将更多的注意力放在过程上,通过过程控制其结果。本文对软件质量管理过程进行了研究,通过过程性能基线和过程性能模型分析和管理质量,提出了一个基于过程性能模型的软件质量管理过程模型,并在研究的基础上,构建了软件质量管理系统的体系结构。 关键词:软件质量管理过程性能基线过程性能模型 1 引言 随着软件产业的飞速发展,软件的核心竞争力主要集中体现在质量、成本和交付工期上,而质量是最显著影响其它两方面的因素。对软件企业来说,质量不再只是争夺市场的一个有利因素,而变成了公司在竞争中成功的必要条件。然而,随着软件规模和复杂度的增加,软件开发过程越来越难以控制,导致开发过程中的产品质量和过程质量处于失控状态。 过去存在着一些片面的观点,认为先进的工具和方法可以神奇地解决软件开发中的质量问题。目前的现实并不尽如人意。有的企业由于缺乏对开发过程的控制,往往很难平衡客户和公司在质量、成本和交付工期的要求,成功的项目比例很小。 面对如前所述的现状,软件质量管理一定要面向预测式管理。一个软件产品的质量主要是由它的开发、采购和维护过程决定的,为了改进软件产品的质量进而提高竞争力,就要把焦点放在能够稳定地开发优质产品所需的过程上[1],通过过程数据预测和控制结果。 过程性能模型重点强调过程和产品度量对结果的重要性,分析和建立过程和产品度量与结果的关系。其通过过程性能基线控制过程的关键因子,分析过程的性能偏差,进而预测并控制最终结果。由此可以看出,过程性能模型是解决上述问题的有效方法,本文将关注基于过程性能模型的软件质量管理过程。 本文首先归纳了软件质量和软件质量管理的研究现状,并指出了现有软件质量管理过程所存在的问题;随后引入了过程性能基线和过程性能模型,提出了基于过程性能模型的软件质量管理过程模型,阐述了过程性能基线和模型在质量计划、质量活动、质量度量和分析、质量预测和控制、质量评价和改进等五个质量管理子过程中的应用;最后在研究的基础上,构建了软件质量管理系统的体系结构,包括组织过程资产库,过程支持和软件质量管理三个子系统。 2 软件质量及管理 当前业界已将交付软件的缺陷密度作为软件产品的质量的衡量关键标准。即,已交付软件中每个单位规模的缺陷数,简称为交付缺陷密度。因此,软件质量管理通常围绕缺陷而展开,软件项目的目标是使交付的软件存在尽可能少的缺陷[2]。 质量管理的任务是计划恰当的质量活动,然后正确执行和控制这些活动,以便可以在软件开发过程中(即在软件交付以前)检测到大多数缺陷[2]。 质量管理包括确定软件的质量目标,制定实现这些目标的计划,并监控和调整软件计划、软件工作产品、活动和质量目标,以满足客户和最终用户对高质量产品的需求和愿望。 质量管理基于机构、客户和最终用户的需求建立软件产品的质量目标。为实现这些目标,机构制定相应的策略和计划,项目则为实现这些质量目标对其定义的软件过程进行具体调整[3]。 在软件质量管理过程和方法上,传统的包括:全面质量管理(Total Quality Management, TQM)是一套能控制质量、提高质量的方法;在PMBOK[4]中,软件项目的质量管理是指保证项目满足其目标要求所需要的过程,包括质量计划、质量保证和质量控制三个过程域;著名的“Juran三部曲”[5]――TQM的理论基础和基本方法的主要基石――包含质量计划、质量控制和质量改进三个步骤,突出了对过程改进的支持。最有成效的要属六西格玛质量管理方法,其理念是通过排除和预防缺陷来提高客户满意度,进而提高企业的收益率,包括过程性能度量集、多种改进框架和分析工具,尤以DMAIC框架(定义-度量-分析-改进-控制)最常用[6]。将六西格玛与CMMI实施相结合将是更有效的过程改进途径。 在软件质量管理工具方面,Ishikawa提出了质量控制的七种基本统计工具[7],包括因果图[8]、Pareto图、直方图、控制图、散布图、运行图、检查单。目前也有许多有关预测模型的论著,如:Rayleigh模型。 现有的软件质量管理过程和方法提供了质量管理的高层指导,主要关注于实施步骤以及最终结果,质量管理工具也着力于解决质量管理中的具体的某“点”的质量问题和控制,但在如何通过过程控制其结果,业界正在寻求有效的途径,是亟待解决的问题。例如:如何制定低风险且切实可行的质量计划、如何在开发过程不同的影响因素下确保项目质量目标得以实现等。这些正是本文致力于研究的主题。 3 基于过程性能模型的软件质量管理过程 过程性能模型是解决通过过程控制其结果的有效方法,具体定义如下。 过程性能基线(Process Performance Baseline, PPB)是对遵循过程所达到的实际结果的文档化刻画,用于比较实际过程性能和预期过程性能的基准[9]。 过程性能模型(Process Performance Model, PPM)是对过程属性和过程工作产品之间关系的描述,基于历史过程性能数据而建立,并使用项目中收集的过程度量和产品度量进行校准,最终用于预测遵循过程将能达到的结果[9]。 过程性能基线可用于组织内任何独立的项目,通过分析所收集的度量,建立结果的分布和极差,其刻画了所选过程的预期性能[10]。过程性能模型基于其他过程和产品的度量来估算或者预测某一过程性能的度量,刻画了过去的和当前的过程性能,对过程将来的性能进行预测。过程性能基线控制子过程的能力;过程性能模型预测过程的中间目标和最终目标,通过过程控制结果,在子过程结束时进行调整和预测,确保最终目标的实现。 基于六西格玛质量管理的方法及其DMAIC框架(定义-度量-分析-改进-控制),以及过程管理的四个核心职责(定义过程、度量过程、控制过程、改进过程),并结合过程性能基线和模型的原理,本文提出了一种基于过程性能模型的软件质量管理过程模型,该模型在质量管理过程中增加了过程性能基线和模型的指导、统计管理以及预测和控制,提供了软件开发过程中进行质量控制和持续改进的框架,如图1所示。模型主要包括:质量计划、质量活动、质量度量和分析、质量预测和控制、质量评价和改进。接下来将详细阐述过程性能基线和模型在上述五个质量管理子过程中的应用。 图1 基于过程性能模型的软件质量管理过程模型 3.1 质量计划 要生产出高质量的产品,首先必须制定质量计划。质量计划作为基于过程性能模型的软件质量管理过程模型的一个核心环节,简言之,就是怎样以及何时将质量活动和质量材料应用到一个项目中。质量计划中必须明确定义在软件开发的各个阶段应如何进行质量活动。制定质量计划的前提是项目已完成任务计划、进度计划和规模估算,故在制定质量计划之前必须进行入口准则的验证。 基于过程性能模型的软件质量管理过程要充分发挥过程性能基线和模型在质量计划制定时的指导作用。团队软件过程(Team Software Process, TSP)质量计划是一个最佳范例,本节将介绍如何使用过程性能基线和模型指导质量计划的制定。 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文 3.1.1 TSP质量计划 团队软件过程(TSP)制定的质量计划包括以下几个方面[11]:系统无缺陷比率、各阶段排除缺陷密度、质检过失比、阶段收益、过程收益、缺陷引入率和缺陷排除率,可划分为过程质量度量和产品质量度量两大类。 为了提高客户满意度,首要解决的就是降低交付缺陷密度,即验收测试过程中发现的缺陷密度。团队在制定质量计划时,首先估算可能会引入的缺陷数,其中估算每个过程阶段所引入的缺陷数的方法有许多种,TSP质量计划使用的是缺陷引入率;然后就是估算排除的缺陷数,这里TSP质量计划使用了阶段收益。一旦团队按阶段估算了引入和排除的缺陷,那么结合项目的规模估算与任务和进度计划,就可以估算出每个阶段将会排除的缺陷密度,然后检查所估算的交付缺陷密度是否满足项目的质量目标,进而通过局部调整以完成质量计划。 3.1.2 使用过程性能基线和模型指导质量计划制定 在使用缺陷引入率和阶段收益估算缺陷的引入与排除时,传统的做法是“拍脑袋”或者基于业界数据,有经验的组织会基于历史数据,但是实际实施表明:上述情况中绝大多数的估算都是徒劳的。原因如下:一是因为对阶段缺陷引入率和阶段收益的估计值没有准确地反映缺陷引入与排除过程的能力,不应只是单个值,而应该是一个区间,包括均值和上下限;二是因为没有对缺陷引入与排除的过程进行计划,尤其是某些关键度量,例如评审速度、测试覆盖度、人员技能、经验等级、检查单条目数等,从而无法通过缺陷引入与排除的过程控制过程的执行结果(缺陷引入率和阶段收益),使得项目质量目标的实现变得不可预测和控制。 为解决上述问题,这里使用过程性能基线和模型从四个环节提供支持: (1)建立项目的质量目标,制定交付缺陷密度的计划值。 (2)基于组织的历史数据,建立阶段缺陷引入率和阶段收益的过程性能基线,参照过程性能基线计划阶段缺陷引入率和阶段收益,以“上限,均值,下限”的三元组形式。 (3)基于组织的历史数据,构建缺陷引入过程和缺陷排除过程内部的过程性能模型,建立子过程结果(也即中间目标)与子过程因子(包括可控的和不可控的)之间的关系,以及子过程可控因子的过程性能基线,参考所建立的过程性能基线和模型制定子过程的质量计划。同时在质量预测和控制时,需要对这些子过程进行统计管理。例如设计评审,代码评审,单元测试。 (4)在分别计划好项目的质量目标、缺陷引入和排除过程的中间目标、缺陷引入和排除过程因子之后,使用统计方法(例如蒙特卡洛模拟)对项目质量目标达成情况进行预测[12],通过置信度与置信区间评估目标达成情况的风险,必要时调整计划。 若软件组织处于起步阶段,没有足够的历史数据,质量计划的制定可参考TSP质量准则[13]。 3.2 质量活动 质量活动作为软件开发过程中的一项必要且非常重要的活动,负责排除开发过程中所引入的缺陷。其作为软件质量管理过程中不可缺少的环节,通常分为两大类:评审和测试。评审不但可以识别存在于可执行系统中的缺陷,而且可用于文档。评审有许多种类型,其中主要的类型有审查、走查和个人评审。审查和走查是同行评审[14]。测试则旨在发现尽可能多的缺陷。测试有七种类型,分别是单元测试、集成测试、外部功能测试、回归测试、系统测试、验收测试以及安装测试[15]。常用的有单元测试、集成测试以及系统测试等项。 以TSP为例,其任务计划中所涉及的质量活动按执行的先后顺序排列有需求审查、高层测试审查、详细设计评审、详细设计审查、代码评审、编译、代码审查、单元测试、集成测试、系统测试、验收测试。 项目的质量经理根据进度计划,按期组织任务计划中所安排的质量活动,基于既定的质量计划,具体由质量保证人员按计划实施。 3.3 质量度量和分析 在质量活动实施的过程中,软件质量保证人员应收集质量度量的实际数据,包括基本度量和派生度量。以软件审查为例,基本度量包括规模、评审准备时间、评审会时间、参与审查人数以及所发现的不同类型的缺陷数;派生度量包括总的审查时间、准备速度、审查速度、总的审查速度、缺陷密度、每小时发现缺陷数、评审准备时间与评审会时间之比、审查有效性。个体软件过程(Personal Software Process, PSP)[14]提供了非常有价值的度量和分析。 与此同时,质量人员可对收集的质量度量数据进行一些初步的探索性分析,为进一步的质量预测和控制打下基础。数据分析的切入点可以为缺陷的引入、排除以及泄漏,与评审有关的准备速度、评审速度、缺陷密度、审查有效性等,以及与测试有关的测试用例密度、测试覆盖度、测试用例有效性等。数据分析的方法包括如下: (1)推测,支持工具有Pareto图、运行图、直方图、箱线图、多变异图等; (2)提出原因的假设,支持工具有因果图和关系图等; (3)证实或排除原因,这主要是由能提供假设检验、方差分析和多元分析等方法的高级分析工具所支持。 3.4 质量预测和控制 为了有效地跟踪并控制质量活动的实施,实现质量计划中对各质量活动所设定的预期目标,进而确保项目质量目标的达成,基于过程性能模型的软件质量管理过程模型所包含的另一个核心环节就是质量预测和控制,主要涉及到统计管理子过程性能和预测项目质量目标达成两方面。具体而言就是使用过程性能基线和模型对质量计划中标注的关键子过程实施统计管理,在每一个子过程结束时使用过程性能模型预测项目质量目标达成的置信度,必要时对质量计划进行调整。 3.4.1 统计管理子过程性能 统计管理的过程[9](Statistically Managed Process)即使用基于统计的方法进行管理的过程,其中,对该过程进行了分析,过程偏差的特殊原因得以识别,过程性能也被控制在已定义的范围内。对子过程实施统计管理,可以使子过程的性能得到很好的控制,从而确保实现子过程的预期质量目标。适于统计管理的度量必须是可控的,对子过程来说是关键的,可以为人员属性、环境因子、技术因子、工具或硬件条件、过程因子、客户以及供应商等利益相关者,例如人员经验等级、人员可用性、同行评审相关度量、测试覆盖度、编程语言等[16]。 根据对相关材料的研究,本文归纳并提炼出了一个统计管理子过程性能的流程,大体将统计管理子过程划分为过程稳定性评估和过程能力评估两部分,如图2所示。 图2 统计管理子过程性能 (1)过程稳定性评估 过程稳定性评估[17]需要用到统计过程控制方法(Statistical Process Control, SPC)。SPC主要用来测量一个过程的稳定性并识别过程的各个执行情况是否超出所预期的变化范围和控制界限。控制图是实现统计过程控制强有力的工具,常用的为XmR图和U图。通常情况下,适于统计管理的度量其取值都是服从正态分布的,对于不服从正态分布的情况,可以使用箱线图。 对于不稳定的过程(子过程中出现了性能偏差),需要识别偏差的特殊原因,集中分析并采取矫正措施排除特殊原因。检测不稳定性除了Western Electric提出的4种有效测试 [17] 外,还可参考Minitab等统计软件中提供的其他测试规则。必要时可采用分组的方法。 (2)过程能力评估 在子过程执行即将结束时,需要分析子过程的能力,进行过程能力评估。过程能力[17]评估的前提是过程是稳定的或统计受控的。有能力的过程首先是稳定的,且其能力的上下限必须在规格界限之内。过程能力可以通过过程能力指数Cp和Cpk来衡量,使用控制图或直方图进行图形化展示。 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文 过程能力指数Cp是我们描述过程能力的最重要指标,但由于Cp的计算与过程输出的均值µ无关,它是假定过程输出的均值与规格中值M重合时的过程能力。因此,Cp指数只是反映了过程的潜在能力。为此引入了过程能力指数Cpk,其被称为实际过程能力指数[18]。 合理考虑Cp和Cpk两个指数,对整个过程的状况就有了较为全面的了解。不应单独使用这两个之中的一个。 当Cp和Cpk都较小且二者差别不大时,说明过程的主要问题是σ太大,改进过程应首先着眼于降低过程的波动。 若Cp较大,而Cpk很小,二者差别较大,说明过程的主要问题是µ偏离M太多,改进过程应首先着眼于移动µ值,使之更接近M。 如果Cp本身不够好,Cpk更小,二者差别较大时,说明过程的µ和σ都有问题,通常改进过程应首先移动µ值,使之更接近M,然后设法降低过程的波动,减小σ。 需要特别强调的是,Cp和Cpk是由处于统计受控状态下的过程波动的大小和均值偏离决定的。因此首先要判断过程是否处于统计受控状态。 3.4.2 预测项目质量目标达成 在每一个子过程结束时,应使用子过程中间目标与项目质量目标之间的过程性能模型预测项目质量目标达成的置信度。 3.5 质量评价和改进 项目到达结项阶段时,软件质量管理也进入了最后一个环节:质量评价和改进。基于过程性能模型的软件质量管理过程中的质量评价和改进除了进行传统的质量总结报告之外,还包括基于正交缺陷分类[19](Orthogonal Defect Classification, ODC)的Pareto缺陷类型分析、过程性能基线和过程性能模型的分析评价。 质量总结报告提供了项目质量目标达成情况,质量活动的过程度量和结果度量实际数据,以及缺陷的引入排除情况汇总等。 考虑到ODC的缺陷类型与特定的软件开发阶段相联系,将Pareto缺陷类型分析与ODC结合起来,有利于识别最普遍的缺陷类型。而且通过Pareto分析找出缺陷数最多的缺陷类型,然后找出与该缺陷类型相关的开发阶段,从而对该阶段采取相应的改进措施。 质量评价和改进环节最重要的一步就是要对整个质量管理过程中所使用的过程性能基线和过程性能模型进行分析和评价,包括过程性能基线是否需要更新、过程性能模型的评价以及过程性能模型是否需要更新等。 3.5.1 过程性能基线更新决策 过程性能基线的建立过程是增量或迭代的,在获得新项目的实际度量数据后,要评估数据质量,然后将数据纳入已有基线的分析,确定是建立一个新基线还是使用已有基线。 判断将新的项目数据纳入已有过程性能基线是否合适的一个方法是:执行假设检验来判断新数据与已有基线是否存在显著的统计差异。如果存在显著的统计差异,我们需要使用新的项目数据建立新基线;如果假设检验的结果表明没有显著差异,则继续使用已有基线。 此外,在综合考虑项目和项目组之间的内在区别及组织业务变更的基础上,应定期评审组织过程性能基线集,以确定是否需要建立新的基线,或者是否需要合并、修订或放弃已有基线。组织过程性能基线需要合并、修订或放弃的情况如下: (1)当子过程改变时; (2)当组织的结果改变时(例如,由于过程偏移); (3)当组织的需要改变时。 3.5.2 过程性能模型评价与更新决策 基于过程性能模型的软件质量管理过程是否能真正奏效,过程性能模型自身的好坏至关重要,其是否能有效且准确地对目标进行预测和控制、其可理解程度及其可用性等都需要进行严格的评价。 通过对可靠性增长模型、质量管理模型等模型的评价标准进行调研[20],本文归纳了四条过程性能模型的评价标准,如下所示: (1)预测有效性。预测结果与实际结果偏差大不大,直接关系到模型的好坏。 (2)及时性。模型能够越早地发现问题或提高的征兆,就有越多的时间提前进行计划。 (3)开发过程的覆盖程度。开发过程的所有阶段的模型覆盖度是很重要的。每个开发阶段必须得到管理,并且应当实施适当的措施。往往需要建立模型集。 (4)简单性。数据采集简单并且代价不高;概念简单,用户不需要很多的数学基础就能理解。 过程性能模型的更新包括对模型的校准(Calibration)和修订(Revision)。 量化管理项目时,从统计管理选择的子过程中获取关键属性度量,通过使用所获得的这些实际性能数据,校准有关过程的过程性能模型,判断项目是否能够实现其目标,包括中期和最终目标(此时这些目标在项目生命周期的后面阶段才可以度量)。 需要修订过程性能模型的情况总结如下: (1)当子过程改变时; (2)当组织的结果改变时; (3)当组织的需要改变时。 4 质量管理系统体系结构 在对基于过程性能模型的软件质量管理过程的研究的基础上,研发了质量管理系统,其体系结构如图3所示。该系统建立了组织过程资产库,并提供两大功能:过程支持和软件质量管理。 图3 质量管理系统体系结构 4.1 组织过程资产库 一个组织应该拥有自己的过程资产库,包括组织的标准过程集、度量库、过程性能基线库以及过程性能模型库,分别为过程、度量、PPB和PPM建立了相应的数据字典。其中,标准过程集支持过程定义和裁剪,度量库包括过程度量和产品度量,过程性能基线库以“上限、均值、下限”的方式存储,过程性能模型库中涵盖基本的统计预测模型和高级预测模型。 4.2 过程支持 过程支持提供了从软件度量到过程性能基线直至过程性能模型的建立与维护功能。随着度量数据的不断积累,过程性能基线的控制限在建立的过程中需要不断地修订。开发过程性能模型也是一个迭代的过程,不断的选择一个或多个适当的统计建模方法,并用过去的性能数据对模型进行评估,直到得到适当的模型预测值。 过程性能基线建立的统计方法为控制图理论,支持过程性能模型建立的统计方法包括回归、方差分析、虚拟变量回归、卡方检验、逻辑斯蒂回归,以及蒙特卡洛模拟,贝叶斯信念网络(Bayesian Belief Networks, BBN)。 4.3 软件质量管理 (1)质量计划模块支持入口准则验证、质量计划概要、项目质量目标的建立、各阶段质量活动其质量目标的建立、各阶段质量活动的属性及其度量的详细计划、项目质量目标达成情况预测及结果报告。 (2)质量活动模块支持评审过程、测试过程的实施。前者包括评审计划、评审会、缺陷修复、评审总结,后者包含测试用例管理、测试报告、缺陷管理。 (3)质量度量和分析模块负责从过程中进行质量度量数据(特别是缺陷数据)的收集、分析、评价并生成质量状态报告,质量数据分析包括按阶段和项目划分的缺陷引入和排除情况分析等。 (4)质量预测和控制支持统计管理子过程性能和目标达成情况预测,为质量活动反馈偏差原因和建议的矫正措施,必要时提供质量计划调整的相关决策。 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文 (5)质量评价和改进模块基于项目质量目标实际达成情况和软件开发过程中的质量数据,生成质量总结报告,并支持基于ODC的Pareto缺陷类型分析,重点提供过程性能基线和过程性能模型更新的决策和相关评价。 5 结语 本文对软件质量管理过程进行了研究,提出了一种基于过程性能模型的软件质量管理过程模型,包括如何使用过程性能基线和模型指导质量计划的制定、进行质量预测和控制等,解决了质量目标无法有效预测和控制的问题。基于研究,构建了软件质量管理系统的体系结构,下一步将深入研究通过开发过程控制缺陷的引入,从而全方位地实现软件质量管理。 软件质量管理论文:军用软件质量管理浅析 摘 要:通过对目前军用软件系统开发的特点和存在问题的分析,探讨了利用CMM原理来改进军用软件过程、提升软件质量的途径和方法。并对提高装备软件的质量管理水平给出了若干建议,为不断深化装备软件质量意识和完善装备软件质量工作提供了参考。 关键词:软件质量,质量管理,CMM 随着国防信息化程度的不断提高,军用软件作为信息化装备系统的神经中枢已经成为武器装备系统中不可或缺的组成部分。高新武器装备中由软件实现的功能有时甚至会超过硬件,乃至软件本身就可以看作一类重要的装备,系统中软件性能的好坏、可靠性的高低、安全性的优劣决定着整个武器装备系统效能的发挥。目前如何提高军用软件的质量已经成为提升整个武器装备系统战斗力的关键所在。 一、军用软件的特点 软件是用计算机语言表示的与计算机操作有关的程序、进程和数据的集合,具有零磨损特性,其质量完全取决于开发过程。ANSI/IEEE Std 729-1983定义软件质量为:软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体。该定义表明如果软件本身设计出来的质量特性能高度满足软件各项功能、性能需求,则其质量的优秀等级较高。 对于军用软件而言,还存在一些特殊性,表现在:①开发过程受严格的软硬件条件制约,且很难制定具体的、量化的质量标准。②规模巨大,大系统软件源代码往往会超过一千万行。③军用软件用于军事目的,要求无差错运行,对可靠性、实时性、安全性、保密性、互操作性等方面都有极高的要求。④成系统的大型军用软件面对装备情况复杂,研制参与人员较多,这些因素会造成高风险、长周期,高成本。 二、军用软件开发中的问题 随着对软件开发规律和军用软件质量重要性认识的提高,已经有越来越多的软件承制单位开始建立基本的软件过程,按照软件开发规律进行开发,但还有相当多单位,依然沿用“手工作坊”式的开发方式,全过程由软件开发设计人员“自行设计,自行编码,自行测试,自行包维护”。这种方式无法对软件开发过程进行有效的监督与管理,一旦软件产品出现故障,只能由开发者自行维护,其它人员难以介入,软件质量就会处于失控状态下,造成这种状态的主要原因除了国内软件开发整体水平较低外,限制软件的质量的原因还有:①目前相当多的军用软件是当作硬件的附件而不是独立的产品,没有按照基本的软件过程模型进行软件开发。②在研制过程中软件的评审力度不够。③软件开发文档及编制过程不规范,文档对开发过程的没有起到指导作用,软件验收和维护也没有依据。④软件测试非独立过程,软件的测试软件、测试工具缺乏,标准、规范不健全,软件检验与硬件合并进行,使得测试过程难以发现软件本身存在的问题。⑤部队使用装备投入对软件维护的力度不够。 三、CMM原理和作用 为有效针对军用软件目前存在的若干问题,保证软件产品质量,应清晰和完善的软件过程。我国于2001年基于SW2CMM1.1版的理念,制定了GJB5000―2003《军用软件能力成熟度模型》,并于08年在原标准基础上修改了若干内容,了GJB5000A-2008作为替代原文件版本,这些都标志着我国军用软件开发管理已经进入规范化管理阶段。 软件能力成熟度模型CMM主要用于软件过程评估和软件能力评价。其中软件过程评估用于确定当前软件过程的状态,发现与软件过程有关的嗜待解决的问题,进而有步骤地对软件过程实施改进,提高组织的软件过程能力。 CMM模型为软件开发组织设计了一个循序渐进的改进过程,帮助开发组织按模型进行对照检查,找出自身的强项和弱点,制定改进计划,逐步提升软件过程能力。同时也为软件委托方或采办者提供了一个评价标准,可以为对软件承包商进行软件过程能力评估,对风险进行控制。软件能力成熟度越高,软件过程越透明,软件性能越稳定,软件质量越高。 CMM将软件过程能力成熟度分为5级,从1级到5级软件能力成熟度逐步提高,每个等级有其软件过程特点,1级不含关键过程域,2级以上每一等级包含一组关键过程域,每一关键过程域中包含一组目标,当这组目标全部实现时该关键过程域相应的要求得到稳定。当一个等级及其以下所有等级的各关键过程域的全部目标实现时,就表明达到了该等级的成熟度。 四、利用CMM对军用软件能力成熟度评估 我国目前军用软件研制受整体水平的制约,还处于起步阶段,所以在引入并实施军用软件能力成熟度模型CMM时,可以从可重复级(2级)做起,帮助软件开发组织的过程能力按阶段逐步建立,逐级提高成熟度等级。可重复级共有需求管理、软件项目策划、软件项目跟踪与监督、软件质量保证、软件配置管理、软件子合同管理等6个关键过程域。为实现6个过程域的满足,应注重以下几个方面:①高层管理者应确定软件工程化方针,以CMM模型为蓝本,要求软件项目组按照软件工程要求实施软件开发,对项目进行阶段性分割,推进文档化交流方式,以便对软件开发的全过程进行有效控制和管理。②对原有组织进行适当调整,依据CMM过程域实现要求进行必要的人员配备和准备,建立软件工程过程组、系统测试组、软件质量保证组、软件配置管理组与软件配置控制委员会。③ 在全组织内进行动员、学习和培训CMM相关知识和理论;将本单位的组织、角色和术语与CMM中的相对应,完成软件开发CMM模型本地化改造;建立激励机制,鼓励软件组成员尽快地接受CMM的理念和实践推进。 五、对于军用软件质量管理实施的几点建议 军用软件成熟度模型CMM是评估软件过程和评价软件能力的重要工具,对规范军用软件承制单位按照软件开发规律进行软件开发,提高研制开发能力,保证软件质量具有非常重要的意义。我国军用软件能力水平目前大部分处在CMM初始级或可重复级阶段,GJB5000A-2008《军用软件能力成熟度模型》军用标准要求全军各部队和全国所有军用软件承制单位贯彻执行在一定程度上推进了我国军用软件过程能力的提高,但在短期内想要提升软件成熟度等级还具有一定困难。所以我们应本着长期坚持,循序渐进的工作方法,结合实际情况,制定相应的改进措施,逐步完善实施过程。 此外,我们还应结合更多的管理方法对军用软件质量管理进行完善。如加强对军用软件研制单位质量水平的审核。通过二方(顾客方,如军方)或第三方(如独立的认证机构)严格审核,可以提高军用软件研制单位对软件质量的重视;及时更新软件工程理论技术,如软件开发过程模型,软件产品的评价模型方法、质量保证方法、软件工程集成环境和工具,可靠性和安全性技术等;建立一支高水平的软件测试检验队伍,保证软件测试人员的技术水平等级不低于软件开发人员;在软件开发过程中坚持开展软件标准化、系列化、模块化设计理念,提高软件模块复用率,用以提高软件的质量和可靠性。 提高军用软件质量管理水平是一个涉及多学科多技术的综合应用系统工程,军用软件承制单位中各部门各专业只有共同努力,通力合作才能使我军电子装备软件系统开发的整体水平跨上一个新的台阶。 软件质量管理论文:软件质量管理的优化对策研究 摘要:近年来,随着我国社会经济的不断发展,我国软件技术发展速度也在不断加快,但同时我国软件技术还存在较多的问题,要想有效解决这些问题,必须加强软件质量管理,不断完善软件质量管理体系,促进软件快速交付。文章研究表明,通过软件质量管理,不仅可以促进软件开发,还可以确保软件质量。 关键词:软件;质量管理;优化对策 0引言 在软件技术快速发展和应用范围不断扩大的同时,软件复杂性也不断提升。在当前的很多软件开发企业中,软件质量管理问题开始成了关注的焦点。 1软件质量管理中存在的主要问题分析 1.1需求模糊问题 结合软件工程来说的话,软件产品的生产主要包括多个过程:第一是系统需求研究过程;第二是系统设计过程;第三是系统实现过程。但对于软件系统需求来说,往往描述不够完善,相应的软件需求调研以及研究也不够深入,没有加强对软件质量需求的管理,这样不仅会使得研发以及测试设计工作落实不到位,还会明显提升沟通成本,导致产品实现与用户需求不一致[1]。 1.2立项管理不到位问题 大量实践结果表明,通过加强立项管理,可以有效避免质量管理项目风险的产生,赋予软件项目开发深刻的意义。(1)软件项目开展。不加强深入的立项调查,以及加强项目可行性分析,落实好立项评审,则可能会导致产品需求获取不到位,软件开发产品规划出现很多问题,无法保证软件研发工作的有效开展,致使项目研发功能明显减弱,不但会导致资源浪费,还会阻碍新产品的正常[2]。(2)软件项目。如果没有加强立项管理,可能会导致成员行为涣散问题的出现。工作人员只顾自己,不顾团队利益,无法全面了解项目产品的实际开发要求与背景,也不能从根本上明确项目开发的最终目标,无法满足用户的实际软件开发需求,最终使得软件开发计划无法按期实施以及软件开发费用超支等问题出现。 1.3软件质量保证体系尚待完善 针对我国很多软件开发企业来说,往往都处于“软件质量管理”实施的最初阶段,甚至是试行阶段,很多科研制作部门对应的标准化软件质量管理体系还都不完善,甚至有一些科研部门对应的软件质量管理制度和体系还没有形成[3]。另外,一些企业虽然设立了软件质量管理的专有部门,但相应的体系文件却还不完善,需要经过大量的实践来完善。在软件开发项目研制部门质量管理普通较低的情况下,软件开发工作者的综合素质低下,也会影响软件产品的最终质量。 2软件质量管理的优化对策分析 2.1加强需求工程有效管理 在实际的软件开发当中,如果相应需求模糊,会出现需求随意变更的现象,导致时间被白白浪费。对于该问题来说,必须针对相关需求活动,加强统一化的需求管理。要在落实好软件需求开发工作的基础上加强需求管理,这样不但能够限制需求变更的实际次数,还能促进工程师对质量管理需求的深入理解。总之,软件需求开发与软件需求管理的重要性同等重要,必须实现两者的有效结合,才能保证最终产品的质量。 2.2加强软件测试流程有效管理 在软件测试的各个环节,都可能会出现一些问题,必须不断优化软件测试流程,加强对软件测试流程的有效管理。具体来说:(1)软件测试相关部门人员,必须加强需求知识学习,开展深入的需求探讨。(2)对有疑虑的需求者,研发设计工作者要做出及时而准确的解答。对于研发设计工作者也不能有效解答的问题,要让他们联系用户来有效解答。在明确需求的基础上,根据软件系统的作用以及性能,专门的测试工程师要科学合理地设计软件测试测用例,具体要结合两大方面的内容来设计:第一,针对测试工程师来说,必须结合实际需求,科学合理地编写测试用例;第二,针对测试工程师来说,要在结合实际用户反馈情况的基础上,做好分析汇总工作[4]。要大力引入和合理应用QC功能测试设备以及工具,加强对软件以及实际操作系统兼容性能的合理性测试,才能充分发挥软件测试工具使用的功能与作用,落实好软件兼容性测试工作。此外,要加强自由软件测试,适当补充软件测试用例,了解软件测试用例没有涉及的问题以及问题产生的原因;要采取定期研究和分析的方法,明确缺陷库里面存在的问题,并深入研究问题成因,进而利用测试用例来解决问题[5]。 2.3加强项目进度质量有效管理 要保证软件开发项目的顺利完成,首先必须保证软件项目质量足够好。在软件项目开始实施之前,必须保证项目开发计划足够科学、合理。如果软件开发项目计划设计人员相关工作经验足够丰富、设计能力足够强,往往可以有效保证软件开发计划的合理性与完善性,有效预见软件开发计划当中的问题,消除相关阻碍和影响因素。在软件开发项目计划设计的开始,相关人应及时组织软件质量管理人员,开展软件项目计划讨论会与评审会,并请相关技术专家、真实用户等,针对软件项目计划的科学性和合理性进行探讨,分享个人意见和看法,由专门的记录人员总结相关意见,最终形成系统化的质量记录,再以书面或者文档的形式传送给相关工作人员进行意见修改整合,确保软件项目计划的完善性。 2.4提升工作人员的综合素质 在软件开发和质量管理过程中,技术人员和管理人员是核心主体。因此,要想有效保证软件质量管理有效性,必须保证管理工作人员和技术人员的综合素质足够高。让员工全面地了解企业,正确理解自身的工作性质和要求,并不断增强自身的责任感。即使工作人员已经对工作内容很熟悉,也可能没有深入理解企业经营战略以及相应的发展规划。企业外部环境条件变化幅度比较大,企业工作人员必须及时掌握内部战略和规划变化情况,及时调整自己的工作计划和方法。对于软件质量管理人员来说,不但要主动参与到企业发展规划设计工作中,还必须及时将相关信息传达给各个部门。通常来说,企业应当定期或者不定期地开展例会,介绍企业近期情况和之后的发展规划。在掌握全体例会内容的基础上,各个部门负责人员应当再次开展部门会议,根据部门工作开展情况,做好后期工作规划调整工作,使得每位员工都掌握企业发展动态,进行自身科学合理的工作调整与规划。软件质量管理者还必须基于企业内部软件质量问题,增强创新意识,提出可以有效解决软件质量问题的措施。 3结语 综上所述,软件开发成本管理不到位、软件质量管理不到位等问题仍然存在,导致这些问题产生的主要原因是管理者管理不到位,如:软件质量管理制度不完善、随意性较强。要有效解决这些问题,必须以完善的软件质量管理体系为依据,加强软件开发的全过程监控。 软件质量管理论文:软件质量管理系统的设计与研究 摘要:将数据挖掘技术运用于软件质量管理,根据影响系统质量的属性,建立了质量管理和分析模型,并根据模型给出了系统实现的初步方案。该系统的实施,能够有效的保证软件产品的质量。 关键词:软件质量管理;数据挖掘;联机分析处理;关联规则 1 引言 随着计算机软件越来越深入地应用到社会生活的各个方面,尤其是一些关键领域,软件的规模也随之日益增大,软件的质量也越来越受到重视[1-2]。软件的质量不过关,可能会产生严重后果。目前中国软件业尚未形成规模,全国的软件企业数量不少,但是大规模软件企业聊聊无几。我国软件业竞争力低下固然有产业规模小,资金投入不足、知识产权保护不力等各方面原因,但软件产品质量不高也是一个不争的事实,它直接影响到企业的形象及其在市场上的信誉,进而影响到其生产需求,使企业存在潜在的生存危机。 目前,对于软件质量控制一般都采用ISO9000或者是CMM,通过对软件开发过程的管理来控制开发质量[3-5]。本文研究了数据挖掘技术在软件质量管理中的应用,设计了一种基于数据挖掘的软件质量管理系统。系统通过软件缺陷的数据,软件生命周期全过程中关于分析、设计、编码、测试等阶段有关人员素质、开发和管理过程的信息以及软件属性、开发机构资质和经验、目标用户评价等资料的数据库,来建立质量预测模型,发现制约质量和过程的规律,从而采取预防缺陷措施。那么就能最大限度的降低开发维护的费用,大大降低软件故障和失败的可能。 2 影响软件质量的各种因素 软件的设计开发、营销、服务与支持活动,涉及投资者、管理者、销售者、软件产品用户等各类人员及其组织。因此,需要从全面的软件质量观出发,深入分析与软件生产有关的组织、人员、活动,对软件生产过程进行模块划分,建立通用的模块化的软件生产过程模型,以识别影响软件质量的各种因素。在此基础上,构架基于过程的软件质量体系结构,提供构成软件质量系统的通用概念框架,这就在高层次上找到了满足用户的要求,使定量质量管理成为可能。同时建立通过模块化过程的质量保证以及过程网络协同运作的质量保证系统,来保证软件产品质量的质量管理方法。进而建立完善软件过程质量的质量评价体系,用软件过程能力指数评价过程质量的高低,以过程的稳定受控来保证软件产品满足规定的质量特性要求。 2.1 质量属性 软件的质量属性可分为两大类:第一类可在运行软件并观察其结果的时候进行度量,例如性能、安全性、可靠性和功能性等都属于这一类。第二类不能够在运行软件并观察其结果的时候进行度量,但可通过对开发或维护过程的观察进行度量,这一类的质量属性包括可移植性、适应性、可复用性等。 2.2 软件体系结构对软件质量的影响 软件需求确定后,软件体系架构在软件质量中会起重要作用[3],有合理的软件体系架构,可以使需求变更产生的影响变得更小。如果没有合理的体系结构,先进的编程技巧也不一定能弥补体系架构对质量的影响。 软件体系结构问题包括软件系统总体组织和全局控制、通讯协议、同步、数据存取、给设计元素分配特定功能,设计元素的组织、规模和性能,在各个设计方案间进行选择。软件体系结构的设计是从问题域到软件解空间的第一步。一些体系结构方面的问题对软件的质量属性有重大的影响。比如,模块的层次可能影响系统的可修改性;功能的划分和封装可能影响系统的可扩展;构件间的通信协议可能影响系统的效率等。从另一方面看,良好的软件体系架构并不能确保系统的功能性需求及质量需求。后阶段的设计、实现等同样可以使系统的质量发生变化甚至损坏。毕竟,软件生命周期的任何阶段都对软件质量有或大或小的影响。因此,好的软件体系结构是良好系统质量的基础。 2.3 软件过程对软件质量的影响 从质量管理模式来看,软件企业按照某种软件生命周期模型来组织软件项目或软件产品的开发。目前比较流行的有瀑布型和迭代式开发方法。瀑布型的开发方法适合小型的、需求明确的软件项目,这种模型有个根本缺陷就是没有把用户需求反映在在整个项目当中。迭代式开发方法强调软件风险管理,把项目分成一个个的开发提交阶段,把里程碑处提交的产品提交用户反馈,并将反馈信息加入到下一个阶段的软件开发当中,其本质是基于产品开发的组织方式。 长期以来,软件开发过程中需求的变化,特别是软件使用后需求的变化,一直是制约软件质量提高的“瓶颈”[4]。随着软件产品或项目规模的扩大,软件产业的兴起,软件生产的组织方式也要从面向产品的生产组织转向面向过程的组织方式,面向过程的生产是软件产品生产的主流方向,必须以面向过程的生产组织方式,对软件需求获取、设计、开发、维护服务与支持的各过程进行预防为主的过程质量控制,对产品及过程的质量全部量化。 3 数据挖掘技术 3.1 数据挖掘和联机分析处理OLAP 数据挖掘是20世纪90年代迅速兴起的一个十分活跃的研究方向。其目的在于发现大型数据集中隐含的、不为我们所知的潜在有用信息,受到了数据库、人工智能、统计学和数学等领域研究人员的广泛重视,成为继Internet之后的技术热点[5]。目前,数据挖掘在销售、金融、电信、保险、教育、政府决策和基因工程研究等许多领域都得到了成功的应用,已产生了巨大的经济效益和社会效益。数据挖掘过程一般包括三个步骤,即数据准备、数据挖掘和知识分析和获取。数据准备用于选择相关数据用于预处理,包括消除数据噪声、弥补数据缺失和解决数据冲突,然后转换成适合挖掘的形式;数据挖掘则是采用有关算法对经过清洗的数据进行分析,其结果是大量的规则;知识分析和获取用于对产生的一系列规则进行评价,并从中抽取有用的知识,以辅助决策,如图1所示。数据挖掘有分类规则挖掘、聚类规则挖掘、关联规则挖掘、转移规则挖掘、例外模式挖掘、序列模式挖掘、Web挖掘、正文挖掘、多媒体数据挖掘、空间数据挖掘和时态数据挖掘等。 联机分析处理OLAP使用多维数据模型,在数据仓库中进行一系列统计操作,使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求。在企业当中得到越来越广泛的应用。 软件质量管理论文:浅谈军用软件质量管理 摘 要 本文简要介绍了军用软件特性,从软件分级管理、软件配置管理、SFRACAS三个方面探讨了如何加强军用软件的质量管理,为军用软件质量管理工作提供参考。 【关键词】军用软件 质量管理 软件配置管理 SFRACAS 随着武器装备信息化程度的不断提高,军用软件产品在武器装备上得以广泛应用,军用软件质量已经成为影响武器装备质量与安全的关键性因素之一,有必要采取措施加强军用软件的质量管理。 1 军用软件特性 军用软件是指应用于军事用途的软件。军用软件的特殊性使其开发和质量保障难度较大,具有以下特性: (1)军用软件通常要面临复杂的作战环境,可靠性、安全性要求高; (2)军用软件一般为嵌入式软件,对操作性要求较高; (3)大部分军用软件规模巨大,研制周期较长,成本较高,风险较大; (4)应用于军事用途,对开发人员、开发工具等提出较高的保密性要求。 2 军用软件质量管理措施 2.1 开展软件分级管理 军用软件应按照GJB/Z 102《软件可靠性和安全性设计准则》要求进行分级管理,按照软件失效的危险严重性等级分为A、B、C、D四个等级。其中A、B级软件失效可能导致人员死亡或严重受伤、系统报废或严重损坏,因此在软件开发的各个阶段必须开展危险性分析,降低风险。同时A级软件可能导致人员死亡或系统报废,因此必须对A级软件开展第三方测试,确保测试结果的独立性和权威性。由于军用软件的特殊性,如专业化程度更高,保密性要求高,使得第三方独立测试存在一定困难,可以考虑由军用软件承制单位进行测试,但必须由第三方组织和全程监督,必要时让军用软件用户参与进来,使测试结果更加准确有效。 2.2 开展软件配置管理 软件配置管理的对象是软件配置项。软件配置项就是在软件生命周期内各个阶段产生的各种形式的文档、程序、数据。软件配置管理目的是利用配置标识、配置控制、配置状态报告和配置审核建立和维护配置项的完整性,通过自定义三库管理策略,建立开发库、受控库和产品库,对软件配置项进行入库、访问、出库、维护、更改、等活动实施管理,以确保软件产品的正确性、完整性、可控性、可追溯性,主要包括以下四方面内容: 2.2.1 配置标识 配置标识主要包括三方面工作,一是定义项目生存周期中所建立的基线,二是识别和选择要管理的配置项,三是维护配置项标识。 2.2.2 配置控制 配置控制包括版本控制和变更控制两方面工作。软件产品为了适应不同的运行环境、不同的平台、不同用户的使用要求,导致同一软件产生或演化出不同的版本,必须进行版本控制。版本控制的目的在于对软件开发进程中文件或目录的发展过程提供有效的追踪手段,保证在需要时可回到旧版本,避免文件的丢失、修改的丢失和相互覆盖。版本控制是实现团队并行开发、提高开发效率的基础。变更管理是配置管理的一个重要组成部分,实现对需求变更及软件代码变更的高效管理。变更必须履行审批手续,首先由软件配置项负责人提交变更申请至配置管理员,再由配置管理员提交软件配置控制管理委员会进行评审,如批准及时修改并指定修改人,配置管理员将配置项检出至修改人员的开发库中进行修改,修改后经评审或确认批准后,由配置管理员将修改批准后的配置项重新入受控库(要求有版本升级记录),更新受控库状态报告;如没有批准修改或批准延后修改,配置管理员应向问题提出者提供未批准及批准延后修改的原因。当软件产品经过最终验收或交付后应提交配置管理员,入产品库。 2.2.3 配置状态报告 配置管理员通过配置管理系统收集当前基线配置项的状态,汇总形成配置状态报告,定期提交项目负责人审阅。 2.2.4 配置审核 配置审核主要是对软件开发过程进行审核,确保软件配置项正确可控,一般由质量保证人员单独执行。 2.3 建立SFRACAS SFRACAS即软件故障报告、分析和纠正措施系统,建立该系统的目的是及时报告软件发生的故障,分析软件故障产生的原因,制定纠正措施并验证其有效性,防止故障再次发生。军用软件承制单位应从软件研制开始建立SFRACAS,对故障实行闭环控制,有效地消除软件缺陷、故障,提升软件研制工作的质量。 建立SFRACAS应遵循PDCA原则,P代表计划(PLAN),D代表执行(DO),C代表检查(CHECK),A代表处理(ACTION),这四个过程循环执行,周而复始,促使军用软件质量不断改进。SFRACAS具体工作流程如下: 2.3.1 故障报告 软件在研制和使用阶段发生的故障,应由相关部门负责信息收集的人员予以及时、完整的收集,编制故障报告,并在规定的时间内向规定的管理组织报告。 2.3.2 故障核实 质量保证部门应组织有关人员对报告的故障内容都应按发生故障时的实际情况进行核实,故障核实可通过重现故障模式或依靠故障证据来完成。对缺乏证据的应给予说明。 2.3.3 故障分析 在软件的故障得到核实后,故障责任单位应尽快组织相关人员对故障进行分析,以确定故障原因,并编制故障分析报告。 2.3.4 故障纠正 故障原因确定后,故障责任单位的有关部门应根据对故障的分析结论,研究并制定纠正措施,编制纠正措施实施报告,并提交规定的管理组织审批确认,再下发有关部门组织实施。 2.3.5 纠正措施效果的验证 纠正措施实施后,有关部门应通过试验、试用等方法证实纠正措施的有效性,如达不到预期效果,则需复查故障的原因或进一步采取其它的纠正措施,直至故障彻底解决。最终,将确定的纠正措施及其实施效果提交给规定的管理组织。 2.3.6 故障信息管理 故障解决后,软件承制单位应统一管理保存全部故障信息报告及有关文档资料,并建立故障信息库,供有关人员查询。 3 结束语 对军用软件的质量管理,是当今武器装备质量管理的重要组成部分。本文简要介绍了军用软件特性,从软件分级管理、软件配置管理、SFRACAS三个方面探讨了如何加强军用软件的质量管理,为军用软件质量管理工作提供参考。 软件质量管理论文:软件工程与软件质量管理浅析 【摘要】本文首先从面向对象技术和重用的角度对软件工程进行了分析,然后结合现有的软件工程开发技术及管理成果,对提高软件生产效率的开发方法进行了进一步的探讨。 【关键词】软件工程 软件质量 质量管理 目前我国软件开发行业中拥有大量优秀的软件开发人员,虽然如此,但是我国企业的软件开发管理却始终处于一种比较低的水平上,近年来随着国内工业企业逐渐与国际标准相接轨,纷纷进行国际标准化质量体系认证,多数软件开发企业已经开始意识到软件质量管理的重要性,开始进行有关软件质量体系的标准化认证等工作,鉴于此,本文主要针对软件工程与软件质量管理领域的一些问题展开分析。 一、软件工程分析 (一)面向对象的开发方法 最终产品的特性与结构主要由开发方法所决定,在工业化过程中逐渐将软件工程技术纳入到规模化生产中,在系统开发过程中各个阶段之间的过渡变得更加平滑,系统模型也更容易维护,已有成果得到了最大程度的重用,这些目标的实现皆得益于对面向对象技术的应用。很多问题的存在利用传统的功能/数据方法根本不能得到有效解决,首先,可以利用功能/数据将系统分解成数据和功能两部分,功能部分体现出主动的色彩,伴随着相应的行为,数据部分则体现出了被动的色彩,被其不同的行为所利用;其次,人们利用功能/数据方法开发系统和软件时,不同系统和不同软件之间始终存在一些差异,一般来说是不能利用现实生活中的实体建立系统模型的,需要将实体中的功能及数据提取出来;最后,继承是面向对象技术的主要特点之一,从最大程度上利用现有的软件产品。因此,在一些大型系统开发过程中应对面向对象的技术进行有效的应用。 (二)重用 在系统开发过程中都希望可以对已有的成果进行尽可能的应用,重用可以使生产效率得到最大程度的提高,软件工程中解决危机问题通常会使用重用的方法,但是传统软件工程开发方法并不能对已有软件产品进行尽可能的应用。重用软件代码在工作中比较常见,对于生产效率的提高非常有用,但是从软件工程领域来看,解决问题的方式并不唯一,从软件开发的角度上来看,会从更为广泛的范围内对重用技术进行应用。此外,文档的重用也比较常见,不管是开发阶段还是维护阶段,通常重用文档的方式存在很多不便,加上格式的重用率比较高,因此利用面向对象的技术可以为其提供较大帮助,为重用事务的分配提供了良好的解决方法。 二、软件质量管理分析 软件质量管理领域已经提出了质量工作的相关特征,在全公司范围内展开质量控制及监督等工作,组织相关人员参加业务培训和教育,从全国范围内促进质量的提高,具体来说起其内容主要涉及到与人、机构有关的内容,要想提高质量就要与人发生关系,质量管理不能脱离人而存在。现阶段很多企业都专门设置了质量管理部门,这意味着现在很多企业领导者开始意识到了质量管理的重要性,但是这些企业对质量管理的认识也只停留在了这些部门上,企业中其他部门的人员都认为质量管理就是这些部门的事情,跟自己无关。而事实上质量的提高与企业中所有员工都有着必然的联系,企业中所有的员工都会对质量的提高起到或多或少的作用,而质量管理部门设置的目的在于针对质量的提高进行审查与监督,并展开质量培训,特别是最高管理者,只有这些人了解了质量管理的重要性,才能对质量管理措施进行贯彻落实。全面质量管理作为保证产品质量的一项重要工作,企业应将质量作为主要目标,所有企业活动都要围绕质量的提高进行。 现在我国多数企业已经将全面质量管理作为企业内部的主要管理模式,其内容主要包括生产、管理等方面,体现了效率性、科学性等一系列特点。之所以要在企业中进行全面质量管理,其主要目的在于将生产中存在的缺陷消除,这些缺陷主要是由人工和管理两方面原因导致的,其中,由于人工引起的缺陷比较容易消除,只要由工人在生产过程中加以注意就能使质量得到提高,并注意工人的培训,认识到缺陷产生的原因和解决的方法。因为管理而产生的缺陷往往是不容易解决的,因为这些缺陷往往是不易察觉的,在管理上形成了交叠,加上软件产品测试很难将方方面面考虑到,其中难免存在着一些隐藏的缺陷,所以管理制度的建立对于消除这些缺陷具有重要意义,以达到提高质量的目的。 三、结语 综上所述,近年来随着科学技术水平的快速发展,计算机的应用领域开始不断扩大,这种情况下软件系统开发也显得越来越复杂,很容易出现出现“软件危机”,为了对软件可维护性差、无法完成软件进度等问题进行解决,软件工程学科由此产生。然而开始时人们因为过分重视软件工程技术,忽视了质量管理的重要性,所以有关软件工程管理的研究并不多,本文主要基于这一方向展开了分析,供大家参考。 软件质量管理论文:浅谈航空机载软件质量管理过程的三性 摘要:通过参与机载软件研制项目的研发过程,并对机载软件全生命周期的质量管理过程进行研究和分析,从中提炼出机载软件在其生命周期过程(本文开发生命周期过程指从计划,到需求捕获和确认,经设计,到编码集成直至交付的过程)中的质量管理三个基本特性(完整性、符合性和可追溯性),同时通过对实际状态的对比分析和研究,针对机载软件质量管理的三个基本特性的意义和作用,提出了机载软件质量管理的三个基本特性在其生命周期质量管理过程中的实际应用,强调使用过程方法进行机载软件质量管理工作,以确保机载软件质量管理的系统性、根本性地全面可持续开展,继而确保机载软件在开发生命周期过程中满足相关要求,最终确保按照生命周期过程开发和生产的航空机载产品满足客户和适航的要求,最终确保产品的交付和盈利,争取更多的市场份额。 关键词:质量管理;完整性;符合性;可追溯性;适航;机载软件 一、前言 目前中国国内航空机载软件的自主研发起步比较晚,而大部分参与的公司/人员,由于之前质量管理的经验,形成一些固定的质量管理思维。随着国内民用航空产品市场的增加和国家对民用航空产品的重视,以及机载软件的技术日益发展成熟,我们需要更加重视航空机载软件质量管理的研究和分析,确保航空机载软件满足客户和适航的要求。航空机载软件质量管理相关的基础和标准,不管是国际航空标准AS9100,还是一些工业标准(包括DO-178B),以及一些已经的适航标准(包括Order8110.49)等等,更加关注产品在计划、设计、生产直至交付的所有节点中的每个过程,注重质量管理过程体系和程序的建立;按照建立的体系和程序执行相关过程,强调所有过程进行记录并保证可追溯性。笔者通过对航空机载软件生命周期研发过程质量管理的研究,包括AS9100、适航法规、先进的工业标准等进行研究,对实际质量管理状态进行总结,提炼出质量管理的三个基本特性――完整性、符合性、可追溯性,就航空机载软件生命周期过程中如何贯彻和应用这三个基本特性进行了浅显的分析,确保航空机载软件的交付满足客户及适航要求。以下内容是个人就质量管理的三个基本特性的概念及应用进行浅显的论述。 二、质量管理三个基本特性的概念 要想在机载软件的生命周期内贯彻质量管理的三个基本特性,首先需要了解三个特性的基本概念,只有对其概念和意义的理解,才能更好地在生命周期过程中应用和贯彻这三个基本特性。 1.完整性,指应确保产品生命周期过程中质量管理体系的完整覆盖。完整性是质量管理的基础,如果质量管理体系不能完全覆盖所有操作过程,也就谈不上质量管理。完整性也可以总结为“写我所做”; 2.符合性,指在设计和制造以及交付过程的所有操作应符合相应的文件/程序、符合相应的作业指导书以及产品符合经批准的设计和工艺。符合性是质量管理的主体,也是质量管理的执行过程。符合性可以总结为“做我所写”; 3.可追溯性,即应将所有过程中产生的数据进行相应的记录,确保在发生不符合时,能获得相应的数据分析的支持。可追溯性是质量管理的反馈,也是质量管理过程中持续改进的必备。可追溯性可以总结为“记我所做”。 三、理解和应用 可以将质量管理的三个基本特性总结为质量管理中的三句话:写我所做,做我所写,记我所做。也通过这三句话,可以清晰的发现这个三个基本特性涵盖了航空机载软件质量管理的全部过程和要点。以下内容就笔者在现有质量管理状态分析的基础上,分别就这三个特性如何应用,进行简单的阐述: 1.完整性 完整性,作为质量管理的基础,首要任务是是建立完整覆盖顾客要求、法律法规的质量管理体系。如何建立?民航产业有自己行业的质量标准――AS9100,按AS9100的条款,建立质量管理体系,形成质量管理体系框架。对于航空机载软件来说,仅仅满足AS9100的要求是不够的。在质量管理体系的建设中,必须同时要考虑适航规章的相关要求,包括DO-178B、Order8110.49。笔者认为以下图形象地形容AS9100和适航标准之于质量管理体系之间的关系: 图1 质量管理体系和AS9100及适航要求三者间的关系图 根据实际参与项目预投产质量管理体系的适航审定经验以及实际参与项目的开发经验,可以使用符合性矩阵分析的方法,通过建立程序和AS/9100及适航标准三者之间的符合性矩阵,一方面明确AS9100和相关适航标准的各方面的要求,一方面在矩阵中可以明显地看出当前质量管理体系完整性状态。下表为方法中采用的简易的矩阵表: 注1:由于篇幅有限,只能简单列出表头,其中横行中可以列出AS9100条款号;左侧纵列可以列出相关适航条款要求,在表的右侧某一栏中可以列出体系程序的名称。表格可以根据条款的详细程度进行调整;表格因人而异,可调整以适合本企业的相关要求。 注2:对应矩阵中,可以采用标志方式,如完全满足,用表示;如果AS9100条例满足,但是不满足适航要求,用表示;如AS9100条例不满足,但是适航要求满足,用表示; 随着适航标准不断更新以及产品研发经验的积累,公司同样需要不断改善和持续改进体系文件以切实满足质量管理的完整性要求,如DO-178B升级为DO-178C,则公司应针对升级前后版本识别,确保质量管理的动态完整性。完整性,是质量管理过程的基础,也是前提,只有确保质量管理中体系文件/程序的完整覆盖,才能有效保证质量管理的实施,才能确保企业有效率、有组织的进行。 2.符合性 符合性,之于完整性和可追溯性来说,起承上启下的作用。为确保符合性,首要任务是建立满足符合性的方法。日本质量大师石川馨认为:“当引进某种做事的方法时,很自然要考虑这种方法是否合适。通常我们根据过去的结果与经验或传统的方法做出决策。适当的评估将使这种决策变得更加有效,同时工作过程中的数据对于评估工作来说也是至关重要的。”对应质量行业中老话“不是最先进的方法就是最佳的方法,选择最合适的方法才是最佳的方法”。对于一个企业的质量人来说,应该清晰自身企业所处的规模、阶段,并选择相应的方法以确保符合性。符合性,是PDCA过程方法最重要的环节。笔者个人觉得对于一个企业来说,简要的操作流程可以按照如下流程进行: 图2 符合性实施流程图 注:对于任何产品来说,数据的积累是产品优化,行业的发展的基础。 结合上述流程图,以机载软件生命周期过程中的研发过程为例,具体操作可以参考如下: 针对机载软件研发过程,利用电子检查单(peer review)方式进行过程把关。 对各个层次的人员进行相关业务知识方面培训,要言明使用检查单的意义和作用。 建立每个过程作业指导书,找出每个过程的关键要素,将关键要素导入到电子数据库中。 依据检查单内容,对实际项目研发过程进行评审和检查,将每个关键要素的检查结果导入数据库。 以数据库为基础,针对检查结果中出现的问题分析,进行相关管理过程和/或相关产品设计构型进行改正和/或预防。 注:实现数据库与检查单相连接,通过在数据库中输入关键字,使其自动生成检查单;一方面减少不同素质的人员造成检查单内容的差异,另一方面有利于人员更专注于产品检查和改进的本身,提高执行效率。 符合性,是一个持续改进螺旋过程,是建立在公司的质量管理基础上,逐步的改善,根据机载软件的不同阶段选择相应方法以确保符合性。 3.可追溯性 对于机载软件来说,可追溯性的意义在于验证完整性和符合性,另外也在于后续过程的软件维护和升级,以及航线过程中如果发现问题,可以及时排查出问题所在,找到根本原因。机载软件的配置管理过程是确保可追溯性的前提。在DO-178B和AS9100中可以查询有关配置管理的规定,根据AS9100要求和适航要求以及DO-178B建立配置管理程序。在机载软件的配置管理过程中, 首先需要针对机载软件相关阶段建立配置基线,包括需求基线,设计基线; 针对所有需求、源代码、目标代码建立追溯矩阵; 如果机载软件已经建立配置基线,其中的任何更改,都需要按照配置管理程序(计划)的更改控制流程实施更改; 按要求定期进行配置审核,并编制配置管理报告; 按照加载规程实施机载软件加载前环境确认,并填写加载记录。 现如今各个企业更加重视信息化管理,在实际工作过程中,不断引进新的工具软件,如对于机载软件需求的管理,一般会采用DOORs软件进行管理。未来的信息化系统应该更是一个高度集成的信息化平台,能够实现简单输入自动实现,容易检索等等,给员工工作带来很大的便捷性,降低了人为错误,进一步提高了工作效率。而所谓高度化集成的信息平台,个人觉得可以通过建立不同的模块,然后在模块后台实现数据库支持。以航空机载软件的几大过程为例,包括计划过程,,需求过程,设计过程,编码过程过程,供应商管理过程,建立相应的模块,在各个模块之间共享同一个数据库;对于每个模块之间再细分子过程,为每个子过程建立窗口。高度集成化信息平台能够将一个机载软件完整生命周期所有信息记录在同一平台上实施分类保存,可以通过菜单拉取机载软件配置项,了解其当前状态,链接到供应商管理,进一步了解供应商的需求和编码状态。 可追溯性,是质量管理过程的体现,只有实际工作中进行了相应的记录和标识,才能确保机载软件的可追溯性。也才能真正确保机载软件产品满足初始适航和持续适航能力。可追溯性确保了质量管理真正的实现。 四、三个基本特性之间的关联 三性,用综合性的话语来描述:针对航空机载软件的每个过程,按照AS9100/适航要求建立完善的机载软件质量管理体系程序和方法以及计划;每个过程的操作按照既定的程序进行,做好相关记录。完整性、符合性、可追溯性,用三句话概括他们的关系:写我所做,做我所写,记我所做。实际质量管理过程中,却不能将这三个特性割裂开来对待。在实际操作中,完整性是质量管理的必备因素,充分条件,只有满足了完整性,才能确保符合性和可追溯性的实现;符合性是质量管理过程的主体,满足了符合性,才能体现了质量管理完整性的同时能确保质量管理的可追溯性;可追溯性是质量管理的必要条件,可追溯性的实现才能体现完整性和符合性的实现。三者之间密不可分,环环相扣。当三性中有一点不满足要求,其他两性也就不能满足要求,进一步说明质量管理失控。 在实际机载软件的需求和设计编码中,只有确保各项活动满足质量管理的三个基本特性――完整性、符合性、可追溯性,才能实现质量的过程方法管理,才能充分说明质量管理的完善有效,才能真正确保航空机载软件满足系统功能和适航要求,最终确保产品满足客户的要求。 五、结语 对于机载软件来说,实现其功能和运行已非难事,难点是如何使航空机载软件在满足安全的情况,实现成本降低,技术性能提高,以持续满足客户和适航要求,最终获得更高市场份额。相信通过满足质量管理的三性:从小处来看,可以培训企业所有员工的质量意识,在航空机载软件研发生命周期中更注重过程的输入和输出以及过程活动,降低了研发的成本;从大处来看,也使得缩小与国际先进航空研发企业的思想和流程上的差距,使企业有更多精力投入产品的技术研发和创新过程,以进一步缩小与其之间的技术差距。 笔者清楚,就单单质量管理本身来说,要想建立一套行之有效的质量过程管理方法,并实际应用于企业,为企业带来益处,并非一朝一夕,需要很长的路要走;笔者更清楚,质量管理,受制于产品研发技术,单单发展好质量管理流程,并不能带来根本性地变化。要想真正实现中国自主研发的民航产品进入市场,甚至走出国门,需要从技术、管理、人才等各个方面着手进行循序渐进的改善。套用屈原前辈的一句话“路漫漫其修远兮,吾将上下而求索”。 软件质量管理论文:基于质量管理体系和CMMI的气象水文软件质量控制方法浅析 摘 要:论文针对气象水文软件开发中存在的问题,分析了国内外常用的软件质量控制方法以及它们所存在的问题,提出了将质量管理体系和CMMI相结合的质量控制方法,建立了一种新的软件质量控制模型,为全面提升气象水文软件的质量提供新的思路。 关键词:软件质量;质量管理体系;CMMI;GJB9001B-2009;质量控制模型 软件在装备系统的研发过程中起着至关重要的作用,软件产品的质量已逐步成为军队信息化建设的核心,软件质量关系到武器装备系统的生命,关系到军队信息化建设的整体水平,一旦软件失效,就可能导致整套装备系统的失效,甚至导致战争的失败。目前,软件在研发过程中存在诸多问题,导致软件的质量和可靠性远不如人意,特别是与硬件的可靠性相比,软件的可靠性一般要低一个数量级[1]。 1 软件开发中存在的问题 (1)装备系统研发软硬件管理不均衡,过分强调硬件。武器装备的研发是一个非常复杂的系统工程,涉及到技术和管理的方方面面,而且其各个因素又是相互关联和制约,不均衡的过分强调某几个方面都是不科学的。而现状是系统的研发过分强调硬件的重要性,软件只是被当做硬件的一个附件来对待,未作为产品列入装备系统计划和技术配套表。 (2)总体单位不抓配套单位分系统软件的质量,监控力度不够。在软件产品的开发中不遵循软件工程的要求,而且武器装备系统的总体单位只抓本单位开发的软件质量,对配套单位分系统软件的开发过程监控不力,对配套单位交付给总体单位的软件普遍不进行软件验收测试和软件验收评审。 (3)软件设计文档的编制不规范,不符合国军标要求。编制时缺少文档化的过程描述,尤其是缺少工作文档、风险管理文档和工作量统计文档,而且文档编制水平和质量参差不齐。特别严重的是大多数单位的文档是在软件编程完成后补写的,失去了以文档指导软件实现的作用。 (4)高层管理者对软件管理不够重视,软件配置管理不到位。管理要从高层做起,但是多数高层却忽略了管理的重要性,有的软件开发组未设配置管理员,有的单位对配置管理的概念(如对基线标识和配置控制等)模糊,对软件开发库、受控库的设置与管理不当,致使软件在出厂前基本不受控。 (5)对软件测试的概念和方法认识模糊,缺乏对过程和产品进行测试。软件开发测试人员和质量控制人员之间缺乏对对方工作的基本认知,双方难以沟通,阻碍了研发工作的顺利开展。部分单位对第三方测试存有疑虑:担心泄密,难以保护知识产权,或担心经费不足和增加工作量延误工程进度。 上述问题是装备研发中普遍存在的现象,亟待改进。国内外的经验说明,为了解决上述问题,最根本的一条是必须“树立软件产品的观念”和“用软件工程方法组织软件开发”[2],并按照软件工程方法的基本原则不断改进软件开发过程。现在国内比较常用的控制软件质量的方法是质量管理体系法,而国外比较流行的是运用CMMI(Capability Maturity Model Integration,即能力成熟度模型集成)来控制软件的质量。 2 软件质量控制的常用方法及缺陷 2.1 军用软件研制质量控制的一般做法及缺陷 我国一直采用质量管理体系中全面质量管理的原则来控制军用软件的质量。按照全面质量管理的观点,“产品质量是设计、生产出来的”,关注软件开发、研制的过程,通过强调过程模式,将组织内所有的工作定义为一个个明确的过程来进行质量保证和评估,使影响软件产品质量的因素在产品形成的全过程中始终处于受控状态,以此来提高其使用的可靠性、安全性,突出的把持续改进的过程作为提高质量管理体系水平的重要手段。 目前,军用软件研制质量控制的整套模型源于GJB9001B-2009,该国军标适用面广,可面向于硬件、软件、流程性材料和服务四大产品[3],主要强调的是硬件产品的质量控制,对军用软件的适用性稍弱,没有针对软件产品及其研发的特点展开说明,尤其是在型号的不断改进,装备状态的多次更改之后,对军用软件的配置管理等方面的更高层次的问题,缺乏行之有效的解决方法,在实施该标准时无法引起高层领导的重视,没有对质量提出更高的要求,忽略了该标准反复强调的“质量管理必须坚持持续进行质量改进”,导致研制单位无法拥有一套适用的质量管理体系。 2.2 国外软件研制质量控制的一般做法及缺陷 CMM(Capability Maturity Model for Software,即软件能力成熟度模型)是对组织软件过程能力的描述[4]。CMM 中最为核心的思想是:只有好的过程才能造就好的结果。它侧重于软件开发过程的管理及软件工程能力的改进与评估,是一种高效的管理标准,有助于最大程度地降低成本,提高产品的质量和用户满意度。CMMI是CMM模型的最新版本,它把软件开发视为一个过程,并根据这一原则对软件的研发和维护进行过程监管,以使其更加科学化、规范化。CMMI项目为军工界和政府部门提供了一个集成的产品集,其主要目的是消除不同模型之间的不一致和重复性,降低基于模型的改善成本。CMMI将以更加系统和一致的框架来指导组织改善软件过程,提高软件产品的研发、获取和维护能力。 CMMI是目前国际上最流行、最实用的一种软件质量控制模型,强调各个方面的均衡发展,注重基于模型的、循序渐进的过程改进,可以帮助软件企业有效地管理软件过程,但是CMMI也存在缺陷,CMMI本身是国外的体系,是基于法治的体系,而我国强调的是人治的氛围,这种文化性问题是CMMI能否适用于我军的关键;实施该体系时单位对于软件研发人员缺少必要的有关质量管理方面的培训,导致软件研制人员与质量管理人员难以沟通,阻碍了研发工作的进度;CMMI只强调关键过程域,无法保证软件产品能被成功的研制出来。 3 基于质量管理体系和CMMI的气象水文软件质量控制方法 3.1 质量管理体系与CMMI的共同性 质量管理体系与CMMI面向的都是组织和软件产品的质量问题,都是以现代质量管理理念为基础,充分体现了质量管理、质量保证、全面质量控制、全面质量检验等思想。它们都非常关注产品的质量,都以相同的质量原理为基础,都强调通过良好的过程来保证产品的质量,都在强调外部沟通的同时强调内部沟通,都以组织的领导者和管理者作为最关键的成功条件,都采用PCDA方法,都重视规范化、活动规程和必要的文档与记录。 3.2 质量管理体系与CMMI的差异性 作为质量管理的标准性文件,CMMI与GJB 9001B是有着明显的差别的。GJB 9001B是一个适用于各类产品的通用型标准,主要是针对制造业制定的,而CMMI是专门针对软件开发设计的,可以帮助软件企业有效地管理软件过程;GJB 9001B强调完整的组织体系,可以用来建立符合ISO9000管理的组织管理,而CMMI本身对管理体系没有明确要求,默认组织体系是有效的、健全的;GJB 9001B评估的目的是要认证组织是否建立了有效的质量管理体系,为此给出比较简明、科学、原则性的要求,评估出结论合格与否,而CMMI则用于评估组织的软件能力的改善,确定采购风险,或找出软件过程的强项和弱项,明确改进途径,为此给出良好软件过程的详细描述和能力提高的简明科学途径。 3.3 基于质量管理体系和CMMI的气象水文软件质量控制模型的建立 GJB 9001B鼓励在建立、实施质量管理体系以及改进其有效性时采用过程方法,通过满足顾客要求,增强顾客满意,而CMMI的本质是通过对软件研制过程中关键过程域的精确定义,来使软件研制从一个不确定的“黑箱”操作过程,变成一个各步骤可视的、可对偏差随时控制的“透明”操作过程。根据质量管理体系和CMMI的相关理念和技术要求设计出适用于气象水文软件的质量控制模型。 质量控制是一个循序渐进的过程,该模型将质量控制归纳成七个阶段:(1)明确准备目标、项目范围和资源需求,依据CMMI的相关标准对软件的现状进行评估,定义相应的目标和指导原则,为下一阶段准备好相应的评估资料;(2)根据客户的要求和技术指标制定软件的开发流程,该阶段表达了组织层上下同心、拟定目标和愿望的状态,这是对将来有一个共同思考的过程;(3)在新的开发流程下引入GJB 9001B质量管理体系的相关要求,对组织当前的状态进行判决,及时向组织传达发现的情况和问题,并根据GJB 9001B的要求,确定需要进一步改进的方向;(4)根据上述要求拟定软件管理流程,确定关键业务主题、各团队的角色和职责、需要进行的活动以及改进进度安排;(5)在此流程的基础上导入成熟的开发和管理理论及方法,并根据客户的要求建立相应的规则、度量方法、模板,作为改进和实施的基础;(6)按层次和相关要求编写各层次文件,根据国军标的要求编写相应的工作文档、风险管理文档以及工作量统计文档;(7)依据软件运行的实际情况改进流程,在这个过程中组织的所有人员确定需要改进的目标,分析现有的工作步骤、客户需求和存在的问题,给出改进方案,验证并更新实施流程,在提高技能、绩效的同时,也提高软件的质量。质量控制是一个总结、再学习和提高的过程,通过不断的改进建立下一轮工作的更高目标,制定组织进一步工作的计划,只有通过这种反复的评估改进才能不断提高软件质量。 4 结束语 在信息化高速发展的今天,要高质量、高效率地开发出复杂的大型软件系统已不再是单个质量控制方法所能完成的任务,只有通过融合多种方法的优点推出一种新的质量控制模型,才能保证气象水文软件产品的质量和可靠性。本模型旨在GJB 9001B的基础上结合CMMI的理念和技术要求,把GJB 9001B作为CMMI的保障,而把CMMI作为GJB 9001B的“使能器”,两者相互促进,全面提升气象水文软件的质量及服务能力,进而提高武器装备软件的质量。 软件质量管理论文:仿真训练软件质量管理中的“三库”建设研究与实践 摘 要 为了加强仿真训练软件开发过程中状态变化的控制,针对仿真训练软件质量管理中存在的问题,在软件开发过程中建立“三库”,并通过“三库”的有效管理实现配置管理的部分功能,达到提高仿真训练软件质量和质量管理水平的目的。 【关键词】仿真训练 软件 质量管理 三库 1 引言 我国信息化建设突飞猛进的发展,给我们的工作和生活带来很多便捷。无论是在学校、军营,还是机关、农村,信息化覆盖率越来越高,让人们真切感受到科技带来的独特魅力,人们可以足不出户就能体验到科技给予我们的全新的感受。科技让我们距离世界很近;科技让我们工作或生活更加轻松;科技让我们颠覆过去的思维及工作、生活方式。 信息化建设如火似荼地发展,同时也催生了仿真训练软件的数量越来越多、规模越来越大、结构越来越复杂,软件质量对仿真训练软件可靠性的制约也日益凸显。为了满足日益提高的仿真训练软件质量要求,确保软件质量和可靠性,做好软件质量管控工作具有十分重要的意义。 作为软件质量管理的核心内容,配置管理是可以控制软件变化的科学管理。软件配置管理的主要内容集中在软件的版本控制、变更控制和过程支持。其中,设立“三库”,即开发库、受控库、产品库,对软件技术状态变更和版本控制的管理更是其最主要、最核心的问题,也是配置管理的重点。在军用仿真训练软件开发过程中,通过对软件“三库”的有效管理来达到控制状态的变化和标识的情况,并严格履行软件产品的出入库规定,从而实现对软件的质量监督。 2 “三库”的含义 “三库”是指软件开发库、软件受控库和软件产品库。“三库”的建立是配置管理当中的一个重点内容,不仅可以对软件开发过程中软件状态的变化进行控制,还可以对软件配置项进行有效的标识,同时又可以避免复杂的配置管理技术给开发成本造成太大的影响。 GJB 5000A《军用软件能力成熟度模型》、GJB 5235《军用软件配置管理》和GJB5716-2006《军用软件开发库、受控库和产品库通用要求》都有对“三库”建设的相关要求,其中,GJB5716-2006中给出“三库”的定义分别是: (1)软件开发库(software development library)是指在软件生存周期中,存放软件配置项的集合。 (2)软件受控库(software controlled library)是指在软件生存周期中,存放已通过测试或评审且作为阶段性产品的软件配置项的集合。 (3)软件产品库(software product library)是指在软件生存周期中,存放已定型(鉴定)且供交付、生产、检验验收的软件配置项的集合。 通俗一点的解释“三库”的含义是: 软件开发库就是在软件生存周期的某一个阶段期间,存放于该阶段软件开发工作有关的计算机可读信息和人工可读信息的库;在软件生存周期的某一个阶段结束时,开发库内的内容经过评审通过后,就可以进入到软件受控库中;在软件生存周期的组装与系统测试阶段结束后,形成的可以直接交付给用户的最终产品或可以在现场安装的软件就存放在产品库中。 3 仿真训练软件质量管理中存在的问题 目前,仿真训练软件的质量管理工作还没有采取有效的管理办法和措施,软件质量还远不能满足软件开发的要求,软件开发成本与进度计划难以准确估计,对软件产品质量的评价还缺乏标准和手段。归纳起来,军用仿真训练软件质量管理中存在的问题具体表现为以下4个方面: 3.1 软件项目质量管理意识不强 现阶段,大部分仿真训练软件开发研制单位质量管理意识不强,在软件开发过程中没有按照质量管理体系要求行之有效的管理和监督。在软件开发过程中,缺少质量保证大纲等质量保证文件和阶段性的评审制度,软件的质量保证工作基本上是由软件开发者自身完成的,而实践已经证明,采用这种方法开发的软件是无法保证软件的质量的。 3.2 缺乏软件技术状态管理和控制 在仿真训练软件开发过程中,软件的技术状态非常多,软件的一条语句或一个函数的修改都可能造成软件部分功能无法正常运行,甚至整个软件瘫痪。所以,一旦软件出现故障,由于没有对软件的技术状态实施管理和控制,很难快速准确的找出故障原因,严重的情况下,还会造成更大的损失,直接影响整个军用仿真训练软件的质量。 3.3 软件测试不够充分 大多数仿真训练软件开发单位没有设立独立的软件测试部门和专门的软件测试人员,而是在软件开发的各个阶段由开发人员采取自己设计、自己编程、自己测试、自己维护的方式来完成的。由于软件开发人员任务重,他们在测试上不可能花费很多时间和精力,所以很容易把软件测试环节变成只是走过场、讲形式,导致测试的作用和可信度大大降低,一些隐含的错误和缺陷被遗留到软件交付之后的运行阶段。 3.4 对软件文档的重视程度不够 软件文档是软件的一个重要组成部分,是保证软件质量的一个重要手段,它关系着整个软件的有效运行和维护。在军用仿真训练软件开发过程中,开发人员没有充分认识到文档在软件开发过程中的作用,所以导致开发人员对文档编制不感兴趣,编制不及时;软件文档内容不完整,与开发过程不一致,格式不规范;文档审核和管理不够严格,未经审批可随意更改文档内容等问题,最后造成软件的透明度低,软件可维护性和可移植性不好,给软件研制和维护带来很多困难和问题。 4 “三库”在仿真训练软件开发过程中的应用 在仿真训练软件的开发过程中,软件的技术状态是在不断变化的,软件在各个阶段的配置项内容是不相同的,软件的版本也是存在更新的情况。因此,对软件技术状态的管理和控制是保证军用仿真训练软件质量管理的关键。“三库”质量管理是软件质量保证的一个非常重要的手段,也是软件产品形成过程技术状态管理的核心任务。 4.1 建立“三库” 按照相应国军标的要求,在仿真训练软件生存周期中,要建立软件“三库”,通过对“三库”的集中管理,实现对软件开发过程中状态变化的控制和对软件配置项的正确有效的标识,以确保仿真训练软件产品的正确性、完整性、可控性、可追溯性。 4.1.1 开发库 从技术状态形成过程、有效控制和管理的角度看,在仿真训练软件完成详细设计阶段工作之后建立软件开发库。此时将未进行测试和评审的软件和软件相关设计文档等软件配置项存放到开发库中进行集中管理,并由软件开发项目组或分系统负责。 4.1.2 受控库 软件受控库反映的是软件研制开发过程的轨迹。在仿真训练软件形成过程初、中期等阶段建立软件受控库,对通过测试和评审,确认正确的软件版本、完整的软件文档材料,以及其它相关软件配置项,采用软件受控库管理,由系统总体负责管理。 4.1.3 产品库 在仿真训练软件研制开发的末期建立软件产品库,对通过综合测试(验收)的软件、完整的软件文档材料、软件生命周期更改的版本,以及开发研制该软件产品的相关的成套软件(包括开发环境和开发工具)集中控制管理,由研制单位质量管理部门负责。 4.2 软件开发库的管理 软件开发库建立在承担仿真训练软件开发任务的项目组,由项目组质量管理人员或分系统负责人(无分系统的由项目负责人)负责日常管理和维护。软件开发库中管理的内容包括软件开发、测试阶段对应的文档和“初始阶段”的软件。 4.2.1软件开发库入库的内容 (1)按照对应国军标要求,软件在开发过程中规定的所有系统的和阶段设计文档,包括:软件开发计划、软件技术规格书、软件需求规格说明书、接口需求规格说明书、概要设计说明、详细设计说明、接口设计文档、软件测试计划、软件测试说明、软件测试报告、软件配置管理计划等。 (2)软件开发过程中各阶段所产生的计算机软件部件、计算机软件单元及其源程序代码、目标代码和数据定义文档,软件开发过程中各阶段进行软件测试的测试用例和测试结果等。 4.2.2 软件开发库的控制要求 项目组首先根据开发软件的规模,将符合项目标识、版本等软件配置要求的软件配置项入库控制,在此基础上对开发库的每一项内容(配置项)进行标识,由专人负责记录开发库中每一个配置项的位置、标识和入库时间。如果有某个配置项需要进行修改,则需要按权限实施更改,并必须通过项目负责人的审批。在进行更改操作的同时还下需要填写《软件开发库更改记录表》以记录开发库中的有关更改信息,并保存更改前的软件或文档的标识和版本。出库控制应按规定的权限出库,记录有关出库的出库项、软件提取人和出库时间等信息。 4.3 软件受控库的管理 在仿真训练软件测试工作开始之前需要对开发库中的软件配置项进行确认工作,然后从中提取被测软件和相应文档进行测试。通过认可的测试或评审的软件配置项就可以转库到软件受控库。 4.3.1 软件受控库入库的内容 软件受控库入库的内容必须是通过测评或评审的软件配置项,以及是仿真训练软件开发单位或用户认可的内容。具体内容包括:可行性研究报告、项目开发计划、软件需求说明、概要设计说明、详细设计说明数据库设计说明、软件测试计划、软件测试分析报告、用户手册、操作手册、软件维护手册、项目总结报告、项目验收报告、质量要求文档(质量保证大纲、标准化大纲、可靠性和维修性保证大纲等)、软件(源程序、目标代码、编译成目标代码的详细步骤、可执行程序和写入可编程器件的程序等)、软件设计更改报告及审核文档,以及所有文档的电子版本。 4.3.2 受控库的控制要求 仿真训练软件的受控库控制要求要比开发库更为严格,受控库的管理控制由承研单位的质量管理部门负责,软件开发人员受控使用。 软件开发库中通过测评和审核的软件配置项必须转入到受控库进行管理,每次访问需按权限,并要通过项目负责人和质量管理部门负责人联合审批才可获得批准,同时还要记录访问人 、访问时间、访问项、访问批准人等信息。出库控制时,软件提取人的申请,项目负责人和质量管理部门负责人审批,并进行出库信息登记。更改控制时,软件开发人员先提出更改申请,质量管理部门向有关人员更改信息,并且组织评审,待更改内容通过评审后方可按要求办理出库,转入到开发库中进行更改;完成更改后按相关要求重新入库,并及时向有关人员更改信息。 4.4 产品库的管理 软件在通过综合测试或验收之后,其配置项应转入软件产品库进行管理。而其它项应纳入承研单位的档案管理。 4.4.1 产品库的内容 软件产品库入库内容应是已经完成了综合测试等待交付给用户运行或者是现场安装的最终的软件产品,具体包括可执行程序、系统配置文件、数据文件、安装文件以及电子文档和书面文档。 4.4.2 产品库的控制要求 产品库的管理控制直接由军用仿真训练软件承研单位的科研部负责。对软件产品库须按相关要求进行入库、访问、出库、更改、配置状态报告、配置审核等的控制。 产品软件版本必须与设计文件及其电子版同步归档,软件档案必须与其纸质软件文档相符。产品软件归档媒体一式两套,一套为基准盘封存保管,一套为工作盘提供利用。 5 “三库”应用的效果分析 在仿真训练软件的开发过程中应用“三库”,对软件的变化状态和有效的标识实施管理,使得软件的开发过程变得可控,杜绝了软件开发和使用的随意性,软件质量得到了保证。“三库”应用的效果具体表现为以下几个方面: (1)在仿真训练软件开发过程中应用“三库”进行有效的标识,减少了项目开发因为版本错乱、标识不清等低级错误,导致整个软件产品质量下降,保证了软件的开发周期及阶段性取得的成果。 (2)在仿真训练软件的开发各个阶段中,软件和其它软件配置项不可避免会发生更改,通过“三库”的应用,强化对开发库、受控库和产品库更改的审批控制,使软件的所有的技术状态都处于可控的范围内。 (3)在仿真训练软件的开发中应用软件“三库”实施管理,不仅可以帮助项目管理人员和软件开发人员清晰、准确的把握软件开发的每一个阶段和流程,而且通过软件“三库”的管理还可以让软件开发人员发现并避免一些重复性、阶段性的错误,使软件开发人员能够开发出高质量的软件产品。 6 结束语 随着仿真训练软件的发展,软件的质量要求也随之提高,软件的质量管理工作就成为越来越重要的问题。本文研究了仿真训练软件质量管理中的“三库”概念和建设方法,并在软件开发过程引用“三库”实施管理类,从软件开发阶段开始提高软件质量,建立和维护军用仿真训练软件在软件生存周期中各个阶段产品(包括各个文档、程序及其数据等)的完整性,确保对仿真训练软件形成过程的质量实现可追溯性,使软件开发、技术状态管理和维护过程处于受控状态,最终提高仿真训练软件质量。 作者单位 海军潜艇学院 山东省青岛市 266042 软件质量管理论文:加强我国军用软件质量管理的若干思考 [摘 要] 随着军队信息化的高速发展和广泛应用,军用软件在武器装备系统中的重要性日益突出,其质量已成为影响武器装备作战性能的关键因素。分析了我国军用软件质量管理的发展和现状,并从突出地位作用、加强理论研究、加快系统建设、提高建设水平四个方面对如何加强我国军用软件质量管理提出了思考与建议。 [关键词] 军用软件;质量管理 随着高新技术的发展和装备信息化程度的提高,软件在现代武器装备中所占的比重不断增加,在武器装备系统中的地位逐渐由硬件的配套产品上升为独立的产品,成为武器装备系统和自动化指挥系统的重要组成部分,武器系统功能的生成和发挥对软件的依赖性越来越强。军用软件的质量关系着装备系统功能的强弱和成败,直接影响甚至决定着武器装备的质量。 一、军用软件 军用软件(Military Software)是指用于保障军事装备及其配套系统正常工作,经正式立项研制并交付军方使用的特殊的专用软件产品。与常用软件相比,它实时性、时序性、精度性、安全可靠性要求更高,并具有嵌入式软件多、能适应各种恶劣军事应用环境的特点。 军用软件一般分为两类。一类是武器系统软件,包括为武器系统专门设计或专用的嵌入式软件,指挥、控制和通信软件;对武器系统及其完成军事任务进行保障的其他软件。另一类是自动化信息系统软件,主要是指执行与武器系统无关的系统使用和保障功能的软件。 二、我国军用软件质量管理的发展 同国外相比,我国军用软件质量管理起步较晚。1996年,原航天工业总公司颁发了《中国航天工业总公司软件质量管理规定》,明确规定了软件也是产品,必须和硬件一样纳入型号配套管理,列入产品配套表和技术配套表,实施产品管理。2000年3月,国防科工委颁布了《国防科工委关于加强国防科技工业质量工作问题的若干决定》,并于2001年9月颁布了《军工产品软件质量管理规定》。2002年,国防科工委专门组织软件调研组,对重点型号的软件承制单位进行了调研,并对加强软件质量与可靠性工作进行了现场指导。在2002年9月召开的国防科技工业质量工作会上指出,软件质量是当前比较薄弱的环节,应充分重视软件质量问题,积极借鉴国外软件质量管理方面的经验,加强国防科技工业内部各单位的交流,促进软件质量控制和可靠性工作。 我国军用软件质量管理基本上是以软件开发项目为中心,以软件工程化带动和推进软件质量管理,其具体方法如下: 1.依据软件工程原理,按照一定的软件开发方法学,确定适当的软件生存周期模型,分阶段实施了软件质量管理和控制。 2.型号软件纳入了产品配套表,对软件产品的研制进行了严格的质量管理。 3.根据软件的规模和安全关键性等级,对软件进行了分级分类管理。 4.落实型号研制人员的岗位职责,软件研制人员经培训合格后持证上岗。 5.制定并实施了大型项目的软件规范。 6.建立并完善了软件独立测试机构,提出并实施了软件仿真测试,加强了软件开发项目组内的软件测试力量,对A、B级软件开展了独立的确认测试。 7.为总结型号软件开发方面的教训,编写了型号软件故障启示录;为总结型号软件测试经验,编写了软件评测文集与案例,建立了测试实例库。 三、我国军用软件质量管理现状 随着军事装备体系化、复杂化、高技术化趋势逐渐显著,各类军用软件的使用日趋广泛,结构日益复杂,军用软件已不再是硬件的附属物,已经成为与硬件并列的、独立的技术状态管理项目。军用软件要求具有很高的可靠性、可维护性和安全性,以保证最大限度地发挥系统的整体作战效能。因此,军用软件开发中必须采用有效的手段和工具进行软件的质量保证活动,以支持开发人员在最短的时间内,用最小的费用开发高质量的软件,满足应用需求,同时减少维护费用。 但是,由于受多种因素的影响和制约,军用软件的质量和可靠性问题一直没有引起人们足够的重视。软件在开发、设计阶段缺乏严格的需求分析和评审;在调试、验收阶段,由于缺乏科学的测试手段也无法对软件进行必要的测试;在使用、维护阶段,不能严格按照软件配置进行管理,造成软件在生存周期中,存在着更改随意性大、质量难控制的问题。这些都不可避免地造成了软件的技术状态混乱,给用户的使用和维护工作带来了困难,影响了战斗力的提高。军用软件质量管理存在的一些不足如下: (一)承制方尚未建立完善的软件质量保证体系 目前,虽然已经建立基本的军用软件质量体系标准,如GJB9001B-2009等,但是实施程度较差。在现阶段,军事科研软件的开发大多集中于军队直属单位中,大多是院校、科研所及相关部门。参与软件开发单位一般较多,但单位内部没有建立较为完善的软件质量保证体系。由于质量体系的不完善导致了软件开发过程缺乏行之有效的管理和监督,软件的质量保证工作基本上是由软件开发者自身完成的。 (二)军方尚未有效参与软件需求定义 软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。但当前的型号研制中,军用软件需求定义阶段缺少军方的有效参与,设计人员无法全面、准确地理解和定义装备的作战使用需求,同时对军用软件隐含的需求(如软件的可维护性)重视不够,导致在后续工作中软件修改、返工频繁,不但影响了软件研制进度,而且一些质量问题和缺陷也带进了后面阶段的工作中,软件质量难以保证。 (三)软件测试不够充分 目前,军用软件承制方多数没有建立专门的软件测试组,而是在软件开发的各阶段主要由开发人员采取自测和互测相结合的方式。由于软件开发人员任务重,他们在测试上不可能花费很多时间,容易走过场,致使测试的作用和可信度大大降低,一些隐含的错误和缺陷被遗留到软件产品交付投入运行阶段。 (四)文档在软件质量保证中的作用尚未引起足够的重视 软件文档是计算机软件产品不可缺少的一部分,它关系到系统能否有效运行、开发和维护,是保证软件质量的一个重要手段,它主要体现在文档本身的可追溯性和可改进性。但是,在实际工作中,文档的形成过程是一项艰苦、枯燥的劳动,人们常常忽视它,致使文档的编制和管理存在着许多亟待解决的问题。一是软件开发人员对文档编制不感兴趣,编制不及时;二是软件文档格式不规范,内容不完整,可读性差;三是文档审核、管理把关不严,未经许可随意更改的现象比较普遍。这些问题导致了软件透明度低、可维护性差。 四、加强我国军用软件质量管理的措施 (一)要突出军用软件质量管理地位作用 随着军用软件在作战、训练、战备、管理等军事领域的广泛应用,其地位和作用更加突出,必须充分认识到软件质量问题的严重性和紧迫性,努力提高军用软件的质量和管理水平。必须针对军用软件研制及使用保障过程中存在的种种不足,强化质量意识,加强质量管理制度建设,建立健全软件质量管理体系,不断提升质量管理能力。 (二)要加强军用软件质量管理的理论研究 军用软件在研制开发过程中,对质量管理理论具有明显的依赖性。针对目前对军用软件质量管理理论研究较少的现状,迫切需要加强相关领域的研究。 1.加强军用软件质量管理基础理论研究。军用软件质量管理基础理论主要包括基本概念和基本原理,军用软件质量管理的特点、要求和原则,以及面对当前软件开发和使用保障过程中遇到的新问题,提出解决的对策、措施和研究重点,以便系统地研究和解决。 2.加强军用软件质量管理基本规律研究。军用软件质量管理基本规律是进行质量管理活动的基本遵循和依据。应根据军用软件自身的特点和要求,借鉴质量管理活动的基本规律,从军用软件的需求分析、设计、开发、测试、定型与鉴定、质量监督、项目管理、验收、配置以及维护等不同活动的特点出发,来研究军用软件质量管理的基本规律。 3.加强军用软件质量管理方法手段研究。要紧贴军用软件质量管理的实际,区分不同活动的特殊要求,围绕军用软件质量形成的全过程,深入开展质量管理方法手段的研究。 (三)要加快军用软件质量管理体系建设 现代高技术武器大量采用计算机系统,军用软件为完成智能化的任务,也越来越复杂,外军已经把军用软件作为装备纳入了管理体系。我军新一代武器陆续装备,指挥自动化系统也初具规模,软件的成分大大增加。但军用软件在设计、开发、测试、维护、使用管理上还很薄弱。因此,针对军用软件的特殊性,建立系统化、正规化的质量管理体系十分重要。 1.建立军用软件质量管理部门。有必要在总部一级建立一个集中统一的软件管理部门,负责制定用以规范和指导军用软件发展的法规、制度和技术标准,在总体上规范和指导各军兵种的软件开发与采办;在各军兵种成立相应的部门,负责指导、规范本军兵种的软件开发与采办工作。 2.健全军用软件质量管理体系。在准确把握军用软件质量需求的基础上,研究如何加强组织体系建设,形成科学合理的质量管理体系,明确各层次、各部门的质量管理职责,提高质量管理的保障能力和水平。 3.健全军用软件质量管理的相关法规和技术标准。健全完善的法规和技术标准是军用软件质量管理的前提。为保证军用软件质量管理的顺利实施,必须加强顶层设计和体系结构的总体规划,建立满足军事需求的、统一的软件体系,结构和标准规范,解决好软件的发展同步、功能配套、兼容匹配。 (四)要提高军用软件质量管理建设水平 1.运用全寿命管理的思想提高质量。对军用软件从需求分析到新系统替代的整个生存周期过程中各阶段及各环节的活动,实施前后衔接、持续不断、首尾响应、协调统一的管理,明确每一个阶段、每一个部门的管理任务和目标。 2.用软件工程的原则与方法研制、开发、维护军用软件。军用软件系统复杂,软件度量、工作量估计、需求变化和风险管理难度大,开发进度和质量难以保证。运用软件工程的思想加强软件开发,有助于提高软件产品的质量和开发效率,减少维护的困难。 3.建立相应的规章制度,明确职责与职权,使软件质量管理工作规范化、标准化。软件开发时间周期长,参与人员、部门多,在整个生存周期内,软件的开发环境、运行环境都会发生变化。通过建立一套评估、控制和实施软件质量管理的机制,有利于实现软件质量管理的科学化、制度化和经常化。 软件质量管理论文:基于过程的软件质量管理在信息化中的应用 【摘 要】随着现代信息技术的发展以及计算机软件开发应用的不断进步,在积极性软件质量管理中,基于过程方法的软件开发与生产质量管理等,已经逐渐成为现代信息化发展中,软件质量管理应用的标志性管理技术方法。基于过程的软件质量管理,对于软件的开发利用来讲具有高质量保证与高可信度的优势。本文主要通过对于基于过程的软件质量管理原理的分析论述,并结合信息化发展过程中软件质量管理的问题,对于基于过程的软件质量管理在信息化中的应用进行分析论述。以提高过程方法在软件开发设计与管理中的应用,推进现代信息化的发展。 【关键词】过程方法;软件质量管理;信息化;管理平台;设计;分析 在软件技术开发与软件设计应用中,最为关键并且重要的问题之一就是对于开发设计软件以及软件技术质量的保障与成本控制实现。近年来,随着软件技术与软件开发设计应用的不断发展进步,对于软件工程的研究发展也有了很大的进步,但是在软件技术质量保证与成本控制方面的问题一直没有很好的得到解决。基于过程的软件质量管理方法技术,就是在这样的发展背景与需求下,逐渐在信息化发展实际中进行应用实现的。基于过程的软件质量管理最早是由美国软件行业在上世纪80年代初期进行提出并应用的,它实际上就是将软件技术的改进发展与软件开发设计过程的改进之间同步进行与实现,通过对于软件技术开发与设计过程的控制,实现对于软件技术质量的管理控制,这样一来不仅对于软件技术和软件应用发展有着积极的作用,而且在一定程度上也推动了社会信息化的发展进步。 1.基于过程的软件质量管理与技术概述 1.1基于过程的软件质量管理含义分析 基于过程的软件质量管理通常也被称为是过程管理方法,对于软件质量的过程管理提出与实现,最早是由美国软件行业在上世纪80年代,以进入以过程为中心的软件技术以及软件产品的开发利用时代为标志。随着美国软件行业中以过程为中心的软件产品、技术的开发利用发展,基于过程的软件质量管理方法以及管理平台在实际开发应用中越来受到欢迎,并且基于过程的软件质量管理平台开发设计的相关要求准则等,也随之出现并发展起来。在对于基于过程的软件管理平台设计建立要求准则中,以美国CMM以及PSP、TSP管理平台的设计应用实现最具有代表性和意义。 通常情况下,对于基于过程的软件质量管理平台与方法中,过程一词多被解释为将输入方式转化为输出方式的一组相互关联或者是相互作用的活动。对于软件产品以及技术的设计实现以及管理过程,又被按照一定的规律关联分解为软件工程过程以及软件管理过程、软件支持过程等三大过程类型。其中,软件工程过程主要是指软件产品以及技术的开发、生产、设计实现过程,包含对于软件技术与产品的需求分析以及编码设计、系统测试等过程步骤;而软件管理过程主要是指对于软件工程的管理维护过程,包含对于软件产品、技术的开发、生产、设计应用等的管理以及维护实施等,比如对于软件开发项目的策划、跟踪监控以及质量保证管理过程等;最后,软件过程中的支持过程主要是指对于软件技术以及产品的开发、设计、生产利用进行支持的过程行为,包括对于软件产品与技术的评审以及培训、度量等过程。在软件工程开发设计以及应用管理过程中,建立相关系统平台,实现对于软件工程系统化与自动化管理控制实现,是在现代信息化发展情况下,进行软件质量管理的有效方法与途径措施。 1.2基于过程的软件质量管理技术概述 在应用过程管理方法,对于软件质量进行管理实现的实际应用过程中,主要的软件过程质量管理技术有CMM软件过程质量管理技术以及PSP、TSP软件过程质量管理技术等,此外,还包含ISO9000系列的软件过程质量管理应用技术,以及IEC15504要求标准下的软件过程质量管理技术。 其中,CMM、PSP以及TSP软件过程质量管理应用技术,是由一家软件工程研究机构研究提出的基于过程的软件质量管理系统模型平台。CMM软件过程质量管理系统模型平台主要是在对于CMMI系统模型结构与人力资源管理思想理念、以及软件开发生产技术、产品相互融合的情况下,最终形成一个完整的CMM管理系统与体系,实现对于软件质量管理过程中的人与技术、管理过程三个方面的管理控制实现。而ISO9000标准系列的软件过程质量管理技术一种由国际标准化研究组织研究提出的通过过程方法实现对于软件工程质量管理的技术方法,它在许多国家和地区的信息化发展中有广泛以及普遍的应用实现,尤其是在政府以及工业发展、信息技术研究领域的应用实现更为突出。 2.基于过程的软件质量管理在信息化中的应用分析 2.1信息化过程中的软件质量管理问题 随着社会信息化的不断发展,信息化发展过程中出现的矛盾问题也越来越多,比如信息化的建设发展各自为政、信息化重复建设和信息化建设成果垄断等问题,在信息化发展的过程中越来越突出。作为社会信息化建设与发展的重要基础和核心部分,软件的开发利用以及发展不仅对于社会信息化的建设发展有着重要的影响作用,更是对于国家生产力水平以及综合实力情况也有着很大的影响。 根据社会信息化发展与软件质量管理的情况来看,目前,在信息化发展过程中,软件质量的管理也存在着一定的问题,首先表现在对于软件质量管理的意识比较缺乏,软件质量管理的重视程度不够。其次,在社会信息化发展过程中,对于计算机软件产品的开发设计与利用过程中,过分重视对于软件技术产品以及项目的开发设计进度、数量等问题,而忽视对于软件产品质量以及软件开发设计过程的控制管理。再次,在进行软件技术以及产品的开发设计过程中,所运用的软件产品与技术的开发设计质量管理体系相对比较落后,并且对于同一个软件产品与技术的开发设计转包现象比较严重,通常存在有多个软件开发方,这对于软件质量的管理以及软件开发的发展进步都十分不利。最后,在进行软件质量管理过程中,缺乏有效的软件质量控制管理体系,也是信息化发展中软件开发设计与管理中的重要问题,如下图1所示。 2.2基于过程的软件质量管理在信息化中的应用 在社会信息化发展中,基于过程的软件质量管理方法,就是通过对于软件需求过程以及软件设计过程等的质量控制与管理实现,同时对于软件的编码以及测试、维护等,基于过程质量控制管理的方式,实现对于软件质量的控制管理实现。具体质量控制管理方式如上图2所示。 首先,在基于软件质量控制管理的软件需求过程的质量管理中,应注意从对于客户管理以及目标控制、需求范围的控制、需求筛选等方面,进行软件需求过程的质量控制与管理实现,保证软件技术与产品的质量。其次,对于软件设计过程的质量管理控制,主要就是根据软件需求分析情况,对于软件总体结构的设计过程与质量进行控制管理,以实现软件过程设计的目标。再次,对于软件编码过程中质量控制管理,主要是通过对于软件编码的过程进行规范,以及做好相应的软件编码代码审查、单元测试的控制与管理;在软件测试过程中,做好软件的单元测试以及集成测试、系统测试三个部分的测试,并对于测试过程进行控制管理,保证软件测试过程质量符合要求。最后,在进行软件产品以及技术的维护过程中,应注意针对不同的软件维护类别,对于软件技术与产品进行改进,以满足客户对于软件产品的需求。总之,基于过程的软件质量管理,就是要结合软件技术以及产品开发设计实现的过程,对于过程方法进行控制管理实施,从而实现对于软件产品的质量管理。 3.结束语 总之,质量管理是企业管理工作中的关键与重要内容部分。而基于过程的软件质量管理更是现代软件质量管理的重要趋势方向,进行方面的应用分析,具有很大的必要性与重要性意义。
软件项目管理论文:中小软件企业项目管理 [摘要]本文结合现阶段中小软件企业蓬勃发展的背景,结合软件开发的流程分析及管理中的成本、进度、质量分析。分析了中小软件企业项目中存在的问题并提出了相应的解决办法。 [关键词]软件;管理;项目;软件企业;生命周期;流程控制 随着我国信息产业特别是软件产业的蓬勃发展,一批批中小软件企业不断涌现。大大推动了我国软件产业的发展。但是不可忽视的是,有相当部分的软件企业特别是中小型企业在项目管理方面存在着先天的不足,大多仍然处于一种手工作坊式运营阶段,处于有章不循和无章可循的混沌阶段,缺乏科学化、系统化的管理,质量和效率都不强。由于处于企业的初创期,中小软件企业忙于找项目、揽项目,从而忽视了自身的实力和行业专攻,从而造成了什么项目都接、什么活都做的局面,且公司人员较少,分工不明确从而造成了此类软件企业管理流程混乱,重编码轻设计,甚至到编码完成后再回头编写、应付各种文档资料,无论从哪个角度来说,这是没有任何意义的。软件项目的开发流程不规范,项目延期、失败层出不穷。所以如何有效地对项目进行管理,有章可循,对于中小软件企业来说,是非常有现实意义的。对于广大的中小软件企业而言,如何能有效且比较简单地对自己的软件项目流程进行管理呢? 项目流程管理在软件项目的开发过程中是非常重要的一环,它贯穿着整个过程,所以有时它也被称为软件产品生命周期管理,主要内容包括:立项、策划、分析、实现、测试、、维护等环节。 首先我们从软件工程角度来谈谈这个问题。我们来说一下软件工程中开发模型的概念,无论大小,每个项目都必定要遵循一定的开发模型。软件常用的开发模型包括:瀑布模型、螺旋模型、渐进模型。那么具体到中小软件企业,在这几种模型中,我们要注意些什么呢?下面我们针对这几种常见的模型做一下分析。 一般而言,瀑布模型常用于在开发时间内需求没有或很少变化、分析设计人员对应用领域很熟悉、用户应用环境稳定、用户除提出需求以外,很少参与开发工作、需求使用面向过程的语言或编程工具且风险较低的项目。 螺旋模型常用于在项目开发早期需求可能有变化、分析设计人员对应用领域很熟悉、用户可不同程度地参与整个项目的开发过程、使用面向对象的浯言或第四代语言、中等风险项目。 渐进模型主要应用于在整个项目开发过程中需求都可能发生变化、分析设计人员对应用领域不熟悉、用户可参与整个软件开发过程中、使用面向对象的语言或第四代语言且高风险项目。 生存期定义可视软件项目特性识别和所选软件开发模型而异,对于软件生命周期的几个环节来说,他们并不是孤立的、时间层次非常明显的,它们之间也存在着时间的重叠交叉甚至错位。 对于项目管理人员来说,要注意区分这几个阶段并在不同的阶段定义不同的工作内容并严格执行。而具体到中小型软件企业,由于人员较少,各种工程外小组不太健全。所以,针对这种情况,我们对各个流程进行分解大致分为调查阶段、立项阶段、策划阶段、分析设计阶段、实现阶段、测试阶段、阶段、维护阶段。 在调查阶段:我们要采集用户需求信息、拟定立项建议最后要生成用户需求文档及立项建议书。 在立项阶段:我们需要编制可行性分析报告、立项申请报告并进行评审最后要形成评审记录。 在策划阶段:我们要任命项目经理、建立项目组。并对需求进行分析、评审。根据需求情况对项目进行资源准备(人、财、物)。在此阶段要形成软件需求规格说明书及测试大纲及需求评审记录。 在分析设计阶段:我们要进行下面的工作系统设计(含数据库、界面设计)、设计评审、用例准备、测试计划评审、项目计划修订、复用元素提取根据情况要形成系统设计文档、集成和验证测试计划、系统设计评审记录、测试计划评审记录、项目计划修订记录。 在实现阶段,我们要进行详细设计、详细设计评审、构造软件(编码、自测)、模块测试、组装测试要形成详细设计文档,评审记录、源程序、相关的测试数据和记录。 在测试阶段,我们要进行集成测试、界面冻结、编写用户使用手册、填写申请单之后进行申请评审要形成集成测试测试记录、报告、安装母盘、用户使用手册子版)及产品介绍。 在阶段,我们要编写培训教材、进行产品包装设计、母盘准备、服务人员培训、光盘刻制、资料印刷、产品包装、产品检验、产品和交付井进行项目总结。 在维护阶段,我们要采集产品问题反馈单、登录问题反馈台账、编发产品问题的E—mail、采集、登录问题反馈跟踪记录表、编报问题反馈跟踪月汇总表、产品问题审核、分类和交付、产品问题回复、本版本产品问题维护、新版产品母盘制作、编、发产品更改公告、问题维护审核、新需求台账登录。 众所周知.影响项目进展的三个维度是成本、进度和质量。如何平衡它们之间的关系,尽力做到快、好、省?在有限资源的情况下将结果处理得最优?这就是项目中管理的学问了。任何项目要被视为成功,都要必须达到几个目的,这其中包括质量要求、截止期及成本限制。质量规定给出了一个最终的定义包括项目的形式、适配性和功能,它定义了项目提交给用户时的最终状态,而且要确保项目符合这些规定。 同时项目的进度也是非常重要的,项目管理的一个重要的职责就是要确定一个合理的交付日期。这就是一处平衡的过程,协调好这三个方面的工作,同时所谓一个项目,进度是主线,其他的因素是围绕它来做的,同时进度也是项目管理的标尺。所以在项目中一旦将会期确定下来,就要将它转化为进度表的形式,并告诉你的项目组成员。当编制进度表时,头脑中要牢记住这个日期。如果你的团队知道要求完成项目的实际期限,他们将受到更大的激励,对他们会更有帮助:当团队成员知道进度的情况时,他们将能够加快自己的步伐,从而为项目的顺利完成做出更大贡献。合理的进度,不应该让项目组成员感到紧张。紧张是个人绩效的一个主要杀手。紧张的人更有可能犯错误,而且一般来说其表现不如最佳状态:一个人犯的错误越多,他对其工作及对其本人的感觉就越糟糕,他就越有可能死火。高死火率意味着高的人员离职率,意味着你要花更多的时间用于更新雇人和重新培训。紧张的工作环境导致雇员的紧张,他们反过来又导致环境更加紧张。这是一种恶性循环,对于人员短缺的中小软件企业而言,这显然是不希望被看到的。 作为一个项目来说,如果没有一个明确的目标。对有些人来说,这种情况可能造成令人难以置信的放松,而对另外一些人来说,它又可能造成难以置信的紧张。那些不知道自己的工作到底是什么的雇员,容易变得紧张;他们拿不准为什么来这里,这意味着不能担保明天他们还会出现。如果你向你的团队成员提出了足够明确的目标,并向 他们展示实现目标的途径,你的雇员不仅不会紧张,而会真的感觉自己是该项目的一部分。可能还会对自己取得的结果感到自豪。而当项目经理用富有挑战性的工作和专门技术来影响员工的时候,项目成果的机率就会增大。 你不仅应当向你的团队成员说明目标,而且你应当让他们参与确定这些目标。并且一般来说让他们参与计划的编制,这是绝对必要的。如果你让团队成员帮助编制计划,你将更有可能提早发现可能发生问题的领域。团队成员也感觉到对项目承担了更大的义务,因为在使项目启动方面,他们有某种利害关系。 同时,在执行项目时,项目经理一定会面对这样的要求,即不超出某种成本限制。作为项目经理,应该制定一个比较详细的预算、计划,你应当告知你的公司或客户这项工作确切地说要花费多少成本:出于你的团队是执行项目的人此时也应该像客户一样,也需要尽可能地了解有关成本的信息,所以我们考虑软件的项目管理的时候,都必须在这几方面对其加以界定及规范,在日常的项目管理工作中要注重这几方面的协调、平衡。 一个项目组,我们也要关注于组织的建设。一个软件项目的成功,团队间的合作及有效沟通也是非常重要的。在交流的过程中,要有效的减少噪音,提高沟通的效率。几乎在所有的项目管理中,沟通问题是必不可免的,对于一些项目经理来说,沟通不佳意味着“没人听我的”,而对于另外的一些经理来说,沟通不畅意味着项目组成员每天到晚一直忙,却不见多少成绩,好多人做着重复的工作,因为彼此之间没有进行有效的沟通。沟通的方式很多,比如说会议、电话、电邮、甚至行为等等。 如果团队成员看起来不愿意沟通,这并不一定表明他们不愿意合作。相反,他们仅仅可能是不愿意以自己不适应的方式进行沟通。所以,为了鼓励沟通,我们必须清楚应该选择哪种沟通渠道,应该选择哪些条件组合,以得到我们所期望的反应。 在项目工作中,万不能对他人颐指气使。维持团队的关系以促进项目组成员齐心协力地工作这才是项目经理所要取得的目标。如果项目经理过多地用权力、金钱或者处罚的手段来影响项目组成员的话,项目失败的几率会很大。和其他方面的管理一样,项目管理既是一门科学又是一门艺术。在平时的管理工作当中,我们不仅要善于将相关的管理知识及管理理论有意识的应用到管理实践中,我们更要发展艺术性的思维。没有完全相同的项目环境,外部环境和内部环境是不断变化的,我们只有在不断的实践中探索才能深刻的体会到项目管理的精髓,不断的成长。同时作为一个项目经理,要有大局观,要具有系统思维。不要受单一项目的局限,要在一个更大的组织视野下考虑项目的实施。 软件项目管理论文:中小软件企业项目管理 [摘要]本文结合现阶段中小软件企业蓬勃发展的背景,结合软件开发的流程分析及管理中的成本、进度、质量分析。分析了中小软件企业项目中存在的问题并提出了相应的解决办法。 [关键词]软件;管理;项目;软件企业;生命周期;流程控制 随着我国信息产业特别是软件产业的蓬勃发展,一批批中小软件企业不断涌现。大大推动了我国软件产业的发展。但是不可忽视的是,有相当部分的软件企业特别是中小型企业在项目管理方面存在着先天的不足,大多仍然处于一种手工作坊式运营阶段,处于有章不循和无章可循的混沌阶段,缺乏科学化、系统化的管理,质量和效率都不强。由于处于企业的初创期,中小软件企业忙于找项目、揽项目,从而忽视了自身的实力和行业专攻,从而造成了什么项目都接、什么活都做的局面,且公司人员较少,分工不明确从而造成了此类软件企业管理流程混乱,重编码轻设计,甚至到编码完成后再回头编写、应付各种文档资料,无论从哪个角度来说,这是没有任何意义的。软件项目的开发流程不规范,项目延期、失败层出不穷。所以如何有效地对项目进行管理,有章可循,对于中小软件企业来说,是非常有现实意义的。对于广大的中小软件企业而言,如何能有效且比较简单地对自己的软件项目流程进行管理呢? 项目流程管理在软件项目的开发过程中是非常重要的一环,它贯穿着整个过程,所以有时它也被称为软件产品生命周期管理,主要内容包括:立项、策划、分析、实现、测试、、维护等环节。 首先我们从软件工程角度来谈谈这个问题。我们来说一下软件工程中开发模型的概念,无论大小,每个项目都必定要遵循一定的开发模型。软件常用的开发模型包括:瀑布模型、螺旋模型、渐进模型。那么具体到中小软件企业,在这几种模型中,我们要注意些什么呢?下面我们针对这几种常见的模型做一下分析。 一般而言,瀑布模型常用于在开发时间内需求没有或很少变化、分析设计人员对应用领域很熟悉、用户应用环境稳定、用户除提出需求以外,很少参与开发工作、需求使用面向过程的语言或编程工具且风险较低的项目。 螺旋模型常用于在项目开发早期需求可能有变化、分析设计人员对应用领域很熟悉、用户可不同程度地参与整个项目的开发过程、使用面向对象的浯言或第四代语言、中等风险项目。 渐进模型主要应用于在整个项目开发过程中需求都可能发生变化、分析设计人员对应用领域不熟悉、用户可参与整个软件开发过程中、使用面向对象的语言或第四代语言且高风险项目。 生存期定义可视软件项目特性识别和所选软件开发模型而异,对于软件生命周期的几个环节来说,他们并不是孤立的、时间层次非常明显的,它们之间也存在着时间的重叠交叉甚至错位。 对于项目管理人员来说,要注意区分这几个阶段并在不同的阶段定义不同的工作内容并严格执行。而具体到中小型软件企业,由于人员较少,各种工程外小组不太健全。所以,针对这种情况,我们对各个流程进行分解大致分为调查阶段、立项阶段、策划阶段、分析设计阶段、实现阶段、测试阶段、阶段、维护阶段。 在调查阶段:我们要采集用户需求信息、拟定立项建议最后要生成用户需求文档及立项建议书。 在立项阶段:我们需要编制可行性分析报告、立项申请报告并进行评审最后要形成评审记录。 在策划阶段:我们要任命项目经理、建立项目组。并对需求进行分析、评审。根据需求情况对项目进行资源准备(人、财、物)。在此阶段要形成软件需求规格说明书及测试大纲及需求评审记录。 在分析设计阶段:我们要进行下面的工作系统设计(含数据库、界面设计)、设计评审、用例准备、测试计划评审、项目计划修订、复用元素提取根据情况要形成系统设计文档、集成和验证测试计划、系统设计评审记录、测试计划评审记录、项目计划修订记录。 在实现阶段,我们要进行详细设计、详细设计评审、构造软件(编码、自测)、模块测试、组装测试要形成详细设计文档,评审记录、源程序、相关的测试数据和记录。 在测试阶段,我们要进行集成测试、界面冻结、编写用户使用手册、填写申请单之后进行申请评审要形成集成测试测试记录、报告、安装母盘、用户使用手册子版)及产品介绍。 在阶段,我们要编写培训教材、进行产品包装设计、母盘准备、服务人员培训、光盘刻制、资料印刷、产品包装、产品检验、产品和交付井进行项目总结。 在维护阶段,我们要采集产品问题反馈单、登录问题反馈台账、编发产品问题的E—mail、采集、登录问题反馈跟踪记录表、编报问题反馈跟踪月汇总表、产品问题审核、分类和交付、产品问题回复、本版本产品问题维护、新版产品母盘制作、编、发产品更改公告、问题维护审核、新需求台账登录。 众所周知.影响项目进展的三个维度是成本、进度和质量。如何平衡它们之间的关系,尽力做到快、好、省?在有限资源的情况下将结果处理得最优?这就是项目中管理的学问了。任何项目要被视为成功,都要必须达到几个目的,这其中包括质量要求、截止期及成本限制。质量规定给出了一个最终的定义包括项目的形式、适配性和功能,它定义了项目提交给用户时的最终状态,而且要确保项目符合这些规定。 同时项目的进度也是非常重要的,项目管理的一个重要的职责就是要确定一个合理的交付日期。这就是一处平衡的过程,协调好这三个方面的工作,同时所谓一个项目,进度是主线,其他的因素是围绕它来做的,同时进度也是项目管理的标尺。所以在项目中一旦将会期确定下来,就要将它转化为进度表的形式,并告诉你的项目组成员。当编制进度表时,头脑中要牢记住这个日期。如果你的团队知道要求完成项目的实际期限,他们将受到更大的激励,对他们会更有帮助:当团队成员知道进度的情况时,他们将能够加快自己的步伐,从而为项目的顺利完成做出更大贡献。合理的进度,不应该让项目组成员感到紧张。紧张是个人绩效的一个主要杀手。紧张的人更有可能犯错误,而且一般来说其表现不如最佳状态:一个人犯的错误越多,他对其工作及对其本人的感觉就越糟糕,他就越有可能死火。高死火率意味着高的人员离职率,意味着你要花更多的时间用于更新雇人和重新培训。紧张的工作环境导致雇员的紧张,他们反过来又导致环境更加紧张。这是一种恶性循环,对于人员短缺的中小软件企业而言,这显然是不希望被看到的。 作为一个项目来说,如果没有一个明确的目标。对有些人来说,这种情况可能造成令人难以置信的放松,而对另外一些人来说,它又可能造成难以置信的紧张。那些不知道自己的工作到底是什么的雇员,容易变得紧张;他们拿不准为什么来这里,这意味着不能担保明天他们还会出现。如果你向你的团队成员提出了足够明确的目标,并向 他们展示实现目标的途径,你的雇员不仅不会紧张,而会真的感觉自己是该项目的一部分。可能还会对自己取得的结果感到自豪。而当项目经理用富有挑战性的工作和专门技术来影响员工的时候,项目成果的机率就会增大。 你不仅应当向你的团队成员说明目标,而且你应当让他们参与确定这些目标。并且一般来说让他们参与计划的编制,这是绝对必要的。如果你让团队成员帮助编制计划,你将更有可能提早发现可能发生问题的领域。团队成员也感觉到对项目承担了更大的义务,因为在使项目启动方面,他们有某种利害关系。 同时,在执行项目时,项目经理一定会面对这样的要求,即不超出某种成本限制。作为项目经理,应该制定一个比较详细的预算、计划,你应当告知你的公司或客户这项工作确切地说要花费多少成本:出于你的团队是执行项目的人此时也应该像客户一样,也需要尽可能地了解有关成本的信息,所以我们考虑软件的项目管理的时候,都必须在这几方面对其加以界定及规范,在日常的项目管理工作中要注重这几方面的协调、平衡。 一个项目组,我们也要关注于组织的建设。一个软件项目的成功,团队间的合作及有效沟通也是非常重要的。在交流的过程中,要有效的减少噪音,提高沟通的效率。几乎在所有的项目管理中,沟通问题是必不可免的,对于一些项目经理来说,沟通不佳意味着“没人听我的”,而对于另外的一些经理来说,沟通不畅意味着项目组成员每天到晚一直忙,却不见多少成绩,好多人做着重复的工作,因为彼此之间没有进行有效的沟通。沟通的方式很多,比如说会议、电话、电邮、甚至行为等等。 如果团队成员看起来不愿意沟通,这并不一定表明他们不愿意合作。相反,他们仅仅可能是不愿意以自己不适应的方式进行沟通。所以,为了鼓励沟通,我们必须清楚应该选择哪种沟通渠道,应该选择哪些条件组合,以得到我们所期望的反应。 在项目工作中,万不能对他人颐指气使。维持团队的关系以促进项目组成员齐心协力地工作这才是项目经理所要取得的目标。如果项目经理过多地用权力、金钱或者处罚的手段来影响项目组成员的话,项目失败的几率会很大。和其他方面的管理一样,项目管理既是一门科学又是一门艺术。在平时的管理工作当中,我们不仅要善于将相关的管理知识及管理理论有意识的应用到管理实践中,我们更要发展艺术性的思维。没有完全相同的项目环境,外部环境和内部环境是不断变化的,我们只有在不断的实践中探索才能深刻的体会到项目管理的精髓,不断的成长。同时作为一个项目经理,要有大局观,要具有系统思维。不要受单一项目的局限,要在一个更大的组织视野下考虑项目的实施。 软件项目管理论文:计算机软件工程项目管理 摘要:计算机软件工程项目管理和开发是一项具有复杂性以及系统性的工程,其涉及面相对较广,在实际的工作中所面临的风险也较大,因此对计算机软件工程项目实施系统和完善的管理是非常重要的。在信息技术以及科学技术高速发展的今天,计算机软件的规模以及复杂程度在不断增加,因此在实施计算机软件工程开发的工作中各种问题也逐渐地显现出来,给企业造成了不必要的损失,为了提高企业的经济利益,增加企业的综合竞争能力,促进计算机软件工程的发展就应该对计算机软件工程项目更好的管理方法和措施进行探讨和分析。 关键词:计算机软件工程;项目管理;管理方法;问题 目前,在实施计算机软件工程项目开发的过程中,软件工程项目管理工作并没有引起工作人员和企业领导人员的足够重视。在实施计算机软件工程管理的过程中,软件产品具有较强的特殊性,且计算机软件工程刚刚兴起,在实施软件工程管理的过程中很多问题并没有得到充分的认识,给工程项目管理带来了一定的困难,由此可见全面地实施计算机软件工程项目管理是非常重要的。下面该文就将计算机软件工程项目管理的内容作为基础,对计算机软件工程项目管理中存在的问题以及计算机软件工程项目管理的方法和策略进行探讨和浅析。 1计算机软件工程项目管理的内容 1.1对于组织机构的管理 在实施计算机软件工程项目管理的过程中对于组织机构的管理是一项重要的管理内容。计算机软件工程项目的管理人员在实际的管理工作中只有设置全面的组织结构,完善组织机构管理的质量才能完成科学管理制度和管理团队的建设。只有完善组织机构的管理才能清楚地划分管理的职责和权限范围,尤其是对于具有较强综合性的计算机软件工程项目来说,必须由专门的技术人员来负责组织机构的管理,进而提高计算机软件工程项目管理的有效性和质量。 1.2软件质量和配置管理 在实施计算机软件工程项目管理的过程中软件质量管理和配置管理有着不可替代的地位和作用。项目质量保证主要是定期地对总体绩效进行评估和评价,完善质量计划编制、项目质量保证以及项目质量控制等过程,对于不能保证项目质量的问题给予进一步的分析,找出具体和具有针对性的解决方法,进而更好地提高软件的质量。同时计算机软件项目管理人员也应该对软件产品的演变过程有一个精确的记录,保证软件配置管理的质量,进而完善计算机软件工程项目的管理工作。 1.3风险的评估以及管理 风险管理主要包括的内容有对风险的正确识别、风险评估以及风险监督和风险解决等,实施风险管理的主要目的是在预测到风险即将出现的时候及早采取措施给予抑制,避免风险的出现和发展。在实施计算机软件工程项目管理的过程中风险的评估和管理是一项重要的管理内容,计算机软件工程项目管理人员应该及早地对项目中存在的风险进行分析和评估,加强对各种可能出现风险的管理,降低各种风险对项目造成的影响,进而提高软件企业的经济效益。 2计算机软件工程项目管理中存在的问题 2.1缺少对计算机软件工程项目管理培训的重视 大多数企业在实施计算机软件工程项目管理的过程中往往会忽略对项目管理的培训,在项目管理培训上投入的精力、人力、物力和财力均相对较少,没有形成一个系统和完善的知识培训体系。很多软件企业只是依靠着某些项目管理工作人员精湛的技术能力以及综合素质,而在项目管理培训方面往往比较盲目,只是走一走过程而已,缺少对计算机软件工程项目管理培训的重视程度,项目管理人员缺少对项目管理知识和培训知识的掌握[1]。 2.2计算机软件工程项目风险控制的意识较薄弱 在目前我国各个企业竞争日益激烈以及经济高速发展的大背景下,各个软件企业在进行计算机软件工程项目开发过程中所面临的风险也越来越大,一旦发生风险就会给企业带来难以弥补的损失,由此可见在实施计算机软件项目管理的过程中风险管理是非常重要的。而目前大多数软件企业在实施项目管理的过程中对风险控制的意识相对较为薄弱,并没有认识到风险管理和控制对于项目管理来说的重要意义,以致不能及时地防范和控制相关管理过程中出现的风险。 2.3计算机软件工程项目管理人员团队意识低下 计算机软件工程项目管理工作人员在实施管理工作的过程中大多数工作人员并不能从宏观上对整个项目进行整体的把握,只是做好自己的本职工作,并没有从大局上对相关的管理工作进行考虑。大多数计算机软件工程项目管理工作人员缺少团队意识,这些管理人员虽然具有精湛的技术和较高的综合素质但是只注重个人能力的发挥,缺少培养新一代人才的观念,缺少带头作用和责任心,导致各种管理问题的出现,不利于企业的更好发展。 3计算机软件工程项目管理的方法和策略 3.1提高对计算机软件工程项目管理培训的重视程度 软件企业在实施计算机软件工程项目管理的过程中应该增加对项目管理培训的重视程度。企业应该增加在管理人员培训上的精力、物力和财力,注重对管理人员实践能力和理论知识的提高。让相关管理人员掌握更多的知识,让管理人员熟悉相关的培训和管理流程,进而更好地提高计算机软件工程项目管理的质量和有效性。与此同时,企业管理人员也应该建立软件工程项目管理培训的审核制度,项目管理人员在上任之前应该给予一定的考核,进而提高计算机软件工程项目管理的质量。 3.2提高计算机软件工程项目管理风险控制管理意识 计算机软件工程项目在实施管理的过程中应该建立有效的风险管理和控制机制,在实施计算机软件工程项目开发的过程中应该要求项目管理人员充分地掌握和学习风险管理知识,熟练地掌握风险识别、风险控制以及风险转移的方法,在项目启动后立即对风险进行识别和管理。与此同时项目管理人员也要保证风险控制和管理贯穿于整个软件项目管理的过程中,采用多种方法和技术手段对风险进行管理和控制,减少各种风险对企业经济效益和软件开发造成的影响[2]。 3.3培养计算机软件工程项目管理工作人员团队意识 企业管理人员在完善计算机软件工程项目管理的过程中应该让相关的项目管理人员从宏观上掌握大局,进而整体性地对整个项目管理进行掌控。同时也要充分地发挥项目管理人员在实际工作中的带头作用,合理地对员工的工作进行安排,对人力资源进行合理的运用。在此基础上也要提高项目管理人员的责任心和团队意识,在充分发挥每一个管理人员和工作人员个人能力的同时培养可以满足企业更好发展需求的新一代人才,提高计算机软件工程项目管理的质量。 4结语 总而言之,在当今这个信息技术和科学技术高速发展的时代,软件工程开发和设计过程中的各个项目所涉及的内容和范围也在不断增加,实施计算机软件工程项目管理过程中各种问题也逐渐凸显,而计算机软件工程项目工作的管理质量也逐渐成为影响软件企业核心竞争力的关键。在这样的情况下软件企业应该充分地认识到计算机软件工程项目管理过程中存在的问题,并通过一定的方法和策略给予完善,进而提高项目管理的水平和质量,促进软件企业的长期、稳定和健康发展。 作者:吴丽娜 单位:宿迁学院信息工程学院 软件项目管理论文:软件工程项目管理需求分析 摘要:科研机构、高校承担的大型科研工程越来越多,软件在工程项目中扮演着重要角色。结合科研领域软件开发特点,介绍软件开发流程管理及质量保障措施等,可为科研软件的质量提高及创新提供一定借鉴。 关键词:科研软件;需求分析;开发模型;质量保障 0引言 随着科研机构、高校承担的国家大型科学工程项目越来越多,在这些大型科学工程中,软件起到不可或缺的作用。如中国科学院高能物理研究所承担的硬X射线调制望远镜项目[1]、BESIII项目[2]中的数据采集软件、探测器和数据监测软件是获得物理成果的基础,而模拟软件和分析软件则直接关系到物理成果的处理和精度。这类软件项目有较深的物理学背景,需要使用一些物理分析和设计方法,实现手段必须符合领域特点。例如,数据存储在粒子物理实验和空间天体物理实验中的要求不同,前者主要采用ROOT[3]格式,而后者则以FITS[4]格式为主,开发所用的常见库和工具也因数据存取格式不同而不同。此外,该类软件应用面较窄,仅限于某一科研领域,其开发很难由软件公司承担,因为软件公司必须投入大量的学习成本,而产品应用又受局限。因此,这类软件的开发一般由科研院所、高校自行承担。然而,目前我国软件整体实力与创新性还不强,人才结构也需要改善[5],一些从事基础研究的机构,软件人才紧缺,且缺乏软件开发管理经验,造成软件质量不高。科研机构从事软件开发的科研人员学习能力强,热衷于追求新技术,如果在方法上给予指导,可帮助其开发出高质量的软件。依托大型工程培养所需的软件人才,不仅有利于大型工程项目的实施,而且还能为国家培养大批软件人才。本文结合该类软件项目的特点和科研机构现状,探讨其软件开发特点,并提出流程管理和质量保障措施。 1科研领域软件开发及其特点 1.1软件项目特点 (1)软件提出者。一般是项目科学家、顾问,他们具有较强的科学洞察力,也能较好地把握软件开发方向,但他们大多只关注宏观问题,而非技术细节,对软件不是很了解,不能用计算机语言和思维描述项目,也无法很好地理解和描述实现流程、细节,因此不能准确估计软件开发难度和工作量。 (2)软件开发者。一般为青年职工和学生,他们熟悉软件开发,但往往不能完全理解项目目标,也不能深刻理解其物理过程,理解过程中往往思维局限性大,缺乏方向。 (3)软件测试者。多数情况下单元测试由开发者承担,集成或系统测试由其他人员完成,部分由用户完成。与开发人员相比,测试人员往往物理基础较好,掌握基本测试方法,但是没有建立起完整的测试体系,而且将软件测试当作“副业”,测试以功能实现为主,对软件细节不了解。 (4)用户。用户一般是物理工作者,他们熟悉研究领域的物理要求,但不能用计算机语言描述需求,往往需求不实际或不够明确。他们对软件要求较高,要求通过物理测试对软件性能和输出结果精度进行测试。如通过运行大数据量检查软件内存和时间消耗,以促进开发者进行算法优化等。 1.2软件项目开发特点 (1)软件需求不够明确。科研领域软件项目一般都涉及到探测器和数据,涉及领域较广,而且需求不断变化。无论是软件提出者还是用户,往往难以用计算机思维或语言清楚描述问题;软件开发者对项目物理目标,特别是物理过程缺乏深刻理解,不能很好地理解软件功能细节及需求。比如,对于一些数据分析软件,提出者或用户难以描述出软件需要完成的功能,而开发者对数据处理流程中进行的数据转换、修正、数据结构重组也缺乏深刻理解。 (2)人员结构较为单一。软件开发中通常一人需要承担多种角色,包括软件需求分析员、设计者和开发者,甚至测试者。这样的职位设定,人员分工不明确,难以深入把握某一领域(比如测试)的特点和方法,从而影响了整个软件开发过程。 (3)软件实现细节难以把握。此类软件一般涉及复杂的物理过程,需要用一定的物理方法解决,但方法并不唯一,不同方法会对结果带来一定影响,而且不同类型数据所依赖的方法也不同。软件开发中还有些研究性课题,只能以接口形式存在于软件中,但预留接口时往往设计较为简单,考虑的情况过于理想,难以满足实际需求。然而,如果设计时考虑得比较复杂,接口较多,又往往缺乏必要的软件技术和经验,不能有效把握细节。 (4)硬件频繁改动增加软件开发风险。软件依赖于硬件,设计初期软件是在理想的硬件设计状态下运行,但如果硬件发生变更或者运行影响因素增加,软件也随之变动,从而加大开发风险。 (5)软件测试及评估缺乏专业水平。由于开发者、测试者与用户的专业测试能力都比较欠缺,难以涉及到核心质量问题,往往无法全面对软件作出专业评估。 (6)人员管理难度大。科研机构、高校一般热衷于科学研究而不是工程项目本身,因此难以兼顾两方面工作。软件提出者和管理人员往往对软件工程缺乏深入了解,难以对开发工作作出客观评价,因此对软件开发的进度和质量带来一定影响。 (7)软件不确定性因素多。随着工程实施,软件提出者、用户会不断改变、增加需求,加上开发者及测试者缺乏相关经验,代码开发不规范、开发人员流动性强等增加了软件开发的不稳定性。另外,为降低开发成本和难度,开发人员通常会引入现成的工具,这可能给软件开发带来隐患。然而,面向某一科研领域的软件开发项目也有自身的优势。如和大型专业软件相比,所需的项目功能不是特别多,部分开发平台具有可移植性,开发人员综合素质较高,学习能力强,英语基础较好。此外,很多工程与国外合作开发,可参考国外成熟软件,并方便引进一些免费的软件框架和平台,如Gaudi[6]框架、天文分析工具库Ftool[7]等。 2软件开发流程管理 2.1确定软件开发模型 科研机构,尤其是一些缺少经验的团队,习惯采用瀑布模型进行开发,主要由于该模型分阶段,且各阶段间存在因果关系,比较符合思维模式。但它会产生大量文档,到开发后期会凸显软件开发缺陷。适合科研领域的开发模型有迭代式模型[8-9](需求变更驱动型)、增量模型(功能驱动型)及快速原型开发[10]等。对于科研软件而言,模型选择需综合考虑软件框架稳定性和开放性、构件独立性以及项目组开发经验等。比如对于需求不明确、流程不清晰、算法不确定的项目(如数据处理软件、分析软件和标定软件等)采用迭代模型或者快速原型开发较好。此外,采用一种模型为主,其它模型为辅,也会得到很好的效果。 2.2加强开发流程控制 无论采用何种开发模型,开发人员必须在每一次开发或迭代中完整实现需求分析、设计、编码和测试等步骤。各阶段的评审或项目报告尤为重要,项目前期要确保软件开发人员准确理解项目需求以及软硬件环境;中期阶段要确保开发流程和方法可靠;后期要通过测试确保软件运行符合要求。 2.3需求分析中注重物理分析 科研软件中一般涉及大量数据操作,而且过程比较复杂,一些原始数据要经过转换、重建、标定及修正等步骤,而且处理不一定是线性的,即相邻数据之间可能有关联。这些功能和性能需求不容易明确,需要着重把握。软件中还可能涉及一些物理算法(比如图像修正、频率分解等),因此在需求分析中需要着重进行物理分析,包括流程梳理、特殊方法和条件选择等。 2.4采用串行开发方式 科研机构人员结构比较单一,往往多项工作并行执行,给软件开发质量提升及人才培养带来不利影响,可将相关性比较强的软件以串行方式开发,数据产品生成软件和数据分析软件可以依次开发。 2.5提高开发人员的主观能动性 软件开发过程中,保障软件项目负责人在经费使用及绩效考核中的话语权,组建凝聚力强的研发团队,对软件开发的进度、质量进行考核。 3软件质量保障措施 (1)加强开发过程中的沟通。科研项目的不确定性带来软件开发需求的变动,用户往往只注重项目需求功能满足,而不关心软件的实现细节,所提出的功能或接口可能不切实际,因此需要加强与用户的沟通,明确软件开发目标。 (2)充分调动开发人员积极性。科研机构软件开发人员往往是科研项目的幕后工作者,其工作成果容易被科研项目成果所掩盖,所以充分调动软件开发人员的工作积极性尤为必要。一方面,为其提供成果展示平台,尤其是展示创新性成果,如将开发中的文档整理成册等;另一方面,在基金申请、职称评定等方面提供支持。科研机构职称评定主要依据取得的科研成果,由于工作内容不同,如采取同样的评审条件,软件开发人员与其他研究人员在同一层次上竞争将缺乏竞争力。可能导致部分人员不愿意从事软件开发工作,或者开发软件的同时还从事其它研究,从而影响软件开发进度和质量。因此,需要根据软件开发人员工作的特殊性,通过有效的激励措施调动其积极性。 (3)培养既懂管理又懂技术的项目负责人。优秀的软件工程项目负责人不仅是一个好的软件设计师,对软件实现细节能够很好的掌控,还是一名优秀的管理者,能科学配置资源。 4结语 面向科研领域的软件具有较深的行业背景,其设计方法、实现手段有很强的领域依赖性。本文从科研领域特点及软件提出者、开发者、测试者、用户的角度出发,探讨了其需求难以明确、人员结构较单一且管理难度大的特点。在软件开发管理过程中,需要采用合适的软件开发模型,注重流程管理,充分调动开发人员的工作积极性。 作者:赵海升 李兵 聂建胤 宋黎明 单位:中国科学院高能物理研究所 软件项目管理论文:软件工程项目管理在软件开发中的应用 【摘要】 随着软件深入到我们生活的各个领域,人们对软件的特性以及功能要求越来越多,要开发出一个优秀的软件,必须综合不同的用户的不同的想法。另外加上企业、个人和政府的信息需求日益复杂,现在的计算机程序不再是一个人能够轻松构建,而是需要一个庞大的团队共同努力。并且各种形式,各种应用领域的软件都需要工程化,所以,产生了软件工程,整个软件工程过程中的项目管理方法是非常重要的,本文主要根据软件开发中项目管理涉及的人员、产品、过程和项目四个方面来讲述了软件工程项目管理的具体内容。 【关键词】软件工程;项目管理;管理方法 1软件工程开发概述 软件工程是建立和使用一套合理的工作原则,以便经济地获得可靠地、可以在实际机器上高效运行的软件。软件工程方法为构建软件提供了技术上的解决方法,包括沟通、需求分析、设计建模、编程、测试和技术支持。 2软件工程项目管理方法在软件开发中的应用 有效的项目管理集中在4个方面:人员、产品、过程和项目。 2.1人员 在IEEE发表的一项研究中提到,当向3个大型技术公司中主管工程的3位副总裁问及一个成功的软件项目中最重要的因素是什么时,他们回答会的的第一重要的因素不是他们所用的工具,而是人员。 2.1.1项目利益相关人员每个项目的利益相关人员有高级管理者、技术管理者、开发人员、客户和最终用户参与,为了高效率的完成项目,整个团队必须能够发挥好每个相关人员的能力和技术,这是团队领导者的任务。 2.1.2团队领导者项目的管理需要很多相关者的努力,作为一个团队的领导者,第一要具有一定的实力,必须能够掌握整个项目,还要能够理解团队人员,能够用自己的语言来影响整个团队。 2.1.3软件团队优秀的团队结构取决于组织的管理风格、团队里人员数目与技术书评,以及问题的总体难易程度。规划软件工程团队结构时应该考虑待解决问题的难度、开发程序的规模、团队成员需要共同工作的时间、对问题做模块化划分的程度、待开发系统的质量要求和可靠性要求、交付日期的严格程度以及项目所需要的友好交流的程度等因素。 2.2产品 不管喜欢与否,从项目一开始,就要研究应该开发哪些产品以及要解决哪些问题。至少我们要建立和界定产品的范围。 2.2.1软件范围软件项目管理首先要做的就是确定软件范围。确定范围主要考虑要开发的软件如何适应于大型的系统、产品或业务环境,软件要产生哪些客户可见的数据对象作为输出和软件要执行什么功能才能将输入数据变换成输出数据等问题。 2.2.2问题划分问题划分是软件需求分析的核心活动。在确定软件范围的活动中,并不试图去完全分解问题,只是分解其中的两个主要方面:必须交付的功能和内容和所使用的过程。 2.3过程 团队选择过程模型主要适合于需要该产品的客户和从事开发工作的人员,产品本身的特性和软件团队随处的项目工作环境。软件团队在选择最适合项目的软件过程模型时,应该具有很大的灵活性。一旦选定了过程模型,项目团队可以根据需要灵活地确定过程模型中应包含的软件工程任务。较小的项目如果与以前开发过的项目相似,可以采用线性顺序方法。如果时间要求太紧,不可能完成所有功能时,增量策略可能是最好的。同样的,如果项目具有其他特性,可能就要选择其他过程模型。作为项目负责人,要特别注意与用户保持联系,掌握用户的心理和动态防止来自用户的各种干找和阻力。 2.4项目 为了更好地管理软件项目,我们要注意以下几点: (1)在正确的基础上开始工作。通过以下两点来实现:首先努力的正确理解要解决的问题,然后为每个参与项目的人员设置现实的目标和期望。这一点又通过组建合适的开发团队,并给与团队工作时所需的自由、权利和技术而得到加强。 (2)保持动力。很多项目的启动都有一个良好的开端,但是,后来慢慢地开始瓦解。为了使整个项目开发过程人员充满动力,项目经理比喻采用激励措施,使人员变动更小,让每个任务都高质量的完成。 (3)跟踪进展。对于软件项目而言,当工作产品正在产生或被认可时,跟踪项目进展要作为质量保证活动的一部分。 (4)做出英明决策。总体上,项目经理和软件团队的决策应该“保持项的简单性”。 (5)进行事后分析。建立统一的机制,从每个项目中获取科学系的经验。 3结语 软件工程项目管理是软件工程的普适性活动。它先于任何技术活动之前开始,且持续贯穿于整个计算机软件的建模、构造和部署之中。项目管理中的人员、产品、过程和项目对软件项目管理具有重大的影响。要顺利完成软件开发,就必须将人员组织成有效的团队,激励他们完成高质量的软件工作,并协调他们实现有效的沟通。产品的需求必须考虑客户与开发者的想法,设计更合适的产品。过程必须适合于人员和产品。最后必须采用确保软件团队能够成功的方式来组织项目。 作者:王明 单位:首都经济贸易大学 软件项目管理论文:计算机软件工程项目管理研究 1软件工程项目管理中存在的问题 1.1缺乏管理意识 在软件工程项目处理中,有些项目经理没有强烈的认识到本身的责任,无法从总体上掌控全部项目,只是静心于详细的技术工作,造成项目组成员之间忙的忙、闲的闲,打算不周、使命不均、资本奢侈等近况。有些项目经理没有很好的管理方法,本身做比力坚苦的事情,使项目使命没法公道的分配给小组成员,以到达事情“负载平衡”。在涉及相关软件技术方面的企业中,项目经理大部分是团队中的技术中坚力量或者是主要技术人员。但是,在详细的项目实施细节中,无论是项目基本的常识,或是项目实施必备的能力与本领,他们还存在着很大的晋升空间。技术骨干在担当项目经理之前,最佳的选择是提前练习与实践相关的项目办理常识。项目经理需要的不仅仅是技术上的常识,更多的是与人来往配合的常识,需要指出的是人际间的交往能力是其必需的业务素质之一。另外,项目的负责人还要有比较强烈的责任意识,并且在现实工作中不断提高本身应该具备的责任品质,积极践行责任行为,树立好的标杆与榜样,为团队整体的发展负责。这是项目实施的具体路径所决定的,没有领头羊一切将很难开展与执行。 1.2存在风险管理 项目风险与预防潜在危害的意识是一种非常重要的意识,在任何项目在举行方向与正式实行以前,作为项目的负责人要从危害存在的大概性动身,对其大概致使的危害系数举行预先的判定和做好需要的预警备案。任何项目都有必然存在的潜在的风险,但是最好人工的准备,风险的危害最大水平的降低是对项目负责人能力与水平的重要考量,其必需做好足够的准备工作来应对随时发生的变故。有些项目经理在工作中并没有充分认识到风险管理的重要性,对企划书中风险管理进行了粗略介绍,敷衍了事的随意列出几条危害,写一些简略应答办法,对后来的风险防范起不到任何作用和影响。 1.3内部沟通问题 在软件工程项目的进展与实施过程中,人际间的配合与合作是不可缺少的,但是由于秉性的差异,沟通与交流中的障碍与差异会影响团队的协作与凝聚。很多开发的工程项目的规模比较庞大、复杂,项目经理就很难协调小组成员之间的关系。项目团队中就很有可能出现不同角色之间的分工不清、责任不明,导致的工作互相推诿、出现问题推卸责任的情况。有时还会发生组员之间不进行沟通联系,各做各的工作,不愿意和别人合作,最终导致的项目无法按时完成等问题,产生不必要发生的损失。为避免以上呈现的现象在软件工程项目的研发与实施过程中,项目经理应制定有效的交流轨制和交流机制,增强团队队员之间的配合意识,对由于贫乏交流而产生的差错要进行规避与责罚。进度控制的问题在软件开发工作过程中,由于种种原因无法按时完成工作进度,延期项目的进度也是经常有的事情,有可能会带来很严重的损失。这时就需要项目经理来有效的节制团队的工作进度,对应项目进度的个体意义进行判断,事前或实时采纳需要的办法,尽可能缩小预期进度与现实进度的误差,实现对项目的自动管控。 2软件工程项目管理对策 2.1完善管理体系 首先,计算机软件工程项目管理的体系要对人才进行有效并且合理的管理,建立一个完善的、合理的人力资源管理体系。其次,团队职员要有杰出的本领与功底,而且队员要有求知欲和上进心,可以不竭的进修计算机软件工程项目办理的热情,有用的将履历和实践。最后,团队中的队员要履行工程项目中的规章制度,严苛的奖惩制度也会在必然程度上增进队员,激发他们的主动性,使得队员更踊跃的为项目尽力。 2.2提高进度与风险管理工作的效能 项目经理首先应加强项目进度的处理,项目进度计划的制定指,利用时间进度完善办理进程的功效,来抉择项目的起头及完成的时刻表。成立一个实际的项目进度计划的进程,和公平合理的、有效的管控好计算机软件工程项目办理中,全数小组成员的任务状况。 计算机软件工程项目办理的职员,应答危害办理的常识、危害方法的常识、量化的方式,和危害管控的方式举行有用的把握和认知,为计算机软件工程项目办理做好有用的危害办理陈述,而且做好有用的危害防备事情。风险在项目完成之前的过程中都有可能会发生,所以需要项目经理定期的对软件工程项目进行风险评估,对不同等级的风险进行使用不同的应对措施来处理问题,必要时期可以采用规避、减缓等处理方式。当前在软件项目控制中的一个非常重要的应用是对信息的优化处理与分析,从而做出比较科学的判断与预测,随着近几年来,软件在项目控制中的深入应用,特别是各种计算方法的不断普及,项目控制在“软计算”等方面取得了非常长足的进展。这些都是我们在未来的项目工程现代化技术的发展方面应该急需解决的问题。 2.3建立合作式团队 我国在项目管理方面的科研人才存在着很大的缺口,这一点严重地制约了我国项目管理的现代化技术发展,因此,构筑合作团队非常重要。第一要素是信任感。这意味着一个有凝聚力的、高效的团队成员必须学会迅速地、平心静气地熟习自己的诟病、错误、失败。他们还要乐于承认他人的优势,即便这些优势超过了本身。以人的软弱与退缩是很难形成有战斗力的集体的,这与高效管理的初衷也不尽符合。第二要素超卓的团队需要领导带头。团队成员全力以赴,由于他们很清晰必要做什么,他们会彼此排除别人那些无助的行动而恰恰是这类无怨无悔的行为,才培育和培养了他们对彼此的负责与担当。第三要素增强职员之间的联系。可以按期见面开会,开会前先把议题准备好,会中有记实,吩咐有记实总结、存案,除正式交往,队员之间也要非正式练习,连结事情关系,增强感性与亲情的融会是队员的一种需求。 3软件工程项目对策的有效性分析 当前在软件工程项目中的一个非常重要的应用是对各种信息的优化处理与分析,然后制定相应的对策,来实施对各类问题的有效解决。 3.1对策的针对性 对策目标的针对性,是指备选的对策必须是依据项目管理中给出现的问题,提出的解决方案。文中第三部分指出的三条对策都是根据软件工程项目管理中可能出现的三种问题,一一对应提出的,每一条都是根据问题提出的相对应的解决措施。这中针对性要从不同的问题性质的本身来设定不同的方案,在实践过程中,对策的针对性是解决问题的关键所在。 3.2对策的实用性 对策必需遵循主、客观条件,并在此基础上提出清楚的而不是模糊不清的、可操作的而不是脱离实际的对策。提出的三种对策都是在现实能够达到的基础上制定出来的,清晰地指出应如何处理项目管理中出现的问题。所以,从问题对策的实用性出发,探究其发展的对策具有非常重要的积极意义。 3.3对策的可行性 对策的可行性指对策与问题之间是否存在一致性。同时,政策的制定应该遵循各种主观与客观的要求,在了解清楚的基础上进行对应性的应答。当政策与具体问题出现严重的不对称时则非常容易造成意外的损失。 作者:郎晓菲 软件项目管理论文:计算机软件工程项目管理思考 计算机软件大体分为三类,一种是总述,一种是系统软件,一种是应用软件,系统软件的作用是促使各个硬件按照一定的规律协调工作,保证计算机处于正常运转状态。而应用软件的作用则是为了实现某种使用愿望而开发出来的软件。 1计算机软件工程项目管理的基本概念 1.1工程项目管理的含义工程项目管理主要是业主通过委托从事工程项目管理的企业,签署相关协议,工程项目管理企业有义务和权力代表业主在工程项目进行的情况卜干预和服务。工程项目管理企业可以协助业主同项目工程总承包签订一系列合同,只是起到辅助性作用,不直接与总承包企业或者施工、勘察、供货和设计签署协议或合同,工程项目管理企业有责任在施工过程中监督合同的完成情况。 1.2软件工程项目的概况 1.2.1管理人员开展有序的项目计划 企业必须把人员管理放在重要位置,在软件工程项目的开发上人员的调配问题是保证工程顺利进行的重要因素,因此,项目能否成功和工作人员的工作能力、写作能力息息相关,针对工程项目的操作类别不同,可以分配成各个研究小组,进行科学合理的针对性开发和高效的协作,有利于工程的快速推进和更加完善。小组内的人员根据自身优势,确定自己的工作内容和工作时间。对项目进行正确的认识和对风险进行评估,与此同时从节约成木的方而出发,形成科学的人力资源调配机制,使项目得以顺利开展。 1.2.2质量和配置管理工作 软件的质量管理工作是整个项目的核心工作,质量管理决定着计算机软件工程项目管理是否真正的成功,通过一系列保证质量的手段,有计划的编制、控制和保证项目质量。保证项目质量的方式可以通过定期的进行质量评估得以实现,在日常项目管理中要不断的对工作进行考查,对于项目不合格的地方要提出意见并且考虑整改措施,不断完善整个软件配置管理的记录工作,使项目的质量能有一定的检测体系,这样开发者会对项目工程的质量问题有比较深入的了解。 1.2.3风险评估和管理工作 风险管理大致分为两种工作,一种是风险识别,另一种是风险评估。得到评估结果以后要针对问题提出相应的解决办法,定期检测计算机软件工程的好处是可以减小产生风险的概率,还可以避免一些因疏忽而产生风险,使项目的损失减少到最低,也减少了因项目风险而造成的一些相关责任人的利益冲突。 2计算机软件工程项目管理中存在的问题 2.1管理团队的协作问题 分工合作是我们完成一个项目的基木因素,在软件开发方而更需要每个人的智慧一起凝聚出果实,共同享受成果,而目前在计算机软件工程项目管理方而信息的交流方而存在一些问题,例如分工不清、团队不合作等问题。 2.2需求分析和实际中的业务存在差距问题 计算机软件工程项目没有结合实际的活动需求,也没有调查有效的数据分析,因此计算机软件工程项目管理在开发出新的产品以后并没有取得理想的业务效果。 2.3风险管理的问题 项目的风险工作是企业需要考虑的很重要的问题,如果风险没有相应科学管理,很容易带来巨大的损失,但是很多员工并不懂得如何规避风险,缺乏相应的专业知识,更是缺少对风险工作的管理,导致很多企业在风险来临时无法做出正确行动,造成巨大的经济损失。 3计算机软件工程项目管理的对策 3.1对风险管理和工作进度进行有效管理 制定风险管理制度。计算机软件工程项目管理的工作人员必须具有一定的风险识别意识和相应的遇到风险的专业知识,并且能有效的控制风险的能力。在平时要做好风险评估的管理报告,针对可能发生的风险要及时预测并且做出相应的解决行动。设置专门的人员对计算机软件工程项目定期进行风险的评估和检查工作。在整个项目中,根据需要进行多次的风险管理工作,因为风险无时无刻都有可能存在,检查的目的是尽量减少风险发生,在一般情况卜处理风险的措施一般有三种:减缓、规避和转移。提高工程的进度,不断的推进工程的工作效率。要制定详细的工作计划表,并且尽可能达到最高的工作目标。工作人员有严谨的工作态度和高效的作息时间安排,管理人员要密切关注工程进度,不断的督促员工完成应做的工作量,有条理、高效的完成对员工的工作任务的监督工作。 3.2建立完善的管理体系针对计算机软件工程的人员日常管理工作,要建立科学有效的管理方案。合理安排人才资源,确保在进行计算机软件项目工程时人员调配顺利进行。专业知识的培训对于工作人员来说 是必不可少的,可以极大的丰富计算机软件工程项目人员的专业水平和实践能力,减少工作上的失误,提高工作效率和工作人员的素质。奖罚制度是对企业员工优劣的衡量标准,所以在计算机软件工程项目管理方而采取奖罚制度可以极大程度上调动员工的积极性,使员工主动为企业创造效益,企业的发展才能有长远的未来。 3.3建立合作的团队 在员工内部建立有效的交流机制。员工的内部工作经验交流是非常重要的,因此要完善沟通方法,开辟多种交流方式和渠道,不断的增强各个部门的沟通意识,使团队的力量不断凝聚起来。明确分工,责任落实到个人。计算机软件工程管理非常复杂,需要的人员也众多,因此必须要使每个员工明确自己的工作内容和范围,清晰的划分自己所需要负责的区域,清楚自己的责任,这样能够确保每一个步骤都井井有条,非常有秩序。调动整个团队的工作积极性。通过一些活动、奖励措施等使每一个工作人员全身心的投入到工作中去,愿意并想要去做的更好,不断激发团队的潜力和员工的协作能力,这样项目不仅会做的越来越好,员工内部也会越来越和谐并且充满正能量,企业的效益也会不断得到提升。 4结语 计算机软件工程项目管理的工作内容十分的复杂,要保证软件工程按照工程原计划进度顺利开展工作,并且要节约成木、保证质量,必须熟练对计算机软件进行操作,在现在的大多数生产计算机软件的企业中最为重要的就是软件工程项目的管理效率,软件工程项目的成功条件是软件项目要具有科学性和高效性,在此基础上企业的合理管理也是企业走向成功的关键。 作者:陈瑾 单位:徐州工程学院 软件项目管理论文:软件开发项目管理论文 1在软件开发中实施项目管理的重要性 有时即使不开展项目管理工作,软件开发项目也能取得成功。但是如果乏项目管理,则难以将成本控制在一定范围内,容易导致软件企业面临着亏损的风险。在开展项目管理工作的过程中,需要借助技术、方法等,管理软件开发活动,如此既有助于实现软件开发目标,又能够控制软件开发的进度以及开发成本。当前,虽然有部分软件企业依据软件工程理论,制定了管理软件开发的制度,但是却没有严格控制软件开发的进度以及成本。这种做法不仅会延长软件开发的时间,还会增加软件公司的经营风险,最终损害到相关用户的利益。而在软件开发过程中,开展项目管理工作,就有助于保证软件开发工作的顺利完成,同时提高软件企业的经营管理效率。 2项目管理在软件开发中的应用现状 在二十世纪六十年代中期,人们发现了在开发软件过程中存在着很多问题,具体的问题表现在以下两个方面:一方面,不规范的生产过程;另一方面,不重视管理工作。为了能够有效解决软件开发过程中存在的问题,人们开始尝试利用过程管理方法。但是到了二十世纪八十年代,还是没有制定管理软件开发过程相关标准。近几年来,在信息技术快速发展的背景下,人们采取项目管理来控制软件开发的质量、软件开发的成本等,以此确保软件开发的质量和成本等因素,符合当时的既定标准。在软件开发过程中,每一个项目组的不同成员都应该承担不同的任务,并且企业管理者应该要求他们要在规定的时间内完成自身的任务,这种明确分工制度,有助于提高员工的工作效率。 3项目管理在软件开发中的应用 每一个软件开发项目都要经过以下几个阶段:提出问题、研究可行性、分析需求、测试等。因此项目管理工作应该贯穿于软件开发的整个过程。 3.1可行性研究 无法开发哪一个项目,都需要进行可行性分析与研究。通过利用项目管理来研究软件开发项目可行性的目的在于:在最短的时间内确定软件开发项目是否具有开发的价值。其中可行性研究的内容包括: 1)、研究技术的可行性。其主要是指:要合理地分析开发项目的功能与性能,分析其中所隐藏的技术风险。 2)、研究经济的可行性。其主要是指:估计所开发的项目给企业带来的经济效益,然后依据所估算的经济效益,确定该项目是否具有投资的价值。 3)、研究社会的可行性。其主要是指:分析此项目的运行方式是否正确,分析当前的人员技术水平以及管理制度是否具有可行性。 3.2软件项目估算 在软件开发过程中,首先要规划软件开发项目,如此便于项目管理人员制定切合实际的估算方案。规划软件开发项目的内容主要包括:明确软件开发的目标、明确软件开发过程中需要用到的各种资源、明确软件开发的进度等。在软件开发过程中,估算起着非常重要的作用。通过估算可以保证软件项目在规定的时间内完成,也可以确保软件项目的成本未超出预算。在估算资源、成本以及进度的时候,要依据自身丰富的经验以及相关的数据。但是当前所使用的估算方法较为单一,此种估算方法容易增加估算风险。对此,研究人员应该努力研究出更多科学、有效的估算方法。 3.3软件项目开发人员的管理 在开展软件项目开发人员管理工作的时候,首先要合理安排人员。通常情况下,是由多个小组成员共同完成软件开发项目。在具体安排人员任务的时候,要依据每位人员的优势进行,并且要明确小组内每一位成员的工作任务以及工作目标。在软件开发过程中,要确定不同的责任人,比如:项目经理、开发经理,并且为每一个小组安排一名组长,如此有助于确保软件开发项目的顺利完成,同时保证所开发出来的软件属于高质量产品。 4结束语 虽然项目管理过程中并没有包含较为深刻的理论,但是要想真正实施项目管理还是比较困难。对于软件开发企业来说,其应该在不断的实践中总结项目管理工作经验,以此提高项目管理工作的质量。 作者:侯凯 单位:锦州银行股份有限公司