软件工程专业的核心知识
1.什么是软件工程
软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义:
Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
IEEE:软件工程是开发、运行、维护和修复软件的系统方法。
Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
核心:围绕工程设计、工程支持以及工程管理,通过测试来维护活动使用过程中的扩充、修改与完善。
2.软件工程专业要学习什么知识
培养目标:软件工程专业培养面向国民经济信息化建设和发展的需要,培养具有扎实的计算机应用理论和知识基础,掌握软件工程领域的前沿技术和软件开发方法,具备较强的软件项目的系统分析、设计、开发和测试能力,能够按工程化的原则和方法从事软件项目开发和管理的高级工程技术人才。
主要课程:离散数学、面向对象程序设计、数据结构、数据库原理、操作系统、计算机网络、软件工程、软件过程与管理、软件测试技术、软件质量管理、软件项目管理等。
毕业去向:软件工程专业毕业生主要在信息产业和国民经济部门从事信息系统研究、分析、设计、开发和测试以及软件工程项目的组织和管理工作,也可考取计算机科学与技术专业的硕士研究生。
软件工程专业是今后的热门,就业前景非常好!目前软件工程9个专业的内容和就业情况如下:
1 可视化编程
掌握程序设计方法及可视化技术,精通一种可视化平台及其软件开发技术。获取Delphi程序员系列、Java初级或VB开发能手认证。
就业方向:企业、政府、社区、各类学校等可视化编程程序员。
2 WEB应用程序设计
具有美工基础和网页动画设计能力,掌握交互式网页程序的设计技术,能进行网站建设和维护。获取Macromedia多媒体互动设计师或Delphi初级程序员或Delphi快速网络开发工程师认证。
就业方向:企业、政府、社区、各类学校等WEB应用程序员。
3 软件测试掌握软件测试的基本原理、方法和组织管理,精通软件测试工具。获取ATA软件测试工程师或Delphi初级程序员或Java初级程序员认证。
就业方向:企业、政府、社区、各类学校等软件测试员。
4 数据库管理
能应用关系范式进行数据库设计,精通SQL语言,胜任数据库服务器管理与应用工作。获取Oracle数据库管理或SQL Server数据库应用或Windows XP应用认证。
就业方向:企业、政府、社区、各类学校等部门的中、大型数据库管理员。
5 图形图像制作
精通国际上流行的图形/图像制作工具(如CorelDraw、Photoshop、Pagemaker等)。获取平面设计师相关的认证。
就业方向:广告制作公司、建筑设计公司、包装装璜设计公司、居室装修公司、出版印刷公司。
6 网络构建技术
熟悉网络结构和组网方式,掌握建网方法,能利用工具分析和排除常见网络故障。获取Cisco路由配置或华为网络工程或AMP应用工程师认证。
就业方向:企业、政府、社区、各类学校等网络构建工程师。
7 网络系统管理
掌握网络系统管理的基本知识与应用技能,能进行网络系统的安全设置。获取Window2000 Server或TurboLinux TLCE或Cisco路由配置专家认证。
就业方向:企业、政府、社区、各类学校等网络系统管理员。
8 多媒体制作
具有多媒体程序设计与多媒体制作策划的能力。基本掌握面向对象程序设计与建模、造型设计、场景设计、分镜头原理等技能。获取多媒体设计师相关的认证。
就业方向:多媒体设计与制作公司、动画美术制作出版公司、广告制作公司。
9 计算机办公应用
精通办公自动化应用与管理,熟悉服务器的安装、管理和维护,基于应用服务器的相关服务和软件系统,具备对服务器的网络安全设置、邮件、网页发布、FTP、OA、BBS等系统的应用和维护能力。就业方向:企业、政府、社区、各类学校等系统管理
3.软件工程专业主要学些什么内容
软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,使学生在掌握计算机科学与技术方面知识和技能的基础上熟练掌握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养,培养能够从事软件开发、测试、维护和软件项目管理的高级专门人才。
软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
4.软件工程专业的主要专业课是什么
已解决问题收藏 软件工程的专业课是什么?标签:软件,工程 专业课,工程
学了一年了,还没开专业课,不知道软件工程的的专业课到底是什么?迷茫。。 ☆领★悟☆ 回答:1 人气:11 解决时间:2009-06-14 23:15
1、专业简介:是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件人才的培养给予了非常优惠的政策。本专业培养掌握计算机软件基本理论知识,熟悉软件开发和管理技术、能够在计算机软件领域中从事软件设计、开发和管理的高级人才。 2、主修课程:该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。 3、毕业去向: 除考取国内外名牌大学研究生外,主要毕业去向是计算机软件专业公司﹑信息咨询公司﹑以及金融等其它独资、合资企业。这些都作为参考,其实要看自己了,不要说我说的很虚,确实自己的兴趣是很重要的,不要太勉强自己啊。如果你觉得有些不知去向,建议你暑假回家后多去了解、咨询一些需要这方面人才的公司,去成都那边看看,我也去过一些公司,干这行就像你原来说的那样是很有出路的,自己多去了解打听下,好为未来做准备啊。一句名言:机会总是给了那些做好准备的人。
那种上课方式,没有学生会接受的,很繁琐,你会烦死,又很难理解等你出来了,要从程序员干起,不断的编写,不断的调试,非常的烦,而且没前途,因为是干活的,还要被别人呼来唤去的在中国,越高层越爽,越底层越累升到管理会好些你就慢慢熬吧
5.软件工程的主要内容
软件工程专业是计算机科学系三个本科专业之一.
培养目标:本专业培养适应我国社会主义建设实际需要,在德,智,体,美等方面全面发展,具有良好政治素质与道德修养,具有较扎实的计算机科学基本知识和数学理论基础,接受了严格的计算机软件开发技能和软件管理方法的训练,可从事计算机软件的研究,开发,设计,应用和维护工作,具有良好的科学素质和创新能力的高级软件技术人才和管理人才.
培养规格:能扎实掌握计算机软件的基本理论,分析方法,设计方法以及实现技术等基本技能;掌握软件工程的管理方法,测试技术以及相关法规;了解计算机网络与通信系统及计算机硬件系统的基本知识;了解现代信息技术的发展动态;具有良好科学思维能力和人文科学基础;具有良好的科学素质和团队精神;有较强的专业英语阅读和写作能力,通过全国四级英语统考.
就业前景:电子信息行业、国家行政机关、事业单位、高等院校、独资外资企业、通信行业、金融贸易、电力等各大中型企业。
发展方向:计算机软件的开发与测试,软件工程管理,软件工程监理,电子商务,电子政务,信息系统应用等.
专业的主要课程:高级语言程序设计,面向对象程序设计,离散数学,数字逻辑,计算机组成原理,数据结构,操作系统,数据库原理,计算机网络,编译原理,软件工程,软件工程项目管理,软件设计与构造,可视化编程,网络编程,信息系统分析与设计,电子商务,网页设计技术,多媒体技术应用等.
主要和数学和英语关系最大。
学费挺高的一般4年要用4万。
6.软件工程主要包含哪些内容
软件工程专业旨在培养能从事计算机系统软件、应用软件的设计、研制和开发的高级工程技术人才。本专业培养具有良好的科学素养,系统地掌握计算机科学与技术基础知识、规范的软件设计与开发能力、良好的组织与交流能力,能在科研部门、教育单位、企业、事业和行政管理部门等单位从事复合型、实用型高层次软件设计、系统分析和工程应用的高级专门技术人才。近几年,我国软件产业不断发展,对软件从业人员的需求也在不断增加中,新增的软件工程专业,对培养这方面的人才起很大的作用。可以看出来软件工程专业的培养目标是运用先进的工程化方法、技术和工具从事软件分析、设计、开发、维护等工作能力,以及工程项目的组织与管理能力的实用型、复合型软件工程技术与管理的高级人才。
专业学习的主要课程有:面向对象系统分析与设计、软件体系结构、软件项目管理、软件需求工程、软件质量保证与软件测试技术、先进软件开发与工具、软件过程改进与管理。
就这些吧,希望能对你有所帮助。
7.软件工程师的知识有哪些
软件工程师证书,是有社会培训机构通过培训考核发给的有关证书。与国家计算机软件水平资格考试不一样。 如JAVA如件工程师,其培训内容包括: 初级部分: 1. Java 面向对象程序设计、Java API使用、数据结构及算法基础、Java高级类特性、异常处理; 2. AWT及Swing图形程序设计、流、网络程序设计、对象序列化、Applet、多线程程序设计、Java应用国际化基础; 3. Java桌面系统项目开发; 4. Java编程基础提高课程:反射机制、设计模式(I)、正则表达式,Java SE5.0新特性等; 5. 基于Oracle的数据库开发及管理、数据库设计、标准SQL、PL/SQL编程; 6. JDBC、JSP2.0、Servlet2.4、JavaBean编程;Tomcat服务器使用、Jbuilder及Eclipse 等集成开发环境; 7. Linux操作系统中的Java程序开发、Linux系统管理; 8. Java Web编程提高课程:JDBC进阶、高效分页处理、过滤器使用技巧、Struts中动态表单验证、DispatchForm等; 高级部分 1. MVC设计模式、Struts架构核心工作机制、国际化、验证框架、Struts Taglib、ORM基础、基于Hibernate的企业级应用; 2. JavaME手机游戏设计、界面程序设计、数据库程序设计、手机短信、多媒体短信(彩信)开发; 3 .JavaEE核心技术、XML、Web Service、异构系统整合、分布式应用开发、WebLogic和JBoss等应用服务器; 4 .CMM、UML与系统建模和设计、Rational Rose、软件工程和软件过程模型、版本控制及设计模式; 6. Java 企业级应用开发提高课程:Hibernate使用技巧、设计模式(II)、Spring编程入门、提高Java EE应用的性能; .NET程序设计 .NET架构、.NET桌面和Web程序设计、.NET与JavaEE平台应用的整合; 职业素质 IT职业规划、沟通技巧、团队合作、专业技术规范、面试技巧等职业技能培训。 完成以上培训课程后,通过考核就可以获得培训机构颁发的合格证书。 现在比较吃香的是JAVA,特别是J2EE,未来3G出来后,手机编程将成为热点,J2EE当然就会很吃香了。 关于证书的权威性,建议你要去知名的培训机构去,最好是像SUN这类国际大公司有关认证所指定的培训机构,这样权威性高些。 一般来讲,软件公司是非常喜欢通过了软件工程师的人员,学历对他们来说并不重要,而重要的是能力。如果你的能力够强,在一个好的公司的话,这个月薪我想应该是可以拿到的。 其他方面的软件权威考试,在国内当然就是国家计算机软件水平资格考试了。这是国家级的考试。
8.如何培养自己的核心专业能力(软件工程)
①、计算机专业领域一共有几个大方向,十几个分支方向,而每个分支方向又有几十个小方向,每一个方向的深入学习与熟练到一定火候都不是一朝一夕,互相之间也不是完全没联系的,但是无论是初学者还是中前期学习者都应该选择一个大方向并在其中的一个小方向内深入(为什么要这么早就选择具体的分支方向?后面说)。
②、这里列出计算机的几个大方向(非编程开发类的我就不说了):基本方向:1、单片机、嵌入式方向2、网络编程:涉及到服务器程序、客户端开发、脚本设计等。3、系统编程:基础API开发、桌面开发、系统程序开发、服务程序4、图形学:3D、2D、图像识别、人脸识别5、音频:语音识别、音频解码、音频软件6、编译原理:编译器设计、脚本解释器、虚拟机、非自然语言翻译系统7、应用层开发:利用高层语言去开发表层应用 8、安全:反工程、病毒、反病毒、木马、反木马、软件破解、软件加壳附加方向:9、人工智能:遗传算法、神经网络、灰色系统等等10、游戏设计:各种游戏引擎设计以及业务逻辑设计等③、基本方向是学习者一定要选的,附加方向只是基于基本方向的一些锦上添花,但是不管学习者怎么选,最开始某些东西一定要深入而不是只是懂就够(当然学习者对自己要求不应该低),我把这个列出来:数据结构:下面其他理论的基础。
(必看:《算法导论》操作系统原理:理解操作系统的架构和细节,学习者才能对以后关于多线程、文件管理、内存管理、指令优先级等有一个正确理解和运用。(必看:《操作系统:精髓与设计原理》编译原理:能够升华学习者对计算机编程语言的理解,对以后出现的各种编译、解释、兼容、移植、优化、并发与并行算法等有一个深入理解。
(必看:三本圣经和《PT》,哪三本具体百度数据库系统原理:这个是进入公司都要会的,也是大型软件开发的基础。(这就有很多经典,但都不是必看的,具体douban软件工程:这个是学习者能够在经验不足还能保证大项目正常完成的理论基础。
(设计模式能够有助于软工的架构设计,一定要看网络技术:这个是必须学的,因为目前几乎没有一款装几率很高的软件或者平台跟网络无关。(很多很牛的书,具体douban数学的话,主要是:离散数学、线性代数、高等数学、计算机图形学、概率论(各自都有很牛很好的书以及习题,具体douban以上几个基础就是学习者成为一个融汇各个主要分支牛人必须学的(当然不是指理论,而是理论+实践编码能力)④以上都是大的基础,要一一攻破并深入学习,虽然网络时代计算机专业知识爆炸式的增长,但是以上几个基础掌握后,会发现,以后的什么新的理论和技术都是基于这些大基础,学习者就很容易理解了(或者且当你对方法论比较感兴趣,在方法论的催化下+以上浑厚基础,会有一种被打通任督二脉的感觉)。
⑤我为什么开头不讲学习者要具体学什么怎么顺序学呢?因为那些技术学习者要掌握的话,根本可以自己解决(翻书+实践的反复循环),但是如果没有一个对自己现在投入的努力和【以后形成的能力和层次积淀的预测】的基本了解,那么毕业后虽然也能找到不错的工作,薪水也可能高,但是却不是一个大牛(虽然这之间确有转化关系,仅个人见解)。现在才开始讲学习顺序(一种可能的顺序,并且大部分被我验证或预测过)。
C语言是可以写很多核心和高级的东西,而不只是小东西,编码技巧有很多可以提高的空间之处。学习者的学习顺序应该是:C:建议有时间的话,学到这个程度-做一个超级马里奥出来,并能够读取文本脚本来更新关卡。
C++:写一个2D图形引擎,封装掉细节,实现面向对象设计和可复用设计(但是2D图形引擎注重效率,对复用的设计理念显然不需要太在乎,所以最具有复用挑战力的是外表简洁,内部设计复杂而高度灵活如WPF的GUI),并且用到《设计模式》中提到的一些设计模式,这样才能算对C++有一个很好的掌握。MFC:MFC技术虽然据说前期一段时间冷下来了(近期又有新的热度,貌似融入了新的血液),但是学习者能熟练掌握它,才能短期内证明学习者的C++OO技术够纯熟,严格证明学习者掌握了MFC很简单,学习者只要用MFC做出一个非内核的杀毒引擎简化版就差不多了。
推荐的书有《深入浅出MFC》。《Windows程序设计》:和MFC不同的是,用的是windows核心SDK,也就是Windows API,这本书学完后,学习者才能从操作系统层面上算掌握了win32 平台下的机理(其实win64和win32大部分API机理类似)。
C#:C#里集合了当代和前沿计算机科学里最先进的一些语法(虽然执行效率一直被人质疑),但是学习者学完C#并深入后,至少能够算是对计算机语言有一个更加深刻的理解了。如何证明学习者C#学的不错了?也很简单,再次写一个随便什么游戏。
如果更加证明自己呢?用它写一个P2P网络对战游戏。⑥作为进阶学习编程语言的附加要求,其它语言建议也学习下,学之前可以先看《冒号课堂》(告诉你各种范式语言之间的关系,让你对编程语言有一种截然不同的全新视野的掌握)。
(如果学习者注意的话,会发现我说的学习顺序都是沿着语言。