软件工程课程教学的一些体会

时间:2019-05-15 12:50:54下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《软件工程课程教学的一些体会》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《软件工程课程教学的一些体会》。

第一篇:软件工程课程教学的一些体会

《软件工程》课程教学的一些体会

陈中育

(浙江师范大学计算机学院,浙江金华321004)

摘要:在分析软件工程课程教学特点的基础上,讨论了软件工程课程教学对学生软件开发习惯的一些影响,提出了软件工程课程教学对教师素质的一些基本要求。

关键词:软件工程;课程教学;开发习惯;教师素质

Some Pedagogical Experience of SE Curriculum Instruction

Chen Zhong-yu

(Institute of Computer Science of Zhejiang Normal University, Jinhua321004, China)

Abstract: Analyses the characteristic of SE curriculun instruction, Discusses the influence of SE curriculun instruction upon the develop style of the students, Presents some basic requirement of teacher culture about SE curriculun instruction.Keywords: SE;Curriculum Instruction;Develop Style;Teacher Culture

0引言

《软件工程》是计算机科学与技术专业必修的一门专业课程。本人从事大学计算机专业本科生《软件工程》课程教学近十年,在教学过程中深感学习该课程的重要性,这不仅是因为软件工程与计算机专业其他先行基础课程的密切关联,更为重要的是软件工程掌握的好坏直接关系到学生毕业以后的软件开发思路和工作规范,甚至关系到我们国家整体软件产业在世界软件产业中的生存空间。

当前国内各大高校纷纷开办软件学院,其中一个非常重要的趋势就是先行开设软件工程专业,这也说明软件工程知识是整个计算机软件领域的核心内容。本文作者试图根据自己在教学中的一些体会和认识来分析在软件工程课程教学中我们到底应该坚持让学生着重学习哪些知识、使学生得到什么能力的培养。

1软件工程课程教学特点

(1)课程特点

《软件工程》课程是一门要求基础课程较多、应用实践性较强、与产业标准行业规范衔接、概念多、涉及面广的课程。属于在高年级开设的专业必修课程,要求学生学习软件工程的基本原理、概念和技术方法;自觉遵循软件工程方法论中的一些规范和工业领域中的一些行业标准;目的是提高软件开发的生产率,减少软件开发和维护中的错误,确保最终用户软件产品的质量。

(2)要求基础课程较多

要求学生在学习软件工程之前已经完成高级语言程序设计、数据结构、数据库系统概论、操作系统、计算机网络等先行课程的学习。这些课程都是计算机专业的一些重要基础课程,也是衡量一个学生是否具备计算机领域开发的技术能力。

任何大规模的软件项目开发最终是由很多开发组织、很多开发人员的集体参与、协作完成。具体的技术工作就是依赖于这些先行课程的能力,而软件工程所涉及的却是从工程技术、工程组织、工程管理、软件体系框架上的一系列难题。

(3)应用实践性较强

我们认为目前高校大多数计算机专业的培养目标应当定位在软件工程师,而不是计算机科学家,这应该是大多数高校计算机专业教学改革的出发点和根本点。作为软件工程师一个根本的能力就是实际软件开发能力问题,在课程学习尤其是软件工程的课程学习必须坚持软件开发技术开发能力的培养。在教学中必须强调理论学习与应用实践的结合,把握软件工程的发展方向,为学生在社会实践、毕业论文、毕业设计中能理论联系实际参与实际项目开发打下基础。

(4)与产业标准行业规范衔接

随着信息时代的到来,软件产业已经成为全球高科技产业发展的最主要的推动力。对于中国的软件业而言,如何抓住机遇,跻身国际软件强国之列,已经成为一个首要的问题。毫无疑问,现实的中国软件产业面临着巨大挑战,国情与我们类似的印度经过短短的十几年发展时间,印度以其软件公司的规范化和软件开发实力占有了全球市场的相当大份额,印度的软件出口额几乎是中国的30倍。目前,中国软件企业有5000家,是印度的5倍以上,但其中80%是小作坊式企业,不能形成较大的规模,一个根本的原因是我们的开发没有很好地执行软件规范化和行业标准所造成的。

造成这种局面,我们的软件教学体制也有责任,我们必须在软件工程的课程教学中认真学习软件开发的通行规范和标准,课程教学与与产业标准行业规范衔接。

2软件工程课程教学对软件开发习惯的影响

(1)什么是软件开发习惯

其实从某种程度上讲行为习惯与做事风格是等同的两个概念,记得在史济民主编的《软件工程原理、方法与应用》一书中是这样描述风格的。所谓风格,就是作家、画家和程序员在创作中喜欢和习惯使用的表达自己作品题材的方式。

从70年代以来,软件工程发展到今天,编码的目的从最初的强调程序执行效率到强调程序结构清晰到对象封装。伴随着程序设计语言从过程设计到面向对象的程序设计,随着软件工程技术的深入研究、发展和运用,人们逐步认识到,在大型系统的开发中,规范一致的开发习惯非常重要,增进成员之间的相通讯交流,减少因不协调而引起的问题,提高软件重用程度,软件开发的习惯也从过去的个人作坊到团队合作,从过去的强调过程代码编写到强调流程管理,从过去的强调代码实现到强调规范化文档编写,从过去的过程模块技术到现在的组件技术、构件技术、应用中间件技术。

(2)程序设计语言选择习惯

任何软件系统的实现都必须选择至少一种程序设计语言来完成,选择语言工具一个重要的评价标准就是看它能不能很好的解决所需要解决的问题,而不是开发小组成员能否使用某种语言工具。我们在实际教学中遇到很多学生选择语言上主要看自己是否喜欢和掌握程度来决定,虽然这样的大多数语言能解决大多数问题,但这样的选择原则是错误的,也不利于跟踪和利用最新软件开发工具和环境。软件工程是发展的,随着新技术新方法的出现,我们的开发方式也必须随之变化。

值得一提的是,就软件工程现状而言,我认为任何从事软件开发的人员都必须掌握两种语言。其中C是非常基础的语言,它对于培养软件开发的基本思维方式,培养良好的软件开发习惯,培养模块化、结构化等基本软件开发技能都具有非常重要的作用。同时,掌握了C,也就获得了通向程序底层环境的通行证,可以在需要的时候深入到任何的层次,解决需要解决的各种问题。而C++的最大特点,除了对C的基本特性的继承外,最重要的就是他可以培养程序员完整的面向对象编程的概念,及基本的技巧,还可以使得开发人员充分了解WINDOWS等多任务操作系统上程序运行的基本原理,从而为实际的应用开发提供最基础的思维模式。

(3)善于合作开发的习惯

我们必须看到,现在的软件业已经不是发展初期的软件业了,如今软件业的产业化规模已经相当大,要想在市场上取得成功,一个产品需要有非常多的人力、物力、财力的投入。什么是产业?它是一个通过计划、合作、创新,通过市场化的运作来创造价值的活动。对于

一个产业来说,个人作坊式个人英雄主义色彩几乎是中国软件产业的一个软筋。

我们发现高年级的学生大都积累了编程经验,也参与过一些开发实践,但是我们在软件工程教学中要求学生自由组合、合作开发、团队作战等思想时,他们马上感到无所适从,觉得自己一身编程能力无法得到发挥。教师在课堂上必须给学生说明:每个人的技术特长需要封装在软件开发的各个阶段细节上,一个成功的产品,必须经过严格的产业化运作,包括规划、开发、测试、包装、宣传、营销、客户服务。必须强调编程高手孤高倨傲、急功近利是非常有害的。

(4)用软件工程观点思考问题的习惯

我们周围很多从事计算机教学、科研和开发的专业人员有一种普遍的错误认识,认为软件开发主要的是技术问题,认为“不采用软件工程”也能做好软件产业化工作,这正是我们国内软件产业界落后思想的表现,也是软件企业短视、个人自由散漫、高傲自大的表现。如果这样的思想被多数人认可,将是我们软件产业界的一大悲哀。

曾经有一位同事这样评价软件工程这们课程,说软件工程其实就象是教育学,当然他的态度是教育学并不重要软件工程也不重要。如果我们的计算机教师都是这样的观点,那么我们怎么能让学生正确认识软件工程的重要性呢?

我们的问题决不在于需不需“软件工程”的争论,这本身就是无可置疑的。问题在于怎样去利用软件工程的思想和方法服务于我们的软件开发工作,这才是关键之关键。如果没有真正理解软件工程的根本思想,生搬硬套一些规程、一套文档格式和一些方法,只能给软件开发工作带来干扰和破坏,不会产生任何建设性作用。

所以,我们在教学中首先应该普及的是软件工程的基本思想,把它灌输到每一个学生的头脑之中,那么,软件工程的基本思想究竟是什么?我想也会有许多不同的观点,但我认为这样几点应该是共同的:(1)软件的开发一定要以产业化的思想来看待,强调合作和规范,杜绝随意性;(2)软件的开发过程一定要采用某种方法进行进度和成本的控制;(3)软件的质量必须得到保证,保证的措施一是提高开发过程的质量,二是通过严格测试;(4)客户的需求永远是软件开发的终极目标,客户的需求一定要准确,并且一丝不苟地满足;(5)软件开发的所有成果必须存在于容易理解的书面文件中,而不是仅仅存在于软件开发人员的头脑中。

3软件工程课程教学对教师素质的一些特殊要求

(1)丰富的大型软件系统开发经验

软件工程本身是一门实践性很强的课程,没有实践开发经验、大型系统分析能力的教师

很难胜任软件工程课程教学任务,这是软件工程教师应该具备的一个很重要的素质,目前无论业界还是高校计算机专业最缺的正是这样的专业人员。

(2)良好的语言沟通和文字表达能力

虽然作为教师本身就应该有这样的素质,但是软件工程教学中这种素质尤为重要,面对用户需求理解和表达,面对计划报告的书写,面对合作团队的组织、沟通和协调,等等,都必须具备这方面的素质。

(3)一定的市场运作能力

我们必须明确地告诉学生,你所开发的软件产品必须被用户接受被市场认可,了解市场把握市场善于运作市场也是教师应该具有的素质之一。

(4)较强的工程经济分析能力

软件作为一个工业产品,它应当赚取足够的利润,才能使软件开发组织生存下去。因此,从事软件开发的软件工程师应当具有较强的工程经济分析能力,能够分析软件产品的市场前景和经济价值,并做出合理的投资效益预测。

(5)健康的心理素质

开发软件本身就是一项艰苦的脑力和体力劳动,成功开发一个软件产品,要经过反复修改,要花费大量的进间和精力,这些都要求软件人员有较好的心理承受能力、团队合作精神、成果分享精神。

4结束语

以上这些思考只是从软件工程教学中容易被忽视的一些问题,希望以此话题引起同行们的思考和争鸣。

作者简介:陈中育(1964--),男,浙江浦江人,浙江师范大学计算机学院副教授,研究方向:软件工程、数据库。

第二篇:软件工程课程

软件工程专业本科生课程设置

时间:2009-03-22 08:47 来源: 作者: 点击:1059

学院在课程体系制定、课程计划安排上制定了严格的规定与规范的操作程序。课程体系、教学计划由学院主管院长负责,对国内外大学、大型IT企业进行调研、分析,确定社会对人才的需求和人才知识、能力、素质的构成,而后由主管院长召集相关教师起草方案,再经学院教学指导委员会专家和企业专家进行论证,并报学校教务处审核、批准,由此形成本科生、硕士研究生的培养方案。同时,根据学科发展和社会需求的变化,学院通过增加或变更选修课、开设讲座等方式动态调整。目前,软件学院主要课程设置按课程体系关键域分类如下。

1)数学基础(本科):大学数学I、概率论与数理统计、数值分析、离散数学等。

2)软件基础(本科):数据结构、汇编语言程序设计、面向对象编程与设计、可视化程序设计基础、操作系统、数据库系统、C/C++程序设计、算法分析与设计、编译原理、软件工程等。

3)硬件基础(本科):数字电子技术、计算机系统基础、数字通信原理、微机原理与技术、计算机网络原理等。

4)专业技术(本科):大型数据库技术、软件体系结构、系统级编程技术、数据挖掘、嵌入式系统、J2EE应用开发、.NET架构软件开发、设计模式、建模与测试、信息安全、软件开发案例分析、并行程序设计、多媒体技术及应用、网络与分布式计算、计算机图形学等。

5)工程管理(本科):软件开发项目管理、软件质量管理与控制、企业管理、网络营销、商务谈判技巧、软件度量及应用、心理学、商务英语等。

6)数学基础(双证硕士):应用统计、组合数学、应用数学方法等。

7)软件理论基础(双证硕士):现代软件工程、面向对象与构件技术、高等计算机算法、移动计算等。

8)数学基础(工程硕士):运筹学、工程数学基础、应用数学方法等。

9)软件理论基础(工程硕士):分布式系统、现代软件工程、软件重用与构件技术、软件工程实例分析等。

第三篇:软件工程实施体会

软件工程实施体会

——本学期对软件工程实验使我学会的

软件工程项目是需要团体作业才能够完成的。团体作业就需要交流,有交流,就必然会有合作;有合作,就需要有分工;有分工,就需要有协调;有所有这些,就需要有管理。然而一个人的项目是否不需要管理?当然不是,因为有文档,有代码,有灵感,有经验,等等都需要管理。只是此刻的管理是自己完成的,可以更简单一点。我们已经有过一遍又一遍的调试以前已经fix过的bug体验,也有过一遍又一遍的查找以前自己实现过的技术的经历。软件工程的理论,在开发过程中的作用,就是指导如何做好管理,以取得软件的可用性、正确性和合理性。如果我们清楚知道这是它的目标,就可以抛开一些对自己不适用的枝节。

那么我们如何实现它呢?

我认为软件工程中最重要的,最有实际意义的,是它界定了工作职能,从而也确定了责任归属。什么意思?说白了,就是什么人做什么事,出了问题谁负责。那么它是怎么界定工作职能的?是通过对软件开发流程的划分来实现的。软件工程把软件的开发划分成很多个相对独立的阶段,每一个阶段都有相关的人员来实现,也就有相关的人员来负责。分工不清,责权不明,是导致管理混乱的最主要的因素。所以即使是两个人的项目,也是需要软件工程来指导的,因为通过它,可以更好的知道如何可以合理分工,划分工作职权以取得最终的成果。当然,走教条主义的道路是非常愚蠢的。

软件工程是针对“软件危机”提出来的。它是一种工程,把经验和理论应用到实践中来,解决软件开发中出现的各种问题。这是什么意思?就是说,软件工程是用来解决实际问题的。如果软件开发中没有遇到管理问题,软件工程就不需要管理的内容;如果软件开发中没有遭遇文档混乱,软件工程就不需要文档的部分。但是如果很幸运的遭遇到了这些,那么这一切都是不可或缺的。软件工程不是一个固定的呆板的框框,而是一个有弹性的概念。

所以,如果不是要去申请iso或是cmm认证,完全不必要一板一眼的按照iso或是cmm的规范去做。所谓“有企业特色的软件工程”,完全可以从吸收现有的模式和规范中完善起来。但这并不是说所有在开发过程中出现的都是软件工程,只有那些能引导开发走向成功的才是真正有意义的软件工程。其他的,最多只是失败的尝试。

软件工程实施的时机;

首先要知道软件工程,理解软件工程;然后要了解现有的软件工程的模式和规范。ISO、CMM或是Agility,都定义了一套规范。这些规范是经验与技术,以及理论的积累。它们存在很多合理的、可行的模式,可以引用和参考;但银弹是没有的。当然,我们可以重头再来,造他们造过的轮子,摔他们摔过的跤;但很明显,这是不必要的。

实施的最好方法,也是最可行的方法,成本最小的方法,是根据开发的客观的因素,修改那些规范,以符合我们的开发过程;但是最主要的,是修改我们的主观认识,以符合那些规范;而最重要的,是在实施中发现那些规范不合理的地方,并改正它。我们担心过小的项目应用软件工程是否会陷入官僚主义,从而加重项目的负担?我们再来看什么是软件工程?软件工程并没有定义什么才是软件工程!也没有定义软件工程自身的规模。软件工程的意义在于对开发阶段的划分,以及分工和责任归属。这与项目的规模没有什么冲突。相反,越是小的项目越是需要软件工程的管理。

软件开发的一个共识,是把一个大的项目划分成一些小的模块,再把小的模块划分成更小的模块。如果这些小模块是独立的(或者原来就是一个独立的项目),那么软件工程至少可以提高它的重用性。对于一个软件工程观念不深的团队,不要期望他们在接手大的项目的时候可以使用软件工程,如果他们在小项目中不愿使用的话。前者的复杂度不是他们可以想象和承受的。软件工程对工作量有什么影响?针对那些在不使用软件工程管理的项目中很轻松的人而言的。软件工程会使他们要么失业,要么负起责任来。相对工程师而言,他们会从混乱的毫无头绪的状态中解放出来,他们的工作会变得有效率。损失的是以前尸位素餐的人将暴露出来——这可能是它的唯一的缺陷,同时也是它受到很多企业/个人抵制的可能原因之一。

第四篇:软件工程课程心得

软件工程项目总结

在我们整个软件工程过程中,我体会到了许多,也学到了许多。

在项目要进行自由分组后,我们的项目小组便诞生了。我们小组由七个成员组成,在相互商量后我们也确定了我们组的项目,是做一个校园 b2c电子商务网站。我们也随即做了分工,由于我们团队只有我和另一名成员有类似的项目开发经验,所以我们便要担负起更重的任务。最后由于在整个团队中,对于界面开发这一块只有我的开发经验较深,所以我便担任了主要的界面设计人员。我们的项目也正式开始了。

需求调研和分析对于软件开发过程至关重要。我们在开发时如果不进行调研和分析,那么对于后来的项目进展将产生致命的后果。我们在项目的开发中便遇到了这样的问题。老师作为我们的客户,他对这个校园 b2c电子商务网站的要求便是我们必须了解的,我们也必须以客户的要求为根本构建我们的这个系统。我们开始自己随意的计划整个网站的设计,然后报给老师,老师作为一个客户并不是全部认同,随后我们也必须按着客户的要求更改我们的设计报告。我也明白了,再做一个系统时,必须随时和客户保持沟通,随时了解他们需要什么,他们想要什么功能。如果我们不去和客户沟通,不去调研客户的需求,做出来的系统即使在我们看来是一个很好,很完美的产品,但是如果客户不认同,那么我们所做的一切都是徒劳,还要返工去修改,费时费力。所以在做任何一个项目时,前期的需求调研和需求分析都是必须的,这是在做一个项目的基本,是关系成败的重要一环。

对于一个项目,它的需求设计也非常重要。在我们的校园 b2c电子商务网站开发的过程中,遇到了一些问题,如客户提交购买确认后,我们如何确定应该以什么方式将货物给客户,还有以什么确定货物的送达地点,客户的订单在哪里处理,订单以什么方式惊醒处理,在管理员应该实现的功能上反复增删等,这些问题很多都是由于设计不够清晰,不够完善而导致的。出现的这些问题很多都是非常棘手的,我们为了解决这些棘手的问题浪费了大量的时间,我们不得不在工程代码上改了又改,在数据库里增表、删表、加数据、减数据,当然,在文档里也要做出相应的修改以适应新的功能。还好,我们能及时地发现问题,通过相互

沟通讨论,问题也得到了解决。通过总结,我们也意识到,我们大家在做需求分析和进行需求了解时仅仅考虑了一些基本的功能,而至于管理员和客户之间的联系,以及具体的一些流程我们都没有深究,而导致我们到后期花费了大量的时间用于修复之前没有考虑周全而带来的问题。如果我们的需求设计能够比较清晰和完善,那么我们在开发过程中便会很明白的知道我们应该实现什么样的功能,在数据库里应该怎样建表,以什么方式插入数据,从而可以避免反复修改工程的问题,也能避免出现可能毁坏整个工程的问题。整个工程的需求设计对于一个项目的顺利进展至关重要。

对于文档在软件工程中的作用,我在这次项目开发过程中有了更加深刻的理解。文档在软件开发过程中是很有用的,文档是一项必不可少的东西,但文档也不能太多,太过繁琐,如果是那样就不太好了。首先我们要明确开发过程中为什么要写这些文档,文档的最根本的作用是为了更好的沟通。一个项目或产品可能需要延续很长的时间,开发过程中可能需要很多的环节,可能会遇到很多的问题和很多的解决的方法,这时,我们需要文档的帮助,我们需要有一个东西来记录,我们需要有一个共同的声音。文档只不过是一个准绳,将开发中的各个树枝树叶扶正。如果,这个准绳太多太紧,大树可能会发育的很高很直,但是就是有些畸形,如果这个准绳太少太松,大树可能就会变成灌木丛。文档的多少、繁简是有度的,绝对不能说越多越好。我觉得,文档需要说明解决问题的方法而不是解决问题的理论,因为解决问题的理论是在文档形成中做到的。文档完整即可,每一份文档说明一个问题,无需将多个文档的内容放在一个文档的里面。除了重要阶段形成文档,其它部分都只是讨论或者说是想法。不要让文档成为累赘,如果真是这样,我认为就是该考虑写这些文档的必要性的时候了。我们在文档的时候,一定要明白为什么要写这些。

在整个项目开发过程中,我们也同时遇到了许多程序接口问题,页面和功能相结合的问题,数据库建表的问题,这些问题都是源于我们项目小组成员之间的沟通不足。我深刻认识到,在项目开发时,项目小组中各个成员之间的相互沟通是非常重要的。如果我们要在功能方面作出修改,那么程序人员和页面人员及数据库人员就必须相互沟通,共同对整个程序作出相应的修改,这样才能避免最终整合时出现问题。

在这十个周里,我还对软件工程有了新的理解。在我以前的理解当中,软件工程,无非就是一个人或者几个人或一个团队集中在一起进行编写代码的工作,以实现开发出所用的软件。但现在我明白了,软件工程的作用,就是告诉人们怎样去开发软件和管理软件。具体地讲,它表现在与软件开发和管理有关的人员和过程上。所以,软件工程就不仅仅是单一的编程过程了。它包括了系统分析->建模->概要设计->详细设计->编码->测试->维护。编码可以理解为编程,这个只占总时间的20%左右。编程只是其中的一小部分。

在这次项目里我完成了许多工作,在界面设计上我完成了,首页、全部的商品页面、全部的用户页面及部分管理员页面的制作,在后期项目整合过程中修改了功能和界面结合时出现的bug,还有数据库插入数据及解决数据库集中整合时出现的问题。这些工作我都顺利完成了,虽然并不能算是非常的出色,但也算是尽力了。现在看到自己辛劳的成果,我感到很欣慰。

当然,在这次项目过程中我也发现了自己的一些问题。如现在的网站开发技术还不够强,在和小组成员相互沟通上还不够积极等。我希望以此为契机,在将来的项目开发中能做得更好。

第五篇:软件工程课程总结

软件工程课程总结

学习软件工程这门课程已经有一个学期了,整整一个学期下来,应该说还是有许多值得肯定的地方的。其实在我看来,软件工程与其说是一门课程,不如说是一门思想,是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的能够解决问题的思想集合。

学习软件工程能够加强人的整体思维能力,对人的综合素质有所提高,培养良好的分析规划和团队意识。学习了软件工程,我们可以在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。

在这学期的软件工程课上,我每次都认真听老师讲课,跟着老师的脚步,领悟老师的思想,学习态度还算认真。一刚开始还觉得这门课有点枯燥乏味,但后来静下心来看这本书感觉书上的知识对以后无论是在生活、学习还是在工作上都有很大的好处,对自身也是一种完善,因为这里面的思想博大精深,值得学习。从此我就认真地学习这门课程。尽管在学习的过程中遇到了很多困难,但经过与老师和同学的积极交流终于把问题解决了,从中学到了更深层次的知识,而这些知识又是对书本知识的补充,对学习书本知识有很大的好处。当然,学习理论知识就是用来指导实践的,也只有把理论知识运用到实践才能充分发挥理论的作用。所以在业余时间,我们尝试着把所有知识串起来,并根据自身的实践经验完成了相关的系统分析报告,让知识能更加驻留我心。

在本学期的软件工程课程的学习中,我们学习了十章的内容。第一章软件工程概述,这一章主要讲解的是一些概念性和基础性的内容,例如软件的概念、特性,软件危机的主要表现。了解软件工程的的工作对象、发展背景、内容、目标。还介绍了三个常用的软件工具Microsoft Visio、PowerDesigner和Rational Rose。第二章软件开发过程模式,这一章主要让我们了解软件生存周期,认识到了软件开发过程,熟悉了几种常用的软件过程模式的特点与用途。此章介绍了6种模式:瀑布模式、原型进化模式、增量模式、螺旋模式、迭代模式和组件复用模式。第三章软件项目管理,本章详细介绍了项目管理内容(对项目的管理、对项目成果的管理),让我们学会如何制定项目计划,并学习使用甘特图、任务网络图(由Microsoft Project创建)制定项目计划。第四章计算机系统工程,这一章让我们熟悉如何从全局的计算机系统角度考察软件问题,熟悉如何对软件项目做可行性分析。该章还涉及系统初步建模,其中的系统框架图、系统流程图,可由Microsoft Visio中的基本流程图创建。第五需求分析,这一章重点讲解了需求分析任务及过程,让我们学会如何获取业务需求、建立业务模型、进行需求验证。可通过Microsoft Visio中的组织图创建业务树,通过Rational Rose创建业务用例、业务活动。第六章结构化分析建模,这一章重点讲解了使用变换型映射方法和事务型映射方法生成初始的模块结构以及模块结构的改进。说明了建立分析建模的原因和方法。我们可通过PowerDesigner创建实体联系图,通过Microsoft Visio创建数据流图,通过Rational Rose创建事件状态图。第七章基于UML的面向对象分析建模,本章详细介绍了UML的基本模式、事物、关系及建模时用到的各种图进行了介绍。可通过Rational Rose进行面向对象分析建模。第八章概要设计,这一章主要讲解了概要设计任务及过程,介绍了系统构架、数据结构、程序结构等概要设计内容。第九章结构化设计建模,本章介绍了结构化设计建模的工具,让我们学会如何基于数据流进行程序结构映射和如何对程序结构进行优化。该章中的程序结构图由Microsoft Visio创建。第十章基于UML的面向对象设计建模,本章讲解了面向对象设计建模内容,让我们学习使用UML建立面向对象设计模型(逻辑结构、动态过程、物理装配与部署)。通过Rational Rose进行设计建模。

学习了这门课程之后,我发现无论是在上课,还是在学校里面做学生工作,技术性的工作就好比变魔术。其实原理是非常简单的,甚至可以说简单的可笑,但是当你就是做出这么一个简单的东西出来之后,一些外行们有时候会用崇拜的眼光看着你,觉得你很厉害,很高深莫测。但是制作的过程他们却不知道,也许知道之后他们只是会哑然失笑,原来这个东西的制作过程是如此的简单,这个可以说就是技术的魅力了。就比如说软件工程中所谓的需求获取,从字面上来看好像是一件很难的事,而其实就是一个谈判,辩论,交流的过程,只不过这个交流过程可能针对性比较强。所以说软件工程就是对生活的平凡小事的升华,它来自于生活却高于生活。当我们在毕业之后,软件工程是我们实际要运用的一项非常有用的技能,而且不仅仅局限于软件工程的范畴,即使我们是从事其它行业,不也是要从需求获取开始,一直有条有理地到最后成品的出炉吗?应该说这就是这门课的价值所在,它让我们既学会了管理又学会了技术。

在整个学期的学习过程中,我收获了不少,能够解决一些较为简单的问题,在建模方面的能力有所加强。原来一直以为学好这门课程最重要的是会编写程序,其实则不然。我了解到软件并非是一些代码这么简单,在开发软件的过程中,编写代码的工作量其实只占不到所有工程量的30%,而后期的管理和维护更是占了60%到80%之多。一个完整的项目规划须包括:软件的定义、可行性分析报告、项目开发计划、软件需求说明书、概要设计说明书、详细设计说明书、用户操作手册、测试计划、测试分析报告、开发进度报告、项目开发总结报告、软件维护手册、软件问题报告、软件修改报告等多个文档,每个文档都要上级验收审查,而文档数量众多,要做好这点真的不是很容易,而恰恰写好文档正能保证完成软件工程其中一个目的的关键,既研究如何用最小的开销做出生存期较长的软件,再加上各个阶段都要进行周密的策划、详细的分工部署和人员安排,且各阶段要据具体情况不断的反复才能达成,所以代码只是开发软件这个浩大的工程的一个小小的过程。当然自己也有很多的不足之处,比如自己动手操作能力比较弱,实践经验匮乏,思维不紧密,不注重细节,耐心不够,每次遇到问题就去问老师,实战精神不强,所以导致很多知识学得也只是模模糊糊的。所以在以后的学习中我要加强自身综合素质的培养,要注意多看多练要注意结合实际,更要多思考,面对错误不要一范就问,要尝试自己去解决,这样才能学到这门课程的精华。我觉得学好软件工程首先要明白自己的学习目标究竟是什么,根据自己的实际工作出发,有针对性地在相应的学习方向上进行提高,制定出详细的学习规划。还要注意与其他科目的相辅相成,就像我们在学习语言时,要看看与C语言的联系,多思多想,把从各个科目学到的知识融汇贯通。

在本学期我们班每位同学都做了管理信息系统分析报告,其中就用到了软件工程中的不少知识。比如项目来源,项目任务,项目规划,系统需求分析,系统结构设计,系统详细设计,系统测试,系统维护等等。而我做的是酒店客房管理信息系统的分析报告,其中涉及到了以上几个方面,需要明确任务目标,准备相应的项目资源,对项目实施合理的规划,进行业务需求和功能需求分析,制定出数据字典,设计出软件结构,并对其进行详细设计,比如算法设计,数据库设计和界面设计。画出进度安排表,组织结构图,业务流程图,数据流图,利用UML建模画出图形,通过这些图形能更直观地看出各个实体之间的关系,对系统有个比较整体的体现。

总之,在今后的学习中要注意多读书、多思考、多练习、多讨论,不断熟悉书本的基础,并以此为基础将其扩散开来,应用于今后的实践。不断锻炼自己,成为社会的可用之才,回馈社会。

下载软件工程课程教学的一些体会word格式文档
下载软件工程课程教学的一些体会.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    软件工程课程心得

    软件工程设计总结在我们整个软件工程过程中,我体会到了许多,也学到了许多。 在项目要进行自由分组后,我们的项目小组便诞生了。我们小组由七个成员组成,在相互商量后我们也确定......

    软件工程课程评价

    《软件工程》是计算机及相关专业一门十分重要的专业基础课,随着我国信息化建设的深入发展和软件产业的快速发展,软件工程的重要性及其对信息产业的支撑作用日益凸现。 以刘建......

    《软件工程》课程教学大纲

    《软件工程》课程教学大纲 第一部分大纲说明 一、课程性质、目的与任务 《软件工程》是计算机应用专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概......

    软件工程课程设计个人体会

    数学与信息工程学院 项目名称: 实验室设备管理系统 专业班级:11计教1班学号:1129020025 姓名:蒋一瑭 承担角色:美工,问题处理 组号:08 同组组长:邓磊 同组其他成员:王宇翔 马富伟 江......

    软件工程导论课程报告

    软件工程导论课程报告 学习软件工程导论将近一个学期了,期间学习让我认识和了解到软件工程专业的各种相关知识,为我能学习好软件工程这个专业打下了专业背景知识的基础。自己......

    软件工程课程可行性设计

    软件工程实验内容及要求 一、实验目的 软件工程实验是《软件工程》课程的一个重要的、不可或缺的实践环节。其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、......

    学习《软件工程》课程心得体会

    软件工程课程 ——心得体会 摘要:高校教职工工资管理系统是为了解决教职工工资管理的而设计的,目的是建立一个能够初步实现高校教职工工资管理系统的智能化管理,该系统能跟据每......

    武汉大学-软件工程课程设置

    软件工程课程设置 大一: 英语听说(专业必修) 大学英语(公共必修) 体育(公共必修) 军事理论(公共必修) 高等数学(公共必修) 线性代数(公共必修) 思想道德修养和法律基础(公共必修) 马克思主......