软件工程导论(整理2篇)
来源:
软件工程导论范文篇1
关键词:软件工程导论;双语教学;教学计划
中图分类号:G642文献标识码:B
1教学目标和定位
软件工程导论是计算机科学与技术专业本科生的一门专业基础课,是一门导论性课程。其任务是介绍软件开发的过程、方法和工具,使学生初步掌握需求分析、软件设计、软件测试的工程化方法,为学生将来从事软件开发打下一定基础,并为后续“面向对象软件工程”课程进行必要的知识准备。课程的总体目标是使学生掌握软件工程的理念和软件开发的方法学,了解软件进化过程,通过实践性教学环节培养学生的软件开发能力、工程素质和协作交流能力,培养学生提高软件产品质量、降低软件开发和维护成本、按计划交付软件产品的意识,培养学生的职业道德和团队精神。
在该双语课程开设之前,软件工程课程已于2005年被评为国家精品课程。我们在软件工程系列课程的教材建设、知识点的持续更新、教学实践、教学方法和手段的改进等方面进行了积极和富有成效的改革,取得了一系列的教学成果。我们注意到,与其他课程相比较,软件工程导论课程具有以下几个方面的特点:(1)内容抽象,软件是一个逻辑产品,软件开发是一个逻辑思维的过程,软件工程导论课程的教学内容包含了大量指导软件开发的高层思想、方法和原则,这些知识点是对大量软件工程实践经验的总结。(2)注重实践,软件工程导论课程非常强调工程实践,帮助学生运用所学的知识来进行工程化的软件开发,从而积累软件工程的实践经验。(3)对英语运用和表述提出更多和更高的要求,包括文献的阅读、需求的分析和描述、软件建模、文档撰写等等。因此,在该课程的双语教学过程中如何深入浅出地向学生讲授抽象的知识、如何加强实践环节的建设、如何加强和提高学生的英语综合运用能力就成为该双语课程教学的关键。
为此,在软件工程导论双语课程建设和教学过程中,我们针对软件工程课程的特点,设计科学和合理的双语课程教学大纲和计划,研究适合该双语课程的教学方式和手段,努力提高学生综合运用英语的能力,为软件工程系列的后续课程以及其他双语课程的教学奠定良好的基础,并期望达到以下目标。
(1)课程教学与人才培养逐步与国际接轨
西方发达国家和我国都在大力发展软件产业,因此在人才培养阶段如何加强学生的软件工程素养十分重要。针对国家的这一需求,本双语课程旨在探索和研究与国际软件工程教育相接轨的课程教学和人才培养模式,使得所培养的学生在软件工程的知识、能力和实践等方面逐步向国际先进水平靠齐。
(2)适应专业特点,加强学生英语语言环境的熏陶
软件工程是计算机科学与技术领域的一个重要方向,一直以来研究活跃,不断有新的概念、方法和工具出现,课程的知识体系更新非常快。特别是,绝大部分最近的研究进展和成果都是以英文方式出现在各类会议和期刊上。因此,学科专业的这一性质决定了软件工程课程尤其需要开展双语教学,该专业方向的学生必须经常性地在英文的语言环境中接受教育。因此,通过本双语课程的教学,希望培养学生逐步适应在英语语言环境中接受知识传授,具备利用英语工具获得知识的能力。
(3)促进学生多方面能力的培养
通过本双语课程的教学,促进学生多方面能力的培养,尤其是利用英语进行各种形式交流的能力,包括英文教材和文献的阅读能力、撰写英文学术和文档资料的能力、通过英文进行口头表述的能力。这些能力都是培养创新性人才所必须的,也是作为一名合格的软件工程师应具备的基本要求。
2教学理念
(1)循序渐进
本课程为大一学生开设,针对他们的英语实际水平,在课程教学中采用循序渐进的方式。比如,在课程教学中逐步加大英语在课程教学中的授课比重,首先要让学生能够听懂所讲授的知识内容,不要让他们对英语教学感到畏惧;然后逐步培养他们利用英语来进行学习和交流的兴趣,在此基础上积极鼓励他们利用英语来获得知识和进行交流。
(2)求真务实
注重实际和成效,不追求形式。对于一些有难度的项目(软件工程技术文档的撰写和课堂报告),我们鼓励学生用英文来表述,但是不强求。对关键性的概念和术语,适时做出中文的补充说明,并在课前提供课程术语中英文对照表,以便让学生掌握与本课程有关的关键英文术语。
(3)注重能力
我们认为大学课程教学不仅仅要给学生传授知识,更要关注学生多方面能力(包括学术交流、获取文献、讨论和报告、撰写文献等等)的培养,从而为其参与工程实践和科学研究奠定基础。为此,本课程将强调通过双语课程教学培养学生以下几个方面的能力:利用英语获取知识的能力、文档和报告撰写能力、交流能力等。
(4)强化实践
加强案例分析和课程实践。软件工程导论课程的特点之一是工程实践性非常强,为此课程通过多种方式强化实践环节。比如,将具体和详尽的案例分析作为课程教学的重要内容之一,按照软件工程实践要求布置学生进行课程实习,撰写规范化的工程实践文档,加强工程实践在整个课程考核中的比重等等。此外,在课程教学中还安排诸多的实践机会来加强学生运用英语实践的能力,包括软件工程技术文档的撰写、课堂报告、网络教学平台的在线交流。
3教学方法
(1)激发兴趣
我们深信,兴趣是最好的老师,表扬是激发学生学习兴趣的最好手段。通过对教学内容的精心组织,突出各知识点之间的逻辑关联,强调软件工程知识体系的系统性;通过梳理软件工程的历史发展脉络、揭示隐藏在知识点背后的思想深度、鼓励老师和学生共享个性化的经验等措施,激励学生主动探索、积极实践的学习热情,支持和激励学生利用英语来撰写软件工程开发文档、在课堂上汇报其课程实习内容以及在网络教学平台进行在线交互,激发学生利用英语获得知识和信息。
(2)案例教学
挖掘、整理了若干工程案例,结合案例开展教学,将软件项目案例贯穿整个讲授过程,案例的规模由小及大,并要求学生与课堂案例同步地推进各自的练习案例;加速培养了学生在大型软件开发、软件工程管理等方面的能力,颇具特色和创新。此外,在教学网站上提供丰富多彩的案例库、规范化的软件工程文档标准和模板,供学生研究、借鉴。
(3)互动教学
老师、助教与学生通过网络进行交流、沟通,包括网上答疑,网上作业提交、作业批改,BBS讨论区,通过网络对学生进行个性化辅导,及时与学生交互。学生不仅要提交课程实习文档,而且还要在课堂上报告其课程实践和实习成果以及体会,老师和学生一起对其实习成果进行评论和分析,从而对学生的课程实践有所反馈,让学生知道哪些方面是做的好的、需要发扬,哪些方面做的不好、需要改进和提高。
(4)实践教学
精心设计、精心组织实践教学环节,紧跟软件工程领域的最新发展,适应信息化时代教育手段变革的要求,不断更新实验设计,确保软件工程的观念、技术和方法在学生的实践过程中得到应用并积累经验、体会,逐步提升学生的软件工程素质和能力。在课程教学中,我们要求学生以小组方式选择一个应用,并遵循软件工程的方法,对该应用进行需求分析和软件设计,撰写规范化的软件工程文档,并要求他们在课堂上报告其课程实习成果。课程还鼓励学生利用英文来撰写文档、在课堂上尝试用英语做报告、在课后用英语进行在线交互,为他们运用和实践英语创造机会。除专业知识与实践技能的培养外,还积极引导和培养学生的决策能力、分析能力、团队合作能力和人际交流能力等。课程实习中,不但强调实践的结果,更注重实践的过程,实习全程都有辅导教师按照软件工程的阶段进行跟踪。
4双语教学的实施
(1)教材
目前,我们使用的是由Pressman编写的软件工程教材最新版本(第六版,英文):RogerS.Pressman,softwareengineeringCApractitioner’sapproach,sixthedition(English),TsinghuaUniversityPress,2006。该教材在国际软件工程界产生了巨大和深远的影响,树立了它在软件工程课程教学中无可置疑的权威,在全球近千所大学中广泛使用,是软件工程课程教学最具影响力的教材。该书从1982年的第一版开始,就受到我国软件工程界的重视,成为高等教育计算机专业软件工程课程的重要教材和教学参考书。
(2)教学计划
该课程共有24学时,其教学内容的选择和课时安排如下表。除了正常的知识讲授之外,我们在课程教学过程中还安排了2个学时的案例分析和示范,4个学时的课程实践报告和分析。案例分析和示范主要通过一个较为完整的案例分析和文档演示,向学生介绍如何进行软件的分析、建模和设计,并形成规范化的软件开发文档。课程实践报告和分析主要选择性的请一些学生介绍他们课程实践的情况和结果,并进行分析和评价,以帮助学生知道哪些实践和结果是可取的,哪些需要改进和提高。
(3)英语实践
在双语课程教学过程中,我们通过多个环节来加强学生的英语实践。首先,要求学生阅读英文教材来提高英语的阅读能力和水平,掌握与该课程相关的关键术语。其次,在课程实践中鼓励(不强求)学生利用英语来撰写规范化的软件文档,从而来训练和培养学生的英文书面表述能力;第三,在课程实践报告和分析中鼓励(不强求)学生运用英文来介绍其实践文档和结果,而来训练和培养学生的英文口头表达能力。
(4)课程考核
课程考核分为二个部分:闭卷考试和课程实践,各占50分。闭卷考试要求学生用英文答题。课程实践分为二个实验,需求分析和软件设计,要求学生根据所选择的应用,对其进行需求分析,建立需求模型,用中文或者英文撰写软件需求规格说明书;在此基础上对其进行软件设计,建立设计模型,用中文或者英文撰写软件设计规格说明书。课程将对学生提交的实践结果(即软件开发文档)的正确性、规范性、完整性、一致性、语言表达等方面进行评估。
5存在的问题和思考
软件工程导论范文篇2
关键词:软件工程;教学方法;案例教学;学导式教学;考核模式
中图分类号:G642文献标识码:A文章编号:1009-3044(2012)14-3328-02
PreliminaryExplorationofTeachingMethodsofSoftwareEngineering
XIAOSu
(SchoolofComputerScienceandTechnology,HuaibeiNormalUniversity,Huaibei235000,China)
Abstract:Softwareengineeringisapractice-orienteddiscipline.ThepurposeandcontentoftheSoftwareEngineeringteachingarefirstlyintroduced.ForsomeproblemsintheteachingofsoftwareEngineering,thesolutionsofthoseproblemsarepreliminarilystudied.Thosesolutionsaretheintegrationofthecaseteachingintotheoreticalteaching,payingmuchmoreattentionontheexperimentalteachingofsoftwareengineering,andthepracticalhomeworkinvariousforms.Byapplicationofthesolutionsinrealteachingprocedure,theteachingsituationofsoftwareengineeringistrulyimprovedaccordingthestudents’feedbackandthe,.
Keywords:softwareengineering;teachingmethods;case-basedteaching;learn-guidingteaching;assessmentmode
什么是软件工程(SoftwareEngineering)?至今很难有一个统一的定义,概括说来,软件工程是指导计算机软件开发和维护的一门工程学科[1]。上个世纪六十年代,在软件开发和维护过程中出现了一系列的问题,这些问题统称为软件危机。为了解决软件危机,既要有技术上的措施又要有管理上的措施,因此软件工程应运而生。经过近半个世纪的发展,软件工程已经发展成为一门独立的学科。我国软件工程技术的研究始于上个世纪八十年代,目前,全国有上百所院校的计算机及相关专业开设了软件工程这门课,并将其作为专业基础/主干课程。
1软件工程教学目的及内容
软件工程是计算机应用、计算机软件与理论等相关专业的一门重要的专业必修课。是一门理论性和实践性很强的综合性课程。软件工程涵盖了软件开发的基本概念、基本原理和主要方法,它将软件的生命周期划分为若干阶段,重点讲述了每个阶段的开发的过程、步骤、方法和技术。学习软件工程的目的是让学生了解软件项目开发的一般过程,掌握软件开发的主流方法,了解软件开发过程中应遵循的原则、标准、规范和流程,培养学生具备软件开发、测试与维护能力,为今后从事软件项目的开发、软件项目的管理和软件维护打下良好的理论与实践基础。
我院软件工程课主要讲述以下内容:①软件工程学概述。介绍软件危机的概念、表现、原因及消除软件危机的途径,软件工程的概念、基本原理和软件工程方法学,软件生命周期的划分,软件开发模型;②可行性研究。介绍软件问题的定义,可行性研究的任务和过程,常用的可行性分析工具:系统流程图、数据流图、数据字典等,成本/效益分析,可行性分析报告的编写;③需求分析。介绍需求分析的基本概念、任务,需求获取方法、需求分析过程、需求分析的结果及其描述,需求分析常用工具:实体-联系图、状态转换图、层次方框图、Warnier图、IPO图等,如何验证软件需求的有效性;④形式化的说明技术。介绍有穷状态机、Petri网和Z语言;⑤总体设计。介绍总体设计的过程和原理,软件设计的概念、原理和启发性规则,常用的软件结构描述工具:层次图、HIPO图和结构图,面向数据流的设计方法;⑥详细设计。介绍结构程序设计,人机界面设计,过程设计工具,面向数据结构的设计方法,程序复杂度的度量;⑦实现。介绍编码和测试,期中测试分为单元测试、集成测试和确认测试,常用的黑盒测试技术、白盒测试技术;⑧维护。介绍维护的定义、特点和过程,软件的可维护性,预防性维护,软件再工程;⑨面向对象方法学引论,介绍面向对象方法的基本概念和面向对象建模;⑩面向对象分析。介绍面向对象分析的基本过程,需求陈述,建立对象模型、动态模型和功能模型;11面向对象设计。介绍面向对象设计准则,启发规则,软件重用,如何设计问题域子系统、人机交互子系统、数据管理子系统;12面向对象实现。介绍程序设计语言,程序设计风格,测试策略和用例;13软件项目管理。介绍软件规模和工作量估算,进度计划的安排,人员的组织,质量保证方法,软件配置管理,能力成熟度模型。
2软件工程教学存在的问题及改进
针对软件工程教学存在的重视教师“教”,不重视学生的“学”;重视理论教学,不重视实践教学和案例教学;作业形式单一,注重书面作业和对基础知识的考试。提出了以下改进方法。
2.1在理论教学中适当融入案例教学
软件工程这门课的特点是:它所涵盖的所有理论、原理、方法和技术等全部来自工程实践。如果脱离了实际的软件开发案例,而单纯地讲解理论知识,未免会使学生感到枯燥、乏味,难以对软件工程有深入的了解。又鉴于所采用教科书上的软件工程案例较少,因此我引入了案例教学法(case-basedteaching),在理论教学的每个环节引入相关案例,将理论与实践相融合。案例教学法的历史可以追溯到古希腊时代,但我国对该方法推广地较晚。哈佛商学院将案例教学法定义为:一种教师与学生直接参与共同对工商管理案例或疑难问题进行讨论的教学方法[3]。可见该教学方法在经济学、管理学等学科领域应用较广。针对软件工程课程特点,选择案例时把握了以下原则:①案例要具有很强的现实性。即不可编造案例,最好是实际软件工程项目;②案例要具有时效性。因计算机学科发展较快,案例要跟上学科发展的步伐,最好是近几年出现的案例;③案例要与所阐述的理论密切相关。所列举的软件工程案例应该能够在一定程度上支撑书上的理论;④案例的背景要清晰;⑤案例讨论的主体是学生。学生在教师的指导下,参与进来、深入案例、体验案例角色;⑥讨论的过程是动态的。在教学过程中存在着老师个体与学生个体的交往,教师个体与学生群体、学生个体与学生个体、学生群体与学生群体交往,也就是师生互动、生生互动[4];⑦讨论的结果应多元化。我采用了如下步骤将理论教学与案例教学相结合:理论讲解引入相关案例讨论案例总结讨论结果。其中,案例讨论主要采用分组讨论的方式,每个小组就案例反映的问题提出自己的看法。理论的讲解在于传授知识,而融入案例的讨论则可将知识转化为能力,案例教学的引入正起到了这一作用。虽然案例的讨论会压缩理论学时,但教学结果表明,它确实提高了学生学习的兴趣,鼓励了学生的独立思考。大多数同学对软件工程理论知识的兴趣不升反降,能积极地投入到软件工程案例的讨论,基于理论的掌握提出自己的看法。过去的教学方式是老师讲,同学听,缺少互动,教师也缺乏对学生知识掌握情况的了解。通过案例的讨论,可以更全面了解学生对理论知识掌握和运用情况。
2.2重视软件工程实验教学
软件工程是强调实践的学科,但由于客观条件所限,我院学生在学习该课程时动手机会较少。我承担软件工程的教学任务后,主动申请增加一定的学时用于实验教学。由于软件开发是分阶段进行的,编码仅仅是期中一个环节(约占20%),主要工作集中在(可行性和需求)分析、(总体和详细)设计、测试和项目管理,并且软件工程不是教会学生如何编码。因此,实验的重点内容是相关的软件工具介绍,且利用这些工具完成软件工程各阶段的工作任务。实验的具体的内容可见表1,整个实验共计20学时。实验教学过程中采用了学导式教学方法,该方法提倡学生自学和教师的指导相结合,其本质特征是:教学重心由“教”转移到“学”,约67%的时间由学生进行的自学、解疑和演练[5],[6]。因此,上课前我为学生提供相关的资料,并要求学生认真阅读、理解和分析这些资料,完成实验报告上的相关内容。实验时,我会用10分钟左右了解学生对此次实验的准备情况。根据学生的实验准备,用20分钟左右的时间对本次实验的内容进行解释,设定好实验的框架,提供相关的阅读资料和例子以供学生参考。其余时间由学生自由支配,自主完成实验,实验过程可以上网查阅资料、相互讨论,亦可举手提问。通过实验报告的批改和学生的反馈的情况来看,大多数学生对实验比较感兴趣,愿意自己动手独立完成。可以将平时所学应用于实践,通过实践有对所学的理论知识及案例有了更深入的了解。
表1软件工程实验内容
2.3作业形式多样,注重联系实际
作业的目的在于巩固和消化课堂所学理论知识,作为一门实践性很强的课程,书后作业的形式较单一,对于“巩固”和“消化”显得力不从心。因此,我在布置作业时不局限于教科书上的题目,更多是寻找一些书外的与软件工程知识契合更紧密的题目。并将作业做了分类,如表2所示。针对不同的章节,或同一章节不同的内容布置不同类型的作业。每个章节开始时,会布置一些巩固型作业;上课时会布置思考型作业;每次下课前会安排下次课要进行的口头型作业;每一章或几章的教学完成时,会安排综合型的作业。例如:在讲授软件的可行性分析时,首先让学生记住一些基本概念。然后启发他们思考可行性分析的任务,口头描述可行性分析的过程。最后针对实际的问题定义,综合运用文字和图形工具,将可行性分析过程描述出来。虽然,学生的作业可能比以前要繁重些,也更具挑战性,但是学生能更好地巩固知识,更深入了解软件工程的过程,更全面地掌握软件工程的知识。
3结论
为了应对教学方式的变化,软件工程的考核模式与成绩评定也做了改变:总成绩中15%是平时成绩,包括了作业成绩(5%)、课堂表现(5%)和出勤率(5%);15%是实验成绩;70%是期末考试成绩。通过对教学方法的初步探索,并将其应用实际教学,确实取得了一定的成绩。以我所教的2009级计算机科学与技术专业的成绩为例,与未采用新教学方法的2008级相比,期末考试的平均成绩、优秀率、及格率和出勤率均等有不同程度的提高,学生的学习积极性也得到了提高。
参考文献:
[1]张海藩.软件工程导论(第5版)[M].北京:清华大学出版社,2008.
[2]PFLEEGERSL,ATLEEJM.SoftwareEngineering:TheoryandPractice[M].London:PrenticeHallPress,2009.
[3]王青梅,赵革.国内外案例教学法研究综述[J].宁波大学学报(教育科学版),2009,31(3):7-11.
[4]郑金洲.案例教学:教师专业发展的新途径[J].教育理论与实践,2002,22(7):36-41.