第一篇:软件工程课程评价
《软件工程》是计算机及相关专业一门十分重要的专业基础课,随着我国信息化建设的深入发展和软件产业的快速发展,软件工程的重要性及其对信息产业的支撑作用日益凸现。
以刘建宾教授为课程负责人的北京信息科技大学《软件工程》课程组,在注重“双师型”教师队伍的建设的同时,积极进行课程建设,坚持教学内容与学术研究相结合的原则,将多年的项目工作经验和科研成果融入到课程讲授过程中,使学生可以更好地学习、理解软件工程的思想并加以运用。
该课程的一个重要特色是在课程的实施中,引入了CDIO工程教育理念,注重“做中学”和“基于项目的教育和学习”,使以往抽象的软件工程理论与实际软件项目开发紧密结合,易于学生接受。以实验和项目设计为核心,采取的重基础、重实践、重创新的多方位教学模式,提高学生对课程的学习兴趣,在强调学生理论基础知识的同时,注重培养学生理论应用能力、团队合作能力。
该课程组在教师队伍建设、教学内容安排、教学手段运用以及教学质量上都处于一定的领先地位。
第二篇:软件工程课程
软件工程专业本科生课程设置
时间:2009-03-22 08:47 来源: 作者: 点击:1059
学院在课程体系制定、课程计划安排上制定了严格的规定与规范的操作程序。课程体系、教学计划由学院主管院长负责,对国内外大学、大型IT企业进行调研、分析,确定社会对人才的需求和人才知识、能力、素质的构成,而后由主管院长召集相关教师起草方案,再经学院教学指导委员会专家和企业专家进行论证,并报学校教务处审核、批准,由此形成本科生、硕士研究生的培养方案。同时,根据学科发展和社会需求的变化,学院通过增加或变更选修课、开设讲座等方式动态调整。目前,软件学院主要课程设置按课程体系关键域分类如下。
1)数学基础(本科):大学数学I、概率论与数理统计、数值分析、离散数学等。
2)软件基础(本科):数据结构、汇编语言程序设计、面向对象编程与设计、可视化程序设计基础、操作系统、数据库系统、C/C++程序设计、算法分析与设计、编译原理、软件工程等。
3)硬件基础(本科):数字电子技术、计算机系统基础、数字通信原理、微机原理与技术、计算机网络原理等。
4)专业技术(本科):大型数据库技术、软件体系结构、系统级编程技术、数据挖掘、嵌入式系统、J2EE应用开发、.NET架构软件开发、设计模式、建模与测试、信息安全、软件开发案例分析、并行程序设计、多媒体技术及应用、网络与分布式计算、计算机图形学等。
5)工程管理(本科):软件开发项目管理、软件质量管理与控制、企业管理、网络营销、商务谈判技巧、软件度量及应用、心理学、商务英语等。
6)数学基础(双证硕士):应用统计、组合数学、应用数学方法等。
7)软件理论基础(双证硕士):现代软件工程、面向对象与构件技术、高等计算机算法、移动计算等。
8)数学基础(工程硕士):运筹学、工程数学基础、应用数学方法等。
9)软件理论基础(工程硕士):分布式系统、现代软件工程、软件重用与构件技术、软件工程实例分析等。
第三篇:软件工程课程心得
软件工程项目总结
在我们整个软件工程过程中,我体会到了许多,也学到了许多。
在项目要进行自由分组后,我们的项目小组便诞生了。我们小组由七个成员组成,在相互商量后我们也确定了我们组的项目,是做一个校园 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建模画出图形,通过这些图形能更直观地看出各个实体之间的关系,对系统有个比较整体的体现。
总之,在今后的学习中要注意多读书、多思考、多练习、多讨论,不断熟悉书本的基础,并以此为基础将其扩散开来,应用于今后的实践。不断锻炼自己,成为社会的可用之才,回馈社会。
第五篇:软件工程课程心得
软件工程设计总结
在我们整个软件工程过程中,我体会到了许多,也学到了许多。
在项目要进行自由分组后,我们的项目小组便诞生了。我们小组由七个成员组成,在相互商量后我们也确定了我们组的项目,是做一个图书管理系统。我们也随即做了分工,由于我们团队只有我和另一名成员有类似的项目开发经验,所以我们便要担负起更重的任务。最后由于在整个团队中,对于界面开发这一块只有我的开发经验较深,所以我便担任了主要的界面设计人员。我们的项目也正式开始了。
对于文档在软件工程中的作用,我在这次项目开发过程中有了更加深刻的理解。文档在软件开发过程中是很有用的,文档是一项必不可少的东西,但文档也不能太多,太过繁琐,如果是那样就不太好了。首先我们要明确开发过程中为什么要写这些文档,文档的最根本的作用是为了更好的沟通。一个项目或产品可能需要延续很长的时间,开发过程中可能需要很多的环节,可能会遇到很多的问题和很多的解决的方法,这时,我们需要文档的帮助,我们需要有一个东西来记录,我们需要有一个共同的声音。文档完整即可,每一份文档说明一个问题,无需将多个文档的内容放在一个文档的里面。除了重要阶段形成文档,其它部分都只是讨论或者说是想法。不要让文档成为累赘,如果真是这样,我认为就是该考虑写这些文档的必要性的时候了。我们在文档的时候,一定要明白为什么要写这些。
在这一周里,我还对软件工程有了新的理解。在我以前的理解当中,软件工程,无非就是一个人或者几个人或一个团队集中在一起进行编写代码的工作,以实现开发出所用的软件。但现在我明白了,软件工程的作用,就是告诉人们怎样去开发软件和管理软件。具体地讲,它表现在与软件开发和管理有关的人员和过程上。所以,软件工程就不仅仅是单一的编程过程了。它包括了系统分析->建模->概要设计->详细设计->编码->测试->维护。编码可以理解为编程,这个只占总时间的20%左右。编程只是其中的一小部分。
当然,在这次项目过程中我也发现了自己的一些问题。如现在的网站开发技术还不够强,在和小组成员相互沟通上还不够积极等。我希望以此为契机,在将来的项目开发中能做得更好。