时间:2023-05-30 10:44:36
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇软件工程可行性分析,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
软件的开发周期有需求分析、详细设计、测试、可行性分析、体系结构设计和编码六个部分。形式化技术贯穿于软件开发周期的六个部分,形式化时基于参数化的数学理论形式化定义语义。下面从可行性分析、需求分析、体系结构设计和详细设计几个方法进行说明。
1.1可行性分析
软件生命周期的第一个阶段是可行性分析阶段,在这一阶段要通过大量的数据资料来说明系统的开发是否是可行的。指出项目的建议、风险预测、可行性,为项目的决策提供参考依据。在此阶段,通过将实际问题转化为可行性的研究,形成一定的文档材料,规定专业的属于,说明软件系统进行开发的处理流程、数据流程、输入输出、运行环境和开发环境等等。当前来说,专门用于可行性分析这一阶段的形式化技术还非常少,主要的原因是无法将形式化的符号和自然的语言很好的结合起来,确保使用本软件的用户可以非常清楚明白的理解形式化技术所要描述的意义。Z语言是目前一种不可执行的半形式化语言,它短小且容易阅读,采用非形式化的英语对软件的规约进行解释。
1.2需求分析
需求分析分为信息处理和分信息预处理两个阶段,将可行性分析报告作为输入。元语言是形式化语言中的一种,它是基于集合论的证明规则和谓词演算,给出抽象机状态确定模型,从而生成文档。这种形式化语言,对于程序员来说,容易实现原型而且可读性好,容易掌握。语义的设计是形式化技术中需求分析阶段主要要进行的工作之一。在需求分析这一阶段,ER图是从可行性分析的实际问题中导出来的。通过ER图给出SXL语言的事实和对象,SXL语言有助于开发团队理解和交流。SXL语言、RAISE语言和VDM元语言都是应用于需求分析阶段的比较常用的形式化技术。
1.3体系结构设计
软件设计的第三个阶段是体系结构的设计,在这一阶段是将需求分析转换为要实现的目标软件,并进行各种方案的分析和比较,最终选择较好的方案。在体系结构设计阶段采用过程代数形式化的攻击进行输入、输出的行为描述。TLG语言适合体系结构设计阶段不强调如何做仅仅说明做什么。采用形式化的说明把自然的语言融入到逻辑程序设计范型和数学函数中,这样更容易证明用户需求的一致性。GLIDE是一种半形式化的SSFL,GLIDE的好处是应用范围广,而且抽象的级别比较高,不过也有一定的局限性就是使用的时候需要适当的进行扩充和修改。
1.4详细设计
软件设计的第四个阶段就是详细设计,在详细设计阶段,要与软件系统的形式化描述一致。在详细设计阶段,要为软件系统的各个模块设计相应的内部数据结构和算法,确定最终系统实现的一个精确的描述。Larch语言是用于说明程序功能,可以适当的增强详细设计阶段的处理能力和描述能力。形式化的Trace语言作为软件详细设计阶段的形式化工具,采用将模块实现的抽象数据作为自动机说明每个模块的接口需求。Trace语言与SSFL语言不同的特点是程序自动的生成和验证在同一形式的系统内进行。
2形式化技术的评价
形式化技术在软件工程中有效的提高了开发的效率、改进了软件开发的质量、减少了开发费用。形式化的技术容易在软件的规约上取得一致性,它属于一种非常有效的交流方式。在软件工程中,形式化技术的优势在于语法定义准确、问题抽象、表达无二义性、语义清晰可操纵、描述简洁规范。形式化技术在非功能性的要求上比如安全性、保密性、结构性上利用数学工具更容易进行核查。虽然形式化技术在软件工程的各个阶段已经取得了不错的成就,但是还是存在着一定的局限性,比如缺乏在实际项目中应用的有效工具。程序功能的正确性有时候难以证明,因为形式化技术缺乏定理证明机制的支持。形式化技术的下一个发展方向应该是尽量的把形式化的语言表达的形式进行简单化,让其趋于自然语言,增强它的可理解能力。
3总结
软件工程不仅是计算机科学与技术专业、软件工程专业的一门专业基础核心课程,也是其他相关专业,如信息工程、系统工程、信息与计算机科学、信息管理与信息系统等专业的重要应用技术课程。对于这些专业的学生来说,毕业设计多是以软件开发类项目为主,整个毕业设计就是开发一个软件。为了更好地完成软件开发类毕业设计,提高学生毕业设计的质量,进一步规范毕业设计中的软件开发过程是必需的。软件工程的思想正是用工程化方法构建和维护有效的、实用的和高质量的软件。按照软件工程思想,软件开发的生命周期分为可行性分析、需求分析、总体设计、详细设计、编码实现、软件测试和软件维护几个阶段。在学生的毕业设计中以软件工程的思想为主线,从软件工程的角度去指导学生进行毕业设计,挖掘软件工程在系统开发过程中的价值,解决毕业设计中存在的一些问题,既有助于学生更好地理解软件工程的方法、技术和思想,更有助于提高软件类毕业设计的质量。
2毕业设计中存在的问题
笔者在指导学生软件开发类毕业设计过程中发现,毕业设计存在着选题难、任务重、重视编码、轻过程、项目无法完成等现象。设计过程中没有严格地遵循软件工程的开发方法,没有规范的软件设计过程,项目能否成功主要依赖于个人能力和个人努力,这种不正确的开发方法带来了严重的后果。在项目开发的过程中常常存在以下几个方面问题:
2.1选题的盲目性
选题是毕业设计过程中的一个初始环节,选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生。学生没有认识到毕业设计的重要性,纯粹是为了完成学业而做毕业设计,选题没有一个确切的目标,往往是随便选一个题目,造成选题的盲目性,出现了选题陈旧、选题范围狭窄、选题偏大等问题,使学生抄袭、完成不了毕业设计的情况时有发生。
2.2缺少软件的系统分析
软件开发过程的第一个阶段是系统分析,用来确定软件开发要解决的问题是什么?估算完成该项目需要的资源和成本,确定目标系统应该具备哪些功能,主要经历问题的定义、可行性分析和需求分析三个阶段。软件的系统分析确定了用户需求,同时对目标系统提出完整、具体的要求,引导开发者正确地构建系统。因此,对用户需求做出全面、正确的分析,对于最终软件开发类毕业设计的成败起着至关重要的作用。然而在完成毕业设计过程中,学生往往认为代码编写最重要,对软件开发过程中的可行性分析和需求分析阶段不重视,甚至没有系统分析,对整个毕业设计的完成造成了影响。
2.3软件设计过程杂乱无章
软件设计一般都要经历可行性分析、需求分析、总体设计、详细设计、编码和测试阶段。而部分学生在毕业设计开发的过程中,缺乏软件工程设计思想,跨越需求分析、概要设计、详细设计和功能模块设计,直接进行代码的撰写;或者从代码反推出模块设计;甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才确定。这种无序的软件设计过程,导致最终设计的系统杂乱无章、代码的重复率高、潜在?Bug多、系统的可集成性非常差、不能在规定时间内完成设计或者系统无法运行。
2.4开发过程中文档不完备
根据软件工程学的基本原理,软件=程序+文档,可见软件文档是软件开发过程中不可缺少的组成部分。软件文档贯穿于软件开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。但在实际毕业设计中,很多同学认为把程序代码编出来了,毕业设计也就完成了,提交的毕业设计论文就是系统代码的复制,即只做出一个可演示可操作的系统,而忽略了软件开发的完整性、系统性。完整的毕业设计不仅包括可操作的系统,还包括在开发系统的过程中所产生的各个文档资料。文档的缺失会降低软件开发的效率、影响整个软件的开发、使用和维护。以上问题的存在,严重影响了毕业设计的进度和质量,没有达到毕业设计的目标要求。针对当前毕业设计的现状和存在不足,笔者认为应用软件工程学的思想指导毕业设计,对促进学生综合素质与工程实践能力培养具有积极意义。
3用软件工程思想指导学生进行毕业设计
3.1以可行性研究指导选题
可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。毕业设计题目的选择,应立足于解决工程实际问题,可由指导教师提供符合相关专业毕业设计要求的题目,也可以鼓励学生自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。选题过程以可行性研究为指导,从课题规模大小、难易程度、学生自己的研究方向、爱好、学生的知识层面和能力等多个方面进行考虑,对于选择的题目是否能够解决,确定在规定的时间内完成毕业设计的可行性。指导教师可根据学生选报的题目来指导学生对该选题进行调查研究,明确课题要解决的问题是什么,简要地写出关于问题性质、项目目标和项目规模的书面报告。可行性研究来指导毕业设计的选题,实质上是简化了系统分析和设计的过程,也是在较高层次上以较抽象的方式进行的系统分析和设计的过程,使学生对于课题的设计有个清晰的思路,为及时完成毕业设计提供了可能。
3.2重视软件的需求分析
需求分析的基本任务是准确地回答“系统必须做什么”,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,不仅指明了系统设计时必须要实现的目标,也是软件设计、实现、测试和维护阶段的主要参考标准。用户需求的获取是软件开发中最重要、难度最大的工作,它贯穿于整个软件设计过程,不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。在进行需求获取和分析时,为了及时、准确地获取,可采用软件工程中比较成熟的方法,例如访谈、实际调查、UML的用例技术等。需求分析在软件系统分析与设计阶段起着桥梁的作用,确定了系统的需求,才能制定出软件设计的框架,保证毕业设计循序渐进、有条不紊地进行,避免后期开发过程的频繁返工,进而按时完成最终的任务。
3.3规范毕业设计过程
软件开发类毕业设计一般是开发一个软件系统,实现一定的功能。“麻雀虽小,五脏俱全”,无论软件规模的大小、功能的多少,都应该严格按照软件工程中软件生命周期每个阶段的步骤完成各项任务。要培养学生把软件工程的概念贯穿于整个毕业设计过程,也就是说,让学生把开发软件的过程看成是盖一栋大楼,修一条公路的实际工程,用工程化的思想指导毕业设计,确定完成课题的各项任务的工作步骤,注重软件类毕业设计的过程,而不是学生所认为的毕业设计就是编程序,代码调试通过即可。通过工程的概念规范毕业设计过程,让学生明白开发一个软件系统一般经过系统分析、系统设计、系统实施三个阶段,必须严格遵循软件生命周期的规律,完成各个阶段的任务,才能最终提高毕业设计的质量。
3.4重视文档的写作
软件工程中的瀑布模型严格地规定了在整个软件生命周期的各个阶段,都要提交相应的文档。文档不仅记录软件开发过程中的大量信息,在软件的开发、维护过程中也起着重要的作用。在指导学生毕业设计时,要求学生遵照软件工程的思想,把文档作为整个设计的指挥棒,记载设计过程的每一阶段完成的目标、任务及技术手段,建立健全毕业设计文档制度,确保毕业设计过程中的文献综述、译文、任务书、开题报告、选题审题表、中期检查表、设计(论文)正文、答辩记录等各环节教学资料档案完善、规范,实现对毕业设计的全程监控。
4结束语
软件危机的出现已存在多年,虽然业界专家不断致力于软件工程理论建设,认为软件工程理论的推进可有效缓解软件危机,但大量实践表明,只有通过对软件需求进行详细地分析才能真正改善软件的重复问题,进而提高软件工程的质量。文章简单阐述了软件工程需求分析的概念,分析了当前软件工程所存在的质量问题,并针对问题提出了相应的质量保证措施,旨在为相关技术人员提供若干参考意见。
关键词:
软件工程;需求分析;质量保证
1软件工程需求分析概念
软件工程需求分析是指在正确了解用户需求的基础上,使软件功能与客户需求相符,同时预估软件研发风险和项目评估,最终开成整个开发设计方案的过程。在软件工程需求分析过程当中,占主导地位的是用户的需求,用户需求的整理由工程师及项目经理负责,通过需求分析获取相关技术性文档材料,包括SRS文档、DRM文档和AcceptancePlan[1]。从广义上来说,软件工程需求分析所要做的工作主要有需求信息的获取、分析、变更、验证以及相关规则说明和管理。软件工程需求分析的流程多且复杂,如创建数据字典、确定需求优先级别、分析需求可行性等。不同流程所使用的分析方法也有所不同,如在确定需求优先级别时,可采取应用分析法,即在考虑产品版本时应基于优先级对产品特性及需求进行分析,若需求变更,则要在不同版本当中添加所变更的信息,并做好相应变更工作[2]。在进行需求分析可行性分析时,需对每项需求实施的可行性进行详细分析,以验证软件是否能够开发,是否能够给公司带来利润。
2软件工程存在的质量问题
第一,文档的时效性无保障。软件各模块的制作通常是由不同人负责的,这就导到软件开发过程存在诸多问题,如在进行需求分析应用数字字典时,因规格不同导到文档编写形式分离。又如不同制作人员所使用的工具不同,编写和检索时间不同,导致文档的时效性无法保证,若编写过程混乱还会给程序的维护带来很大困难,导致文档资料难以寻找,甚至出现缺失,致使维护时间加长,若问题严重的话还会导致软件无法维护。第二,程序与文档内容分离。软件程序与文档内容分离的主要原因是在编写文档设计与需求分析时所采取的角度不同,文档设计的编写是面对程序设计员的,而需求分析的编写是面对用户的,虽然两者的最终目的是相同的,都是将用户需求转化为程序编码设计文档,是在进行转化时却存在很大的偏差,导到软件成品与需求之间存在很大差距。此外,因编写需求分析文档多使用自然语言,而编写设计文档多使用计算机语言,两种语言在进行转化时易出现很多问题,且设计的图较多,如模块图、结构图、数据图等,若文档未及时更新,文档就无法正确表达程序,开发人员也就无法通过文档正确理解用户需求,导致程序与文档内容分离,最终软件只能从头开始。第三,软件开发与维护分离。软件的研发主要包括以下过程:需求分析、可行性分析、软件设计、代码设计、测试,此外还有软件的维护,这是软件自诞生至结束的整个周期。在软件研发的整个周期当中,软件的开发与维护是紧密联系的,软件的开发是软件诞生的重要过程,但软件的维护却是软件质量不断得以提升的重要阶段和方式。现多数软件开发公司在研发软件时比较注重软件的开发过程,而忽略了软件的维护,导致软件开发与维护分离问题凸显。如在进行软件的设计和开发时,研发人员比较重视用户需求分析,但却忽略了软件的功能升级,未预留相应模块接口,给软件的后期维护带来很大困难[3]。因用户需求是一个动态化的过程,随着用户使用时间的推移,用户会产生各种新的需求,若事先未预留相应接口,那么软件的升级相当于重新研发一套软件,这样研发成本明显上升。再者因需求分析与设计文档的编写所使用的语言有所不同,需求分析编写所使用的是自然语言,而设计文档编写所使用的是计算机语言,两种语言并未有一个统一的沟通桥梁,这就导致程序员的理解存在偏差,而这种偏差一旦出现就会使需求文档与设计文档出现分离,最终给软件的维护带来困难。此外,很多程序员习惯性编写程序代码,却忽略了建设文档,导致软件的开发与维护出现分离。
3软件质量保证措施
3.1保证文档编写的完整性
软件工程需求分析的编写对于软件工程需求设计来说非常重要。在编写软件工程需求时,应使用通俗易懂的自然语言来表达客户的软件功能需求,避免使用模糊性语言或是过量使用专业术语,以使程序员能准确理解,防止因程序员的理解偏差而影响程序的编写,导致软件的计算方式出现偏差,最终给用户带来软件陷阱。文档的编写应尽量使用实词,而避免使用形容词或是描述性词语,以保证产品描述的真实性,若使用这些词会使用户需求的理解出现误差,将导致软件无法正确反映用户需求。如在利用数据库存进行软件的开发时,应在设计需求文档当中对储存量、波动范围、数据类型进行详细说明,明确需求量,同时做好备份信息说明,以保证文档编写的完整性,使程序员在进行软件的编写时能够准确理解用户需求,同时做好详细的设计文档和代码[4]。
3.2保证需求分析的完善性
需求文档及设计文档出现分离的最主要原因就是需求文档与设计文档的编写人员不同,且各司其职、缺乏沟通而导致的。在实际工作当中,很多软件开发公司的需求分析人员、开发人员和测试人员是没有任何将领的,这就使得很多软件质量问题无法支及时沟通并得到协商,最终导致软件质量问题增多。而实质上,软件工程的需求分析不仅需要需求分析人员的努力,而且还要与开发人员及测试人员进行相互沟通,以螺旋式的推进方式以不断对需求分析的内容进行丰富和细化,以此来使需求分析更加完整、完善。因此,为保证需求分析的完善性,在进行软件工程需求分析过程当中,就有必要尽量让所有参与工程项目的人员都加入进来,包括开发人员和测试人员,使所有工作人员都能够第一手了解客户需求,避免产生误差或是重复,这样才能有效解决需求文档与设计文档的分离问题。
3.3深入而正确地了解客户的真正需求
现很多软件开发公司为加快软件的研发进度,或是加快软件开发的效率,亦或是迫于交期压力等原因,通常会采取模块重用的方式以减轻软件开发工作量,提高自身经济效益,且现在这种模块重用方式也成了软件开发的主流,是软件工程开发的重要组成部分。但是很多软件开发公司在使用软件重用时,因并未深入分析客户需求,或是地进行分析时粗心大意而导致客户需求理解存在偏差或是错误,导致经重组重用的软件无法满足客户需求,或是软件出现质量问题,最终软件只能从头研发,使得公司软件研发成本大幅上升,影响公司经营和经济效益。为解决这一问题,最主要的就是正确而深入地了解客户的真正需求,同时在软件的研发过程当中做好监督和检查工作,尽量避免出现错误;此外还要注意技术人员在不同步骤之间的沟通,以免因沟通缺失而出现软件质量问题。
3.4依照实际需求调整文档内容
通常来说,在遵循以上规则的基础上所编写的文档是非常严谨、科学、合理的,因此在使用文档时,第一,程序员应严格遵循文档当中的内容,包括规范和说明,以文档内容为指导来编写代码,保证所编写的代码的正确性和准确性;第二,针对文档当中存在疑问的部分要及时向相关人员反映,做好沟通工作,在商量出良好的对策之后对文档进行改善;第三,针对文档中存在较难的技术性问题,程序员应努力攻克,若问题相对严重,则应及时向上反映情况,避免敷衍了事,导致软件产品质量下降;第四,做好需求文档的可行性分析工作,包括开发成本分析和功能实现可行性,从源头上提高软件产品质量;第五,最大限度地使用已有的软件功能模块,以尽量减轻自身的工作员,缩短软件的研发时间;第六,做好维护接口预留工作,以便于日常维护及软件使用过程当中用户可能遇到或是会出现问题的修复,以真正提高软件质量水平。
4结语
在实际工作当中,相关技术开发人员应特别重视软件需求分析,正确认识软件需求分析与质量保证之间的联系,严格律己,全面提升,以不断提高软件工程质量。
作者:赵伟 单位:南京模拟技术研究所
[参考文献]
[1]来羽.软件工程需求分析与质量保障[J].煤炭技术,2013(9):204-205.
[2]邱廷钰.论软件工程需求分析与质量保障[J].大科技,2013(36):347-347,348.
随着信息技术的快速发展,软件的复杂度与规模呈指数级增长,给软件的开发与维护带来了极大的困难。因此,需要将系统化的、规范化的、可度量的方法应用于软件的开发、运行和维护中,即将工程化方法应用于软件。而传统的计算机专业的人才培养模式主要面向理论研究,不能够满足软件企业对工程实践型人才的需求。为了解决计算机教育重理论、轻实践的不足,国家教育部与发展计划委员会于2001年新增软件工程专业。目前,全国已经建立了一批国家与省级示范性软件学院,很多高校也相继开设了软件工程专业,培养模式各具特色,尤其是国家级示范性软件学院已经探索出了各具特色的培养模式,但是还是存在着重理论、轻实践的不足,这一缺陷在地方院校的软件工程专业尤为突出。由于受到资金支持、政策引导、师资建设等方面的限制,地方院校的软件工程专业基本上都是从计算机科学与技术专业繁衍出来的,其培养模式很容易沿用计算机科学与技术专业的人才培养模式,不能满足软件企业的需求,主要存在重理论、轻实践的问题,主要表现如下。
(一)教学方式单一化、理论化
软件工程专业的特点是理论性与实践性并重,特别是实践性非常强,软件工程的许多理论都来源于对实践的总结与归纳。但是目前的教学方法还主要是沿用计算机科学与技术专业的教学方式,偏向纯理论介绍,教学方式上还是以教师讲、学生听为主的“灌输式”的“教授/接受式”传统教学,学生只是被动接受,学习积极性不高。此外,很多教师缺少实际软件项目的开发经历,在教学过程中缺少必要的案例或者使用的案例不合适,妨碍了学生对软件工程中基本概念与理论的理解,不明白可行性分析、需求分析、软件设计的必要性以及不会撰写所对应的文档。
(二)实践少,理论与实践相脱节,学生动手能力差
目前很多高校软件工程专业开设的理论课比较多,实验课比较少,并且由于目前的专业教师大都是毕业后直接到高校工作的,缺少开发大型软件项目的实际经历,设计的实验题目大都规模比较小并且比较零散,比如成绩管理系统,学生可以直接进行设计与编码,无需可行性分析、需求设计、软件设计、进度安排等环节,也没有必要撰写相关的文档。如此以来,学生不能够加深对相关概念与理论的学习,没有体会到软件工程理论在实际软件项目开发中的重要作用,导致学生面对实际软件项目时无法下手,这直接影响到软件工程专业毕业学生的市场竞争力。
(三)校企合作不够
校企合作是实现高校软件工程人才培养与企业需求无缝连接,培养高素质软件人才的重要途径之一,尽管目前很多高校的软件工程专业都建立了校企合作模式,取得了不错的成绩,但校企合作存在着缺乏相应的政策引导、缺少双方交流的平台、企业积极性不高、合作松散、管理手段缺乏等问题。这样就会出现高校培养的软件人才动手能力差,无法满足企业的需要,而软件企业又找不到合适人才的尴尬局面。校企合作力度不够在地方院校表现的更为突出,主要原因是地方院校的软件工程专业在影响力与办学规模上与国家级软件学院有一定的差距,知名的软件企业很少愿意与地方院校合作,另一方面,地方院校缺乏政策与资金的支持,缺乏寻求与企业合作的机会。
二、应用驱动为导向的人才培养模式的改革措施
软件工程专业存在的重理论、轻实践的弊端,使得培养的学生在校学习的知识不能形成一个有效的体系,也没有机会将所学知识融于具体项目之中,同时也不清楚当前软件企业对人才的真正需求。而另一方面,软件企业希望新招聘来的员工能够直接融入到项目的开发中,能够解决项目中的实际问题。这样就形成了高校培养的软件人才“过剩”,而软件公司所需人才“短缺”的矛盾局面。为此,本文提出了以实际应用驱动为导向的人才培养模式,以培养能够在软件公司的一线解决实际应用问题、能在实践中应用所学知识、在实践中创新的应用型人才,并对该培养模式的相关实施方法进行了探讨。应用驱动为导向的软件工程人才培养模式的基本保障是以实际应用为导向加强师资建设,该培养模式按照人类认识的规律,以解决实际问题为目标,的三个阶梯式阶段:案例式课堂教学,项目式综合实训,顶岗式专业实习。
(一)以应用为导向加强师资建设
师资建设是专业建的首位,教师在人才培养中起着不可替代的作用。目前,软件工程专业的师资建设主要还是以理论研究为导向,多数教师从学校硕士或博士毕业后直接到高校工作,主要以理论研究为主,缺乏大型软件项目开发经验,不太了解软件产业的新技术与新动向,从而在教学过程中出现重理论、轻实践的现象,很不利于软件工程专业人才的培养。以应用为导向的师资建设就是在现有的以理论研究为导向的基础上,注重提高教师的实际动手能力,可以从以下3个方面做起:①改变传统的以学历和科研为导向的高校教师招聘方式,软件工程专业应当招聘一批具有大型软件项目开发资深经验的软件工程师,比例占师资总数的30%~40%为为宜;鉴于软件技术的快速更新,应定期派遣教师到知名软件公司的一线进行学习和培训;倡导并且增加教师带动学生参加研发类横向课题的机会,提高教师与学生的实际动手能力。
(二)案例式课堂教学
改变传统的“灌输式”的“教授/接受式”教学模式,使用案例驱动式的教学模式,就是指教师本着理论与实际有机结合的宗旨,遵循教学目的的要求,以案例为基本素材,通过师生、生生之间的双向和多向互动,让学生把所学的理论知识运用于“实践活动”中,以提高学生发现问题、分析问题和解决实际问题的能力。一方面,教师首先应准备一些引入型案例,例如,千年虫问题,来说明工程化方法对软件开发的重要性,并且提高学生的兴趣;另一方面,教师应该准备好一个能覆盖软件工程的各个环节和阶段、难度适宜的实际软件项目案例,这个案例最好是教师实际参加过的或者熟悉的项目,并且有必要的软件文档,然后把这个案例作为一个实际情境,结合案例引入并讲授各个知识点,必须要求学生撰写相应的文档和程序,然后与使用案例的已有标准文档和程序进行比较,找到自己的不足,加深对知识点的学习与理解,做到理论与实际相结合。
(三)项目式综合实训
鉴于软件工程专业的实践性很强,应该以实际应用项目为驱动进行软件工程的课程综合实训,让学生按照软件工程开发的流程去独立地完成一个应用项目。首先,教师选择一些中小型的,生活中经常接触的项目作为综合实训项目库,项目的选择一定要难度适宜,太简单体现不出软件工程化开发方法的优点,但是也不能太难,难度控制在学生可以运用所学习的知识、技能,通过讨论和合作可以完成,然后由学生人组成的小组从中选择合适的项目。然后,每个小组模拟软件企业中的一个项目开发小组,进行分工合作,由组长作为项目经理与指导教师沟通,指导教师模拟实际的客户。最后,项目组严格按照软件项目的开发流程来一步一步完成任务,应该包括可行性研究、需求分析、系统设计、实现与测试等阶段。在每个阶段学生应该提交必要的文档,可以按照《计算机软件文档编制规范》(GB-T8567-2006)撰写可行性分析报告(FAR)、软件需求规格说明(SRS)、软件(结构)设计说明(SDD)、软件测试报告(STR)等。在每个阶段,学生应利用流行的软件工程工具,例如,Microsoft Project、RationalRose等。
(四)顶岗式专业实习
软件工程专业培养的人才最终是面向软件公司的,所以很有必要在第四学年时采用校企合作的方式,委派学生到软件公司顶岗实习,时间根据实际情况以个月为宜。在顶岗实习期间学生要与正常的员工一样完成企业的工作要求,真正在实际软件开发中理解并应用前期学习到的知识与技能,实现自身能力的提高,成功地由学生角色过渡到职业角色。在实习期间,学生的管理以企业管理为主,学校管理为辅,学生、教师、企业三方根据实习项目的实际情况确定学生毕业设计题目的选题与设计,最终由学校的指导教师负责指导完成毕业设计论文的撰写与答辩等事宜。
三、结束语
关键词:软件工程;实践教学;订单式培养
1 引言
软件工程课程是一门综合性、实践性很强的课程。学习该课程的主要目标一方面是让学生掌握软件开发的系统知识,包括其中的原理和方法;另一方面是让学生初步掌握解决实际开发问题的能力,从而为将来走向软件开发工作岗位打下坚实的基础。为了解决上述两方面的有效融合,很多大学都在进行软件工程实训模式的研究和订单式培养等研究,也取得了很多研究进展。本文就是在研究上述内容的基础上提出了一种一体化软件工程教学方法,即满足教育目标要求又符合社会对学生能力的要求。
2 软件工程课程教学现状
目前的软件工程教学现状,可以概述为课堂教学和实践教学两个部分。教师在课程教学中,普遍采用讲授与实验训练相结合的传统教学方法,即课堂上由教师讲授理论、原理,实验训练时由学生动手设计一个项目。因此,该课程的教学存在许多的问题,主要表现在以下几个方面:
从教学内容上看,目前软件工程原理和方法较为抽象,学生较难理解,这是由于目前学校将软件工程课程设置在大三的上学期,而在大一、大二主要围绕着公共基础课、专业基础课进行。从学生角度来看,其刚刚掌握了一两门语言、初步了解计算机体系结构的知识,很多同学还没有进入到真正软件开发的角色中去。特别是在学生时代还没有开始或者刚刚开始准备考虑将来工作的事情的时候,软件工程课程已经开始了。在没有软件开发基础或者软件开发只停留在编一小段代码的情况下,很难理解软件开发所涉及的这么多问题。
从教学方法上看,软件工程课程以传统的教学为主,实践课为辅的教学方法,由于学时有限很难在实践课上将所涉及的软件工程原理和方法逐个地展示给学生,学生似懂非懂,当真正动手的时候却不知从何入手,学生学习的效果差。
从实训教学与订单式培养看,实训教学是将学生置入到模拟的实际工作环境中去,让学生自己体会在软件开发的不同岗位上的职责和应具备的能力与知识;订单式培养是按照指定的企业工作岗位的要求来培养学生所需掌握的知识和技能。目前高校中这两种方式所存在的问题是:实训教学的形式化问题,实训教学是让学生按照软件开发不同岗位所需要的技能和知识来进行,而不是给一个机房,让学生在里面编程就解决了,实训课不等于实验课;订单式培养的问题是学生知识面狭窄,虽解决了实际就业的问题,也培养了学生适应某个企业的岗位要求,但丧失的是学生应该具备的完整、扎实的知识体系。
3 一体化教学方法
为了解决上述三方面的问题,有机地将教学与实际结合在一起,既让学生掌握全面、扎实的知识体系,又让学生具备实际工作岗位要求的技能,综合软件工程教学方法应采取以下方法:
从课堂教学内容上看,结合软件工程的不同阶段,如:可行性研究、需求分析、总体设计、详细设计、编码、测试、维护等不同的软件开发阶段,在讲述不同阶段所使用的原理和方法的同时,要给学生讲述每个阶段的输出,输出的格式、标准。
从实践教学内容上看,让学生掌握在不同开发阶段所需掌握的开发工具是什么,如何使用,这样让学生对软件开发有一个深刻的感性认识,从而对软件开发的过程有感性了解,避免了书本上抽象、难懂等问题。
课堂教学与实践教学的统一,以实践项目为例从项目开始进行可行性研究,讲述软件工程原理和方法,以及每个阶段所产生的文档或者代码,文档和代码的标准内容是什么,到用实际的开发工具来进行可行性分析,如:使用Microsoft Visio绘制系统流程图、数据流图等,利用Rational Rose进行对象建模等。结合工具的使用,使软件工程教学内容以看得到、摸得着的方式逐步地传授给学生,激发学生的积极性、主动性及创造性。
软件工程课堂教学可采用分组讨论。软件生命周期的可行性研究和需求分析环节都要求开发人员和用户进行充分的交流。因此,在软件工程的教学中可以让学生参与教学过程,发表自己的看法,而且通过这种基于角色的讨论,学生不仅掌握了需求分析的基本方法、充分认识了需求分析的重要性,最终会大大地激发学生的学习兴趣和学习自信心。
4 结论
综上所述,软件工程课程是一门综合性、实践性很强的课程。要想取得好的教学效果,应该深入进行软件工程的教学改革。利用新的教学方式,激发学生主动学习理论知识的兴趣,提高教学效果。当然,学生也可以从教改理论和实践的结合上,加深对软件工程知识难点、重点的理解,进一步深刻理解软件工程过程和系统消化理论知识,训练项目设计的思路,锻炼实际开发能力。
参考文献
[1]Microsoft Corporation.office.省略/zh-cn/visio.
[2]宋波.Java Web应用与开发教程[C].清华大学出版社,2006.
[3]吴建,汪杰.UML基础与Rose建模案例[C].人民邮电出版社,2007.
[关键词]软件工程 项目驱动 教学改革
[作者简介]范会联(1971- ),男,重庆人,长江师范学院数学与计算机学院,副教授,硕士,主要从事软件工程、智能信息处理的教学与研究工作。(重庆 408100)仲元昌(1968- ),男,四川南充人,重庆大学通信工程学院,副教授,博士,研究生导师,主要从事通信与测控系统、无线传感器网络等领域的教学与研究工作。(重庆 400030)
[基金项目]本文系2011年重庆市教委研究项目“基于RFID的校园安全防范系统研究与设计”的研究成果。(项目编号:KJ111304)
[中图分类号]G642.3 [文献标识码]A [文章编号]1004-3985(2013)05-0147-02
软件产业是信息产业的核心、国民经济信息化的基础,已经渗透到各个领域。相关数据显示,我国软件开发行业人才需要量已经超过30 万人,并仍以每年20%的速度增加,其中初级软件开发工程师的需求量就高达20 万人,软件服务外包、3G 研发的人才缺口更大。但让人困惑的是,近年来失业率排在前10 位的专业中涉及计算机科学与技术。一方面每年相当一部分计算机专业毕业生就业困难,另一方面企业招聘不到对口的软件人才,这说明学校培养的软件人才与企业的实际需要存在较大差距。目前我国500 多所院校开设了计算机专业,培养方式各具特色,但培养适应企业需求的优秀软件开发人员,仍是教学实践中值得进一步研究和解决的问题。本文分析研究了软件工程课程的特点及传统教学实践中涉及的普遍问题,提出在软件工程课程的教学实践中引用基于项目驱动的复合教学式理念,并从教学定位、教学内容、教学方法、实践教学等方面进行了探索。
一、课程特点及教学定位
软件工程是一门理论与实践并重的课程,涉及内容广泛,从工程意义上讲,包括软件开发、维护和管理等活动的总体;从学科意义上讲,包括与软件开发相关的理论、原理、方法和技术。ACMCC2001 草案把软件工程学分为七大核心专题:软件过程和软件生命周期模型、需求分析、软件设计、测试和评估、软件进化、软件项目管理、软件工具和环境。为满足社会对不同层次计算机专业学生在软件工程方面知识和能力的要求,软件工程课程应设计成一个多层次的课程系列。针对计算机专业应用型本科学生,将教学定位在两个方面:一是从软件生命周期的角度,讲解软件工程的基本概念、基本原理和基本方法;二是从工程应用的角度,讲解系统性、规范化的通用开发技术。软件工程课程教学应既重视理论知识和分析问题与解决问题的方法,又重视软件工程实践。课程教学目标是使学生掌握需求分析、概要和详细设计及软件测试与维护等内容,用软件工程的原则、开发方法与技术实现中、小规模项目的开发与管理,使学生在基础知识与技能、团队协作能力、分析与解决问题、谈判与沟通能力、创新与发展能力等方面得到良好的训练,为将来从事大型软件系统的开发与维护打下扎实的基础。
二、传统教学方法存在的问题
1.教学内容枯燥、抽象、陈旧。目前的软件工程教材偏向纯理论介绍,主要讲解方法学,从结构化或面向对象的角度讲解软件开发过程的理论知识,缺少案例支撑。大部分学生对软件项目概念的理解是建立在其他课程设计的基础上,没有软件项目的经验,因而妨碍学生对软件工程中基本概念的理解,如可行性分析、需求分析、需求变更、过程管理、质量保障等,不明白为什么要做可行性分析、需求分析,以及需求变更的必然性及管理措施。随着软件系统向社会各方面的渗透以及软件系统的规模不断扩大,对软件系统的质量要求越来越高,这对软件工程课程的教学内容提出了新的要求。从内容上看,不仅要重视方法,还要重视开发工具与环境;不仅要重视开发过程,更要重视开发过程中的过程管理和质量保证措施,这些知识和技能,不能仅仅依靠书本和课堂教学来获得。
2.案例教学中采用的案例不当。软件工程的实践性很强,教学时一般采用案例教学法,方法的成效取决于选择的案例,案例如果选择不当,则教学效果肯定不好。很多教师在教学时,由于缺少实际软件项目的开发和管理经验,导致案例的选取要么不贴近学生实际,如机票预订、仓库管理项目,学生缺少实际接触经验,因而理解困难或不感兴趣;要么选择的案例规模较小,如简单的成绩管理系统,在学生的角度来看,可以直接进行设计和编码,不清楚为什么要进行可行性研究、需求分析;要么案例前后不连贯,如由于教师缺少实际项目开发经历,导致可行性分析的阶段选用机票预订,需求分析用仓库管理,而设计又选用人事管理等现象,导致学生对软件项目、软件工程没有建立完整的概念,缺乏对所学知识的整体认识。
3.重讲解、轻讨论,缺乏实战练习。软件工程课程的实践性要求很强,在传统软件工程教学过程中,教师一味讲解软件工程的基本原理、理论,或一味分析一些简单案例,忽视了学生主观能动性的发挥,没有让学生参与教材内容或案例的分析讨论。虽然有实验教学的要求,但一般只停留在组织学生编写软件项目设计文档的单一环节上,由于学生没有进行实际项目的演练,教学效果不理想。尽管这种以教师讲授为主的教学模式,在课堂教学中使用了一些情境教学,但仅仅遵循原有理论教学过程模式,并未按典型工作任务模式完成情境教学,培养出来的学生缺乏自主探索知识的能力和运用知识解决实际问题的能力。因此,切实加强软件工程教学的创新与改革至关重要。
三、项目驱动的复合教学模式
复合教学模式是以科学的教学理论为指导,依托分组教学、研讨、协作、活动参与等多种教学模式的相互交叉、相互渗透,并融合多元化的教学内容、多样性的教学形式、现代化的教学方法而形成的综合性、立体性的教学模式。结合软件工程课程特点,提出“项目驱动的复合教学模式”,以项目为主体,组织学生以团队的形式参加项目分析、设计、实现和管理,在项目实施过程中,激励学生自我认识,引导学生独立思考与创新,营造讨论争辩的机会和气氛,并以讨论的形式鼓励学生表达各自的观点和思想,从而积极主动地参与分析、概括或评价等思维活动,将软件工程的分析、设计、实现、管理等各个知识点的讲解融入项目实施的各个阶段。项目驱动的复合教学模式由以下几个环节构成:
1.学生分组。学生按系统分析、设计、实现、测试的角色组成4~5人的开发团队,选举一人作为项目负责人,明确各自的分工和职责,并协作完成,以培养学生的团队合作精神、沟通能力和协调管理等能力。随着教学进度展开,把项目实施与理论教学结合起来。
2.确定项目。项目的确定分为教学案例和演练项目。教学案例是教师用于组织课堂教学讲解的项目,由教师根据学生的特点确定。演练项目是在教师的指导下由小组根据各自的兴趣、特长自行选择,用于课后同步训练。
3.教学内容及方法的改革。教学内容的选取以整合相关课程中相同知识点使教学内容更加精炼为指导思想,根据市场和企业对软件人才的需求,将重要、经典的基本概念、知识点连同相应的技能串联起来讲授和实践。软件工程课程的教学内容将软件过程模型、工程管理、需求工程、分析建模、软件设计、软件构造、测试以及软件交付与维护为骨干,融入数据库原理、计算机网络、数据结构、操作系统等相关课程知识,按和J2EE两个方向构建组合式、模块化教学内容。在教学方法上,以培养学生的独立思考和创新思维为目标,将理论知识融入教学案例的讲解中,通过分析、演绎、推断、归纳,引导学生认真分析项目中体现的软件工程领域的问题,运用启发式教学方法建立教师、学生双向交互的教与学通道,启发学生对软件开发问题的认识和思考,激发学习的主动性,使其通过积极的思维和讨论获得知识。
4.演练项目的过程管理。演练项目作为课外同步训练项目,教师以需求方与技术顾问的双重身份参与其中。作为需求方,教师针对演练项目提供大致的功能需求,鼓励学生通过分析问题、调查研究、分析需求和管理需求等活动,学习软件需求工程的基础知识和基本技能。作为技术顾问,教师为学生提供相应的学习资源和解决问题的方法及手段的建议,引导学生独立思考和讨论。演练项目的实施按项目规划、迭代开发两个阶段组织进行。在项目规划阶段,完成定义项目开发过程模型、定义项目组织结构、分配人员角色、估算项目规模、制订进度计划。迭代开发阶段是由需求分析、软件设计、数据库设计、模块开发与测试各环节组成的循环逐步求精的过程。整个演练项目的实施要求在规范的、可控的过程中完成,具体保障措施如下:一是明确开发任务并落实到小组的每个成员,由项目负责人填写任务跟踪表,监督任务执行情况,小组各成员通过不同角色的任务分工,共同协作完成项目开发任务;二是实行每周例会制度,保证所有成员在规定时间进行讨论交流;三是将需求分析、软件设计、模块开发、集成测试等关键阶段产品置于配置管理的控制下,并实行阶段评审机制,要求各项目组在完成每个里程碑的任务后,提交相应技术文档,推荐一名代表就该阶段完成工作情况、遇到的问题及解决方法作小型汇报,并组织学生进行技术评审。
5.演练项目验收。在完成演练项目的开发任务后,由教师组织项目验收讨论会,要求每个小组演示项目成果,从系统背景、团队介绍、采用的技术、系统优势及存在问题等方面汇报,演示系统的各项功能,回答教师和同学的提问,以团队的形式提交软件需求规格说明书、软件设计文档、项目代码、软件测试文档、软件过程管理文档、每周工作报告以及任务跟踪表等材料。
6.课程考核。课程考核分为理论考核和实践考核两个方面。理论考核采取开卷考试,要求学生在规定时间内完成给定案例的分析和设计方案,重点考核学生思考、分析和解决问题的能力;学生的实践考核成绩由小组成绩和个人成绩两部分组成,小组成绩根据各小组提交的演练项目结题材料,并结合项目验收汇报情况进行评定;个人成绩根据每周工作报告和任务跟踪表由小组组长和教师进行综合评价。
进行教学改革的最终目的是培养符合市场和社会需求的创新型软件人才,在基于项目驱动的软件工程课程复合式教学模式下,培养的人才具有扎实的理论基础知识,通过相关知识的组合式、模块化的理论教学方法,强化学生的认知,使其更牢固地掌握理论知识;具有独立思考和基本的创新能力,在复合式教学过程中,通过引导、启发学生分析问题,积极思考和讨论,培养学生的独立思考和自主创新能力;具有团队协作精神,以项目驱动小组协作开发,培养团队合作精神。在项目进行的各个阶段,要通过明确任务、落实责任、任务跟踪、协作开发、定期讨论、阶段评审和项目验收各个环节的协同工作,达到培养学生的团队精神与合作意识的目的。
[参考文献]
[1]李超,谢坤武,向军.软件工程课程教学内容及方法探索[J].计算机时代,2010(7).
[2]教育部高等学校计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业核心课程教学实施方案[M].北京:高等教育出版社,2010.
[3]庞雄文.基于实例的“软件工程”课程教学方法[J].现代教育技术,2010(S1).
[4]温颖,周昕.项目教学法在软件工程教学中的应用[J].科技信息,2010(24).
【关键词】数据库软件工程作用设计
一、前言
目前,数据库设计过程中最常用的方法就是根据设计要求,顺序或独立地完成物理结构和逻辑结构的设计。由于这两种结构是使用复杂的映射进行联接的,所以设计的数据库结构比较差,这种结构的特点是不灵活、效率低,这主要是设计过程的复杂性造成的。因此,在数据库设计中引入软件工程技术具有积极的意义。本文主要对数据库设计过程中各个阶段的软件工程技术进行了介绍,并与数据库设计的实践相结合,分析了软件工程技术对数据库设计的作用。
二、软件设计周期中的工程技术
(一)软件的生存周期
软件生存周期通常包括要求分析、规格说明、设计、编码、测试和维护六个环节,前两个环节主要是针对用户的要求,明确"做什么",而后面几个环节则是针对计算机系统,明确"如何做"。
在软件设计的过程要尤其注意以下几个问题:
1、软件的设计是为了人们更好的处理问题;
2、软件设计结果是供人们使用的产品;
3、软件设计和系统工程的联系非常密切;
4、所有设计都要采用结构化方法;
5、设计验证过程要贯穿软件生存周期的始终。
(二)规格说明书
在规格说明环节,要根据用户需求输入数据,整理出对应的规格说明书,然后按照一定形式把用户"要求"表达出来,不允许出现二义性。这在软件开发过程中具有十分重要的意义。实践证明,应用结构分析方法对规格说明书进行设计是必要的,其设计步骤如下:
1、以用户活动图为基础,建立数据流程图;
2、设计数据项图。
其中,流程图主要包括数据流名与加工活动名两部分,而数据项图则包括许多名特表。流程图中的所有名字都能够在数据项图中查找到相应的名特表。
(三)软件设计
设计阶段的主要任务是将规格说明书的内容翻译成基本的系统元素--软件、硬件、人、以及各部分间的通讯。这四个基本实体都保存在信息系统中。
软件设计过程中首先要对软件、硬件、人和固件等各个部分的功能信息进行收集,将规格说明书数据输入系统,构造反映用户需求的基本功能,并重复进行下级功能的设计。
根据软件设计开发的特点,除应用系统工程技术以外,还要注意以下几点:
1、为有效控制软件系统的研制复杂性,需要应用一些规范对设计人员形成约束;
2、基于相应规范,明确"什么时间做","怎么做";
3、设计多个方案,明确规定选择标准。
其次,要对软件系统结构进行设计,这是一个层次化模块结构,及程序结构图。
三、数据库设计中的软件工程技术应用
应用软件工程技术对数据库进行设计主要包括如下过程:
(一)可行性分析阶段
该阶段主要针对现有的计算机系统和人工进行分析,从经济、技术、操作可行性等多个方面进行考察,判断系统能否胜任开发的任务。在本阶段,需要撰写可行性报告。
(二)项目开发计划制定
在系统可行的前提下,分析员要着手制定相应的项目开发计划,计划要对系统开发中的人员组成情况、人员分配情况、项目开发进度、项目验收标准和开发关键问题等进行介绍。数据库系统开发过程中的用户界面设计十分重要,一个单板的系统界面无法获得客户的认同,因此,要将界面设计师考虑在内。
(三)需求分析
数据库系统的需求包括对数据的需求分析、对系统功能的需求分析、对系统性能的需求分析、对运行环境的分析及未来可能的升级需求等内容。该阶段需要完成系统设计的需求分析报告。
(四)数据库设计
数据库设计是数据库系统开发中的重要内容,数据库的设计质量会对应用系统的实现效果和效率产生至关重要的影响,而好的数据库结构不仅能够提高数据的存储效率、数据的一致性和完整性,也更加有利于数据库系统程序的实现。
首先以数据需求分析为基础,对数据库的概念结构进行设计,进而实现满足用户需求的各类实体和它们间的关系,并在此基础上绘制系统实体联系图。然后,对数据库的逻辑结构进行设计,把在概念结构设计过程中建立的E-R图转换为数据库管理系统(DBMS)支持的数据模型,并以实体及实体间关系为基础形成数据库中的各个表和表关系。
数据库的物理结构设计包括物理设备的数据存取方法和存取结构设计。通常由两个环节构成,首先是对数据库物理结构进行确定,然后对结构的空间和时间效率进行评价,进而综合考虑数据库的物理结构是否合理。
(五)概要设计和详细设计
总的来说,系统的概要设计需要经历两个阶段,一是确定系统的实施方案,二是设计软件结构,而详细设计则要确定如何实现具体的系统,这部分主要是设计程序框架,而不是编写程序。
四、结语
本文主要根据软件工程技术的开发流程对数据库应用系统的设计进行了讨论。数据库应用系统在设计开发过程中引入软件工程技术能够提高数据库设计的效率,增加数据库的灵活性和可用性,对提高数据库的设计质量具有积极的意义。
参考文献
[1]伍华健,刘力,洪月华.软件工程在软件开发过程中的应用研究[J].玉林师范学院学报.2006(03).
[关键词]软件工程 项目导向 启发式 教学模式
[中图分类号] G642 [文献标识码] A [文章编号] 2095-3437(2015)11-0165-02
一、引言
随着软件工程和物联网技术在各领域的广泛应用,软件工程开发的规模也在日益增大,因此,对软件设计及运行维护人员的工程能力要求越来越高。而在大多数计算机和软件工程专业的课程设置中,对学生的软件设计、开发及运行维护能力的培养往往只体现在软件工程这门课上,如何通过软件工程的教学最大限度地提高学生的实践能力是摆在我们教学中的一个重要课题。鉴于此,我们提出了基于项目导向的启发式软件工程教学模式,以最大潜能的提高学生的学习积极性,增强学生的实践开发能力。[1]
二、目前教学中存在的主要问题
(一)教学内容较抽象,方法单一
目前的软件工程课堂教学主要以教师课堂授课为主,又以理论讲授为主,忽视了学生主观能动性的发挥,大部分学生对软件工程的理解为只要掌握了基本概念、原理,就能达到软件工程课程的要求。单一的课堂授课、枯燥无味的理论加上较抽象的内容无疑影响了实际教学效果。[2]随着软件规模不断扩大以及不断向各领域的渗透,对软件质量保障要求越来越高,这对软件工程课程的教学内容及教学模式提出了新的要求。从教学内容上看,我们既要注重软件设计的基本原理与方法,同时还要注重软件开发的整个过程与软件的质量保证措施。
(二)实践教学环节薄弱
软件工程是一门理论性与实践性比较强的综合性课程,很多软件工程学院只注重理论课程的教学,教学内容比较抽象,学生几乎没有实践的机会;有的学院虽然设有一定比例的实验课程,但课时比较少,几个实验下来,学生也只是能撰写一些相关的文档资料,没有真正体会到软件工程在软件开发中所发挥的作用。
(三)教学中采用的案例缺乏完整性和实用性
部分教师在教学时,由于缺乏实际软件项目的设计、开发及项目管理的经验,导致教学案例的选取偏离学生实际,即使讲授一些例子,由于学生缺少实际开发经验,也很难理解软件开发的全过程。有的教师所选案例要么规模较小,如简单的学生成绩管理系统。在学生看来,不需要完全遵循软件工程的设计过程,如不需按可行性研究等三个时期8个阶段来执行,而是直接进行设计和源代码的编写,学生还不清楚可行性研究和需求分析的目的及意义。这导致学生对软件项目、软件工程没有建立系统完整的概念体系,缺乏对所学知识的整体认识。[5]
三、项目导向的启发式教学模式
针对上述问题,要使软件工程的教学真正能充分调动学生的积极性,改变以往难学、难教的局面,不断提高学生的实践动手能力,有效地改善教学效果,我们必须从教学理念的更新、教学模式的改革等方面着手。由于软件的不可预见性,定义“需要做什么”成为软件开发的根本问题。
项目导向的启发式教学方法是在建构主义学习理论基础上,有别于传统教学的新型教学方法。建构既是对新知识的理解与掌握,同时又包含对原有经验和知识的改造和重组,形成新的综合知识建构。该方法提倡以学生为中心,教师在整个教学过程中起组织者、指导者和促进者的作用。[3]
(一)理论教学
基于项目导向的启发式软件工程教学过程主要包括软件项目的选取、教学内容的选取及教学方法、教学组织,整个过程是教师与学生相互讨论、共同参与的过程。
1.教学内容的选取。项目导向的启发式教学关键是选择好设计开发的项目,所选项目要与所讲授的内容息息相关,教学内容选取要以教学大纲以及人才培养目标为依据,所选教学内容的理论与技术应包括课程的核心知识点,确保理论与实践能紧密结合在一起,同时保证所选案例是可实现的,学生容易理解的,具有一定规模且可操作性比较强的。
软件工程的教学内容主要讲授将软件过程模型、可行性研究、需求分析、软件设计、软件构造、测试以及软件维护等内容,同时融入数据库设计、数据结构设计及网络拓扑结构设计等相关课程知识,按照面向数据流和面向对象两个方向构建组合式的、模块化的教学内容。
在教学的开始阶段选择一些典型的“软件危机”案例作为这门课程的导入,如Ariane5火箭、美国爱国者导弹防御系统曾经应用于海湾战争对抗伊拉克的飞毛腿导弹等,让学生们真正了解软件失败问题症结所在,认识到软件的本质特性造成了软件开发的诸多问题,软件本质上的复杂性使软件产品难以理解,影响软件过程的有序性和软件产品的可靠性,并初步建立规范化的软件开发意识。
在教学过程中,选取1-2个典型的,具有一定规模的案例(如高校教务管理系统)作为典型案例,分别采用传统的结构化设计方法和面向对象的设计方法,分别讲授软件生命周期中的可行性研究、需求分析、总体设计、详细设计、编码实现及测试等核心过程,并着重介绍每个阶段中要重点解决的问题,以及所采用的方法和工具。[4]
2.教学方法的设计。在教学方法上,以培养学生独立思考和创新思维为主要目标,以项目为主体,组织学生以团队的形式参加项目分析、设计、开发和运行,启发式的将抽象的理论知识融入教学实践的讲解中,通过分析、模拟、仿真,引导学生分析项目中所体现的软件工程本质的问题,让学生真正能掌握软件工程的设计思想。[3]
(二)实践教学
在课堂讲授的同时,每个环节我们都配备了相应的实验环节,实验教学与课堂教学保持同步进行,以更好地激发学生的学习兴趣,巩固所学的理论知识,真正掌握软件工程的设计、开发和维护管理的全过程。
软件工程项目实践教学的实施包括项目实践教学方法、项目实践内容和项目实践要求。项目实践进度与课堂教学同步,项目组根据项目需求,制订项目计划,进行分析与设计,进一步熟悉软件开发过程及方法,同时提交规范的软件分析与设计文档。学生在巩固课堂所学的理论知识的基础上,结合实际项目进行实践,使学生的应用能力、合作能力和全局观念等专业素质得到有效提高。[3] [5]
1.学生分组。学生按照项目的分析、设计、编码实现、测试各个角色组成2-3人的开发团队,同时选取一人作为项目负责人,同时明确各自的分工,并协作完成,以培养学生的团队合作精神、沟通能力和协调管理等能力。
2.项目设计。各小组首先应选择一个比较了解且具有一定规模的实际MIS管理系统,便于学生进行现场调研,获取准确而可靠的需求,也可参与到教师的科研项目中,然后严格按照软件工程的设计思想、软件过程的规范,独立完成项目的可行性分析、需求分析、设计、实现与测试。各小组在每个阶段结束后应提交相应的设计文档,教师对其进行检查并在全班讨论交流,对检查中发现的问题和不足,要进行改进和完善,然后进入下一个阶段的设计,直至最终提交产品,完成各阶段的任务。
3.模拟演示。在项目结束后组织答辩与演示,首先由小组长对项目的功能及基本情况作一个简要讲解,并介绍其本人在项目中所做的工作。然后让每个同学说明在整个项目开发过程中自己所完成的任务,并进行演示。教师在其间可以针对每个同学在项目中实际负责的部分进行提问,现场进行评分并计入期末总成绩,最后项目组提交系统和设计的总体报告。[5]
四、结束语
基于项目导向的启发式软件工程教学模式提高了学生的主动性和积极性,采用理论与实践相结合、案例讲解、项目实践并重的教学模式能真正让学生理解掌握基本理论。同时,学生又经历了软件开发的全过程,锻炼了学生对MIS管理系统的分析设计能力、编程测试能力和软件维护的能力,真正做到了学以致用,有效解决了以往软件工程教学中存在的理论与实践严重脱节、学生学习兴趣不高等教学难题,取得了较好的教学效果。
[ 注 释 ]
[1] 郁书好,苏守宝,刘正余,等.基于项目驱动的软件工程教学模式研究[J].皖西学院学报,2009(10).
[2] Jacob Sukhodolsky.Teaching So ftwar e Eng ineeringTo Under gr aduates[C].Pro ceeding s of the 2003 Int ernationalCo nfer ence o n Informat ion Sy st ems and Eng ineer ing,Montreal,Quebec,Canada pp.165-173,2003.
[3] 秦放等.案例驱动与项目导向结合的软件工程课程教学模式[J].计算机教育,2013(5).
关键词:软件工程方法;医疗;软件开发
随着我国社会经济的逐渐发展,科学技术的不断进步促进生产力提高,各行各业都开始应用先进技术。在医疗系统,近年来在高新技术的运用下,已广泛部署了医院信息系统(HIS),其中包括病理信息系统(PIS)、影响归档和通信系统(PACS)等一系列信息系统与信息技术平台。这些新平台的运用极大提高了医院的工作效率,简化了医院的办事流程。研究现代软件工程方法在医疗软件中的应用,对于今后及相当长的一段时间内医疗软件的发展具有重要的理论和现实意义。
1现代软件工程特点
现代软件工程是当前科学技术在软件领域的一个重要运用。它依托于计算机技术为主的硬件和互联网为载体的软件,在软件开发方面实现了系统化、规范化和可定量化。而在医疗系统方面的运用,主要体现在较为广泛运用的医院信息系统(HospitalInformationSystem,HIS)。HIS与传统医疗软件工程相比,具有显而易见的特点,其具有包括适用性、有效性、可修改性、可靠性、可理解性、可移植性等一系列重要特性。HIS的这些特点保证了其在医疗相关行业及系统中的有效合理运用,HIS是目前运用较为广泛的医院信息系统。
2医疗软件工程方法
相当于企业生命周期的理论,软件生命周期在软件工程思想中也是一个非常重要的概念。它指的是软件工程开始开发到报废的全部过程,这一系列过程中包含了项目的各个不同的阶段。包括可行性研究、项目开发、需求分析、概要设计、详细设计、编码、测试和维护这7个阶段,通过了解这些不同的阶段,对于整个软件工程就有了更加详细的了解。同时为了更好地了解软件生命周期的活动,又提出了瀑布模型、循环模型、演化模型等一系列模型,瀑布模型是当前较为广泛采用的一种模型,它通过对于每个阶段不同的循环反馈,来对开发过程中出现的各个阶段的循环实现动态反馈,最终开发出满足医疗业务需求的软件系统。
3案例分析
3.1医院PIS开发案例
PIS全称是PathologyInformationSystem,译为病理信息系统,是将病理报告分析流程纳入医院统一信息化平台中的一个一体化信息系统,在该系统中可以将病理报告分析流程纳入医院统一信息化平台中,规范病理检查工作流程,并对数据进行统计与分析的一个综合病理信息系统,具有综合性和系统性。PIS在某市医院中具体应有的案例情况如下,该项目于2010年正式启动,经过两次开发,在2012年却宣告失败和破产。该项目开发中,合作的软件公司宣称具有相对成熟的PIS产品,该公司派出了一名工程师到医院进行开发和部署,工程师与医院相关技术部门人员进行交流后,根据提出的相关意见对软件进行修改,然后将修改后的软件放到病理科试用,然后让试用人员提出相应的修改意见。病理科工作人员在实际应用的过程中发现,对软件的实际期望值与理想值存在较大的落差,对于软件的使用非常不满意。后续软件公司和医院相关人员本着达成共识的想法,召开了协调会,随后又根据医院工作人员的要求对软件进行了数次修改,但始终无法达成共识,不得不以软件开发失败告终。从这个案例可以看出,这次软件开发的失败不仅仅是软件公司一方造成的,双方都有责任。这个案例也给了我们启发,在软件开发的过程中,要统一安排和规划,要明确人员职责分工,在开发者与使用者之间要建立良好的沟通机制,同时对于开发的工作量,要进行定量和定性的分析,并得出综合性的结果。这些都需要我们在开发软件时参考和借鉴。
3.2医院监护系统开发案例
在经历了PIS项目开发失败之后,总结经验,在后续的医院监护系统开发过程中要求严格遵循软件工程开发的思想。在开发之前,首先对系统进行了可行性分析,分析了医院监护系统开发的优势、劣势,并且提出了在开发过程中可能会遇到的一些问题,给予重点关注。随后,对于用户的需求进行了详细的论证和充分的调研,通过数据处理、调研问卷和访谈的形式,充分了解用户需求。随后,对于要开发的软件系统进行了功能模块需求分析,根据各模块对不同用途的开发者进行划分,然后在统一的大框架、格式和规范中进行功能模块开发和结构开发,确保了各功能模块结构清晰和完整统一。随后,在软件开发的测试阶段,严格根据现实中各种数据需求,按照现实标准采集大样本的数据,以保证测试结果真实可靠,能够对软件的后续改进提供可操作和可实施的建议。在这样的严格要求下,该软件的开发取得了成功,并且在医院临床上得到了推广,且得到了一致好评。
3.3对比分析
通过前面两个案例对比分析,可以总结参考性的建议。首先,开发前进行充分的需求论证和分析是必须的,这对后续软件开发的目标和导向提供了较为详细的参考和建议。其次,在充分调研的基础上,还要系统了解临床用户的需求,只有充分了解用户的需求才能明白软件的开发和研究方向。在软件的具体开发过程中,要严格按照计划进行,成立项目组,需要医院相关工作人员参与,他们对于软件应有丰富的了解和切身的体验。最后,在开发过程中应注意与使用者的沟通,建立良好的沟通机制,使用者在试用软件过程中遇到问题随时与软件开发者进行沟通,很多情况下,用户能够发现开发和测试人员没有考虑到或者测试出的不合理流程或操作,通过反馈问题进一步优化程序。
4结语
在医疗软件开发中,运用现代软件工程方法,借助于现代高新技术,能够针对医院临床需求开发出适用的信息系统,保证医院临床业务和管理工作的流程和具体化。软件工程的初衷和目的是提高临床工作效率,在这个思想下,才能保证大型软件系统的开发获得成功。
参考文献
[1]田柯,耿仁文,林凯程.院内会诊存在的问题及对策分析[J].现代医院,2011,2(11):110-111.
关键词:软件工程;教学方法;阶段教学法
中图分类号:G642文献标识码:A
“软件工程”是软件工程专业的重要专业课程,也是计算机科学与技术、计算机应用等相关专业的一门专业必修课,是指导计算机软件开发与维护的一门综合性课程。它包括方法、工具和过程三要素,以质量保证为基础,涵盖了软件生存周期的所有阶段,包括计划、分析、设计、实现、测试、集成、交付、维护等。学生通过学习,能够系统全面地掌握软件开发的基本原理、方法、技术和过程,为更深入地学习和从事软件工程事业打下基础。
1研究现状
“软件工程”不同于一般的专业课程,它为摆脱软件危机而生,为适应软件行业的发展而生,是理论课,更是一门实践课。采用传统教学方法,这门课的教学效果往往不是很理想,教师觉得这门课教起来较困难,多数学生也觉得枯燥无味,很难达到较好的教学效果。因此,很多教师对软件工程的教与学进行研究,文献[1~5]提出一些可行的教学模式,主要有以下几种:
(1) 启发式教学:在教学过程中,以学生自主学习和合作讨论为前提,以教材为基础,在教师的启发下,学生自由表达观点、置疑探究问题,并通过个人、小组、集体等多种形式的解难释疑活动,用所学知识解决实际问题的教学模式。
(2) 能力驱动教学:教学工作的展开以提高学生能力为主要目的,以学科知识的进化、应用能力的强化和人才素质的优化为基础,培养强内力人才的教学模式。
(3) 项目驱动教学:教学之初,请具有丰富软件工程实践的项目人员与教师共同制定2~3个中型软件项目工程,规模适中。制定项目工程时遵从实用性原则,并且密切联系日常的工作学习实践。
(4) 情景法教学:学习者进行学习必须依据个人的学习目标主动操作探究,能主动与环境进行互动协调,以建构所需的知识。教师必须在情境脉络中帮助学生发现与选取问题,调动学生的学习动机,最终引导学生自己解决问题。
(5) 案例法教学:向学习者提供案例研究的学习环境,包括从实际案例中选取资料。让学习者以调查员的身份去了解案情,通过对资料的收集、分析、决策,最终对问题予以解决,得到可行的结论。
这些方法都能在一定程度上帮助学生提高学习效果,但是也存在一定缺陷,如启发式教学缺乏对实际项目中出现的多种问题进行分析,项目驱动教学难以把握项目大小,案例法教学缺乏学生自主参与等,不能让学生全面感受软件开发的全过程,不利于学生认识各个阶段出现的问题。在充分研究“软件工程”教学内容及实际应用的基础上,我们提出了阶段教学法,即根据软件开发各个阶段的不同特点采取不同的教学方法。
2阶段教学法
2.1阶段教学法教学模式
阶段教学法的培养目标是:建立将软件开发作为一个生产过程的概念,掌握软件工程的需求分析、系统设计和实现、软件测试等专门的工程技术方法,了解软件产品管理、项目管理、质量管理、过程控制等基本过程,感受作为一个开发者同时也是过程控制和管理者所必须注意的各个环节要点。具体措施是:理论与实践两手抓,两手都要硬。一方面强调理论学习的重要性,理论学习是指导实践的基础;另一方面强调实践的重要性,只有通过实践活动才能掌握软件工程的精髓。
由于大部分学生第一次接触软件工程,第一次开发软件,采取开发阶段清晰,易于评审、跟踪、管理和控制的瀑布模型容易让学生了解和掌握软件开发的整个过程。但传统的瀑布模型可维护性差,需要对瀑布模型进行改进,即采取变形的瀑布模型――“V”字模型,并在每一个阶段都加入测试,以便及时改正错误(图1)。在可行性分析及需求分析阶段采取情景法教学,根据学生的项目选择情况,在学生完成项目调查分析的基础上,小组内部模拟客户与开发人员进行交流、讨论。在系统设计阶段采取启发式教学,以一个典型的系统作为切入点,具体分析如何根据需求分析进行系统设计,然后让学生充分消化、吸收,启发他们设计出自己的系统。在详细设计及编码调试阶段采取项目驱动教学,让学生根据系统设计阶段的模块划分选取最优的设计,然后设计模块内部结构,并用某种编程语言实现。测试阶段主要采取案例法教学和启发式教学在单元测试阶段,检测代码的开发是否符合详细设计的要求,并改正详细设计阶段出现的问题;在集成测试阶段,
检测此前测试过的各组成部分是否能完好地结合到一起,并改正系统设计阶段的不足;在系统测试阶段,检测已集成在一起的产品是否符合系统规格说明书的要求,并修正需求分析的错误;在验收测试阶段,检测产品是否符合最终用户的需求,并添加用户新增的功能、改正错误的功能;在试运行及维护期间,及时完善系统功能,提高系统性能,再次检查各阶段的错误和不足,并加以修改,直至满足用户要求。
2.2阶段教学法的实施
阶段教学法在实施过程中,必须做好以下工作:
(1) 教师要做好统筹规划。“软件工程”对教师的要求较高,教师不仅要讲授理论知识,而且要把握教学进度,根据每一阶段采取不同的教学方法,并充分准备各阶段教学的相关资料。教师应该在讲授软件工程相关知识点的同时,花更多的精力和时间,教会学生如何理解和把握软件开发过程,对教学内容、形式和考核方法进行综合设计。根据学生的学习阶段,科学地安排相应领域知识点的出现顺序,使学生在课堂教学和项目实践的适当环节上恰到好处地体会和获得相应的知识,并取得自身真实的感受和经验。这就要求教师不仅要有一定的软件开发经验,而且要具备一定的项目和工程背景。这样授课才能切合实际,更好地运用阶段教学法。
(2) 搜集学生感兴趣的项目,并进行筛选。很多学生选择的题目缺乏可操作性、趣味性和适当的难度。这些题目没有经过详细的可行性分析和需求分析,不能保证完成实验。因此教师必须对学生自选项目进行筛选,也可以由教师给出一些综合实验项目。
(3) 制定项目完成的标准。目前,项目是否成功完成主要参考需求说明书和最后运行情况,但需求说明书又因系统难易程度和学生的主观因素存在很大差别,因此,如何评判题目的完成情况,不能采用统一的标准,要根据学生选择的项目分别对待。
(4) 及早布置课程项目。理论学习和课程项目相结合,随着课程进展布置任务。学生自愿结合,3~5人组成一个项目小组,教师指导他们进行分工合作,学习软件开发组织和管理,明确项目开发各阶段的任务,熟悉软件开发环境,培养团队精神。通过调查研究、可行性研究、需求分析、概要设计、详细设计、编码、测试、维护(版本升级)及技术文档的编写,共同完成该项目的设计及实现。在课程项目开发过程中,要引导学生提高完成实验的积极性,激发学生进一步钻研的斗志;鼓励学生进行自主学习,如撰写小论文和专题报告,让学生跟踪该领域的最新动态。
(5) 项目开发过程中,教师扮演“用户”和“项目顾问”的角色,学生则是各项目组的“开发人员”,而开发小组的组长则要模拟“项目经理”的角色,进行交流讨论。
(6) 课程项目成绩评定。项目完成后,每位同学要进行答辩。每一个小组指派一个同学,对设计的项目进行答辩,其他同学可以补充。教师的主要任务是检查,一方面检查小组的完成情况,一方面检查每一位同学的工作。由教师和其他小组进行评分,取平均分得到小组成绩,小组长根据工作量给出组员的个人成绩。综合小组成绩和个人成绩,得出学生的最终实验成绩。
阶段教学法为学生提供了发现问题、分析问题、解决问题的空间,既强调了软件工程的基础知识,也注重培养学生的分析设计及实践能力,同时调动学生的积极性、创造性。在半年的学习期间,学生夜以继日地工作,加深了对软件工程化含义的理解;在设计过程中,能自觉运用标准化、规范化和可度量的原则;在小组的交流合作中,加强了团队精神,锻炼了沟通与动手能力。
2.3进一步实施的设想
阶段教学法在实施过程中也出现了一些问题,通过对问题的分析研究,提出下一步教学的设想:
(1) 更新教育观念:加强先进教育理论研究,分析企业对软件人才的需求。根据企业需求,不断更新教育观念,努力使教学模式、教学方法与国际接轨,科学地建立面向市场的开放式软件工程人才培养模式。
(2) 加强教材建设:教材是教学内容的载体。相对基础学科,计算机领域发展非常迅速。教材也需要紧跟时代的发展,不断更新。因此必须把教材建设纳入“软件工程”教学改革的研究范畴。
(3) 学习资源建设:充分利用网络资源,建立软件工程资源网站,调动师生力量,力争把最优秀、最全面、最新颖的软件学习资源与师生共同分享。一方面完成与其他软件工程相关网站的搭建,学习他人经验;一方面鼓励师生进行作品原创,供他人学习、借鉴。
(4) 校企联合:加强学校与国内外产业界的交流与合作,完善以工程实践为核心的“边学习、边实践―再学习、再实践”螺旋式新型工程型人才培养流程,实现校企双赢。
(5) 组织软件工程相关讲座。邀请有项目开发、管理经验的教师或科研人员做软件工程相关方面的讲座,介绍他们在软件开发、管理过程中的经验与体会,对软件工程的发展趋势、最新动态等进行指导。
3小结
在“软件工程”教学中采用阶段教学法,必须把握好教学进度,并及早安排好课程设计,让学生在学习理论的同时开展课程设计。这样,当理论课讲完时,课程设计也基本结束,学生才能从理论和实践的结合上加深对软件工程知识难点、重点的理解,进一步深刻理解软件过程和系统,消化理论知识,训练项目设计的思路,锻炼实际开发能力,培养严格规范的项目开发方法和步骤,体验文档编写整理、阶段性评审总结以及软件测试等各个方面的工作流程,更好地理解、掌握知识,运用所学,服务社会。
参考文献:
[1] 林惠强,刘财兴,林丕源.“软件工程”课程启发式教学的研究与实践[J]. 计算机教育,2008(11):40-42.
[2] 夏小娜,曹宝香. 《软件工程》教学的“三段论”定位与“能力驱动”[J]. 现代教育技术,2007,17(8):109-111.
[3] 戚世贵,徐尽,张泊平. 软件工程的项目工程实践驱动教学改革[J]. 时代教育,2008(3):86.
[4] 黄萍. 情景法在《软件工程》教学中的应用[J]. 现代计算机,2007(6):52-53.
[5] 殷美桂. 案例教学法在软件工程教学中的应用[J]. 福建电脑,2008(5):201.
Research on Teaching Method in Software Engineering
GE Wen-geng
(Huanghuai University, Zhumadian 463000, China)
【关键词】 信息系统 工程项目 可行性
前言:在工程项目中,信息系统地位斐然,作为高科技的产物,发展意义重大。因此,工程企业的管理者应该提升对信息系统建设的重视程度,以提高工程项目建设效率,使工程项目管理统一、有序。要重视信息系统平台的搭建工作,与此同时不断提高企业工作人员在信息化方面的管理水平。
一、信息系统工程项目的内涵
1.1主要任务
信息系统在工程项目中的主要任务包括以下三项:1、采集整理并且编辑审修工程项目中的大量资料信息,完善工程项目信息。2、对工程项目中的各项信息与数据进行维护,使工程信息准确、可靠、安全。3、为定期总结信息、评价工程起到便利作用,使工程项目得以正常运转。
1.2基本结构
在比较大型的工程项目中,按属性可以将信息类型划分为工程造价类型、图文信息类型、无聊信息类型、项目进度信息类型、质量管理信息类型、决策信息类型以及合同管理信息类型等,由信息分类可见工程项目中的信息量非常庞大,同时信息之间存在特别复杂的联系。因此如果在工程项目中应用信息系统,则应该对各不同类型信息分别架构子系统,与此同时使一些接口适当开放,从而方便子系统之间交互信息,使管理难度极大降低[1]。
二、信息系统工程项目的意义
在大型的工程项目中,信息系统地位卓著。主要有两方面原因奠定了其地位基础。其中一个原因是当前全球的自由贸易格局在持续发展成熟中,在大型工程项目中,其物资采购和相关劳务都开始面向全球发展,因而需要现代先进的信息管理系统来支撑项目稳定发展。另外一个原因是在工程项目中应用信息系统可以使企业的形象正面提升,有效强化企业的市场竞争力,使企业得以长远发展。所以,在企业的大型工程项目中,信息系统作用重大,占据核心地位。
三、信息系统工程项目的可行性分析
3.1从技术角度可行
现代科学技术高度发展,其中一些高科技产物的发展为信息系统在工程项目中的应用打下了坚实基础,此类高科技产物包括:计算机技术、硬件设施、自动化技术以及网络技术。
首先,网络架构层面可行性。由于计算机技术与网络应用技术在长期发展下已经日趋成熟,因而在工程项目中,有条件依据不同项目要求进行不同的网络架构工作。由于可以使用多种入网手段、采取不同种的网络管理方式,工程项目能够实现更方便快捷的终端接入手段,也能够更好的进行数据管理工作以及执行远程维护、远程监控功能,使工程管理高效有序进行[2]。
其次,数据库技术层面可行性。工程项目中的庞大信息数据可以采用数据库技术进行管理,很多大型的数据库管理软件都可以对大量数据进行系统、全面的管理。
再次,数据访问层面可行性。信息系统可以为工程项目提供各式各样的接口来访问数据,并且可以根据用户的属性设定管理权限,使系统效率获得了极大提升,同时也使系统的安全性得到了保证。
3.2从经济角度可行
在工程项目中应用信息系统,可以使管理部门的工作水平得到提高,工作人员的效率也得到了有效保障,使工作过程中由于人为因素引起的差错率得到降低。信息系统在工程项目中的应用使工程信息的传递更加便捷高效,从而使企业的信息传递成本得到降低,也同时加快了企业的运转速度,给企业带来更可观的经济效益。
3.3从安全角度可行
信息系统的数据存储与管理模式是统一的,其针对不同工作职责的工作人员会分配各自相应的信息访问权限,使信息保密工作得到有效开展,而传统信息管理工作则无法做到此点。而且,因为信息系统具备完善的信息安全管理技术,可以有效保C数据的安全可靠[3]。
四、结束语
总而言之,信息技术是一种先进的生产力,在工程项目中应用信息系统,是一种科学的现代管理理念,可以极大地促进企业发展,使其实现现代化管理目标,同时大大提高其竞争水平。因此,企业管理者一定要重视在工程项目中应用信息系统,同时不断提高企业工作人员在信息化方面的管理水平,以使工程项目的建设效率得以提升,工程项目管理能够统一、有序进行,为企业带来更多的经济效益。
参 考 文 献
[1]刘昊D,胡斌,张伟.工程项目管理信息系统质量控制现状[J].电子技术与软件工程,2015,12(05):230.
随着计算机技术的不断发展进步,网络在线学习和考试必然在未来的教育过程中扮演重要角色,教育工作者应该不断探索怎样利用计算机技术和网络技术替代传统的学习模式。作为一个新兴的技术,网络在线考试正不断应用到各个教育领域,此举大大节约了考试的成本。本文主要研究分析了网络在线培训考试的意义背景,发展状况,可行性分析以及目标和构思。
【关键词】在线考试系统 远程调用
计算机技术及网络技术已经在当今社会的各个领域得到广泛的应用,不断推动着经济的巨大发展,利用计算机来完善及辅助教育系统,促进教育的不断进步也必将是现在和将来教育领域的发展趋势,教育工作者需要探索的一个新方向就是怎样运用先进的计算机技术来改变传统的教育系统,伴随着计算机的普及以及人们对于计算机的认识和使用能力的提高,网络在线考试系统已经越来越多的应用到社会各个行业。
1 在线考试系统的背景及意义
随着现代信息技术和通讯手段的不断发展和更新,利用互联网进行信息传递使人们的生活变得更加简单快捷、在此背景下,传统的文化教育模式受到了以数字化及网络化为代表的先进信息技术的冲击,这务必会对传统教育的教学方式,教学手段,教学内容面带来较大的影响和变革。在信息技术日新月异的今天,如何利用现代的高效便捷的网络技术进行教育是广大教育工作者需要思考的问题。
目前很多高等院校都致力于打造数字化校园,数字化校园就是运用计算机技术,网络通信技术,把学校的生活管理服务和教学等所有资源全面数字化,并且对这些资源进行科学规范的整理,打造资源管理和用户管理的统一化,运用业务流程和组织再造,不断推动学校的制度,管理创新,以达到实现教育决策规范化,教育信息化,管理规范化的目的。
网络在线考试系统就是在这样的背景下产生的,相比以往传统的考试模式而言,具有考试方式灵活多的特点,同时系统也能够自动化评阅试卷、打分和进行试卷分析,大大节约了人力,财力和时间成本,
2 在线考试系统发展状况
考试按照历史的发展可以分为以下几个阶段:
(1)笔试阶段,这是计算机数量少但参加考试人数多的一种考试,它的优点是便于组织,不足之处是考试内容缺乏实践能力的考察,浪费大量纸张,同时无法对学生进行全面考察。
(2)应用软盘的上机考试,这是网络技术相对落后但计算机已经得到普及时的一种考试形式,它可以把考试内容和学生的实践能力结合起来,考察学生的动手实践能力,但软盘可能出现读写缓慢或无法读写的情况,影响学生的发挥,并且可能出现考生互换软盘的作弊现象。
(3)应用网络的上机考试,它已经成为了目前计算机考试的主要模式,考试效率高,节约考试成本,但对于网络环境有很高的要求。
现今,B/S和C/S是在线考试的两种主要形式。B/S考试必须安装Web浏览器,用Web的浏览器和服务器进行考试;C/S是在局域网内有一台充当服务器的计算机,且必须装有客户端软件,考生登录客户端进行考试,考试结果自动上传客户端。
3 在线考试系统的可行性分析
3.1 开发网络在线考试系统的必要性
(1)减少人力和物力的花费。相比传统的考试模式,运用网络考试不需要进行试卷的印刷,省去了印刷费用,同时也节约了这部分的人力开支,并且计算机可以进行自动阅卷,分析试卷,省去了老师大量的时间和精力。
(2)充分共享运用现有的资源。在传统教育系统下,老师只能够自己出题,或一起讨论研究试题样卷,利用网络技术,来自不同地方的教师就无须见面就能够共同构建题库,并且相互之间可以分享经验及资源。
(3)电脑自动化组合试卷 灵活便捷。以往的考试,是老师提前出题然后打印,考试题目单一,固定,并且无法兼顾到各个层次水平的学生,利用无纸化考试系统,就可以设置多种组卷方式,保证兼顾各个知识点,同时每个学生抽到的考题不同,也可以减少作弊等现象的发生。
(4)计算机辅助 杜绝人为错误。传统考试的出卷,分卷,阅卷都是由人工来完成的,会产生很多不必要的人为错误,而在在线考试系统中,计算机从头到尾进行控制,高效准确,节省人力,学生甚至可以当场知道自己的考试成绩。
3.2 开发网络在线考试系统的现实性
(1)现有条件的满足性。当前,不仅高校甚至各个中小学都打造了自己的校园网络,各个学校都不断改革自己的教学手段,观念,方式及内容,重视自己的教学质量和师资力量,这些都为网上考试系统的开发提供了基础及支持。随着社会经济的发展,计算机已经普及到各家各户,大家都能够比较完全的了解计算机的应用,同时网络考试系统的界面简单易操作,这些都说明我们具备充足的条件利用计算机进行考试。
(2)编程技术具有可行性。由于编程工具的不断发展和编程技术的不断发展,使得技术开发人员能够迅速的掌握开发技巧,为网络考试系统的开发提供可能。
(3)经济上的可行性。网络考试极大地缩减了人力物力时间成本,世界各地的老师只需要一台计算机或有互联网连接的考试系统平台,就能够轻松的组织各自的考试,它无需印刷试卷,教师出题,分配考场,统计成绩等等,节约了大量的资本。只是对计算机的数量有一定要求,但是当今社会经济的发展使得各大学校和个人都有足够的能力去支付所需设备,不需要为它去专门花销,因此它可以大大节约成本,产生社会经济效应。
4 在线考试系统的发展目标和发展思路
网络考试系统的目标与构思主要表现为:
(1)协助教师打造个人专属的题库及试卷库。
(2)帮助学生利用网络在线完成各个课程所需的考试。
(3)利用网络系统老师和不同部门之间能够分享工作经验,协作彼此工作。
5 结束语
网络在线考试管理系统,在今后的各个领域都将会得到广泛的运用,它是突破传统考试模式的一种新型考试方式,可以极大的节约人力物力以及时间成本,符合今后的发展趋势,具有很广阔的发展前景。
参考文献
[1]鲁立.网络考试系统的关键技术的分析[J].信息技术与课程整合,2012(03).
[2]傅宇.基于网络考试系统的研究[J].现代教育技术,2013(09).
作者简介
袁晓曦(1982-),女,湖北省武汉市人。研究生学历。现为武汉软件工程职业学院讲师。主要研究方向为人工智能及其应用。