半岛体育软件工程专业是2002年国家教育部新增专业,随着计算机应用领域的不断扩大及中国经济建设的不断发展,软件工程专业将成为一个新的热门专业。软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,使学生在掌握计算机科学与技术方面知识和技能的基础上熟练掌握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养,
重点是上文的的黑体字,即软件工程专业的目的。由此能推出学的就是怎么样开发,测试,维护软件,以及管理软件开发项目。
软件工程包含两个部分:软件和工程。软件是程序员做的,而工程是项目负责人管理、程序员实践的。
软件又包含两部分:语法和算法。语法,即要掌握某种编程语言。一般来讲,要想工作中用的上,那么面向过程的语言和面向对象的语言都得掌握。一般学C、C++、Java、Dephi等等。面向过程的程序比较好学,条目也很清晰。而面向对象的编程需要学两方面的内容:语法本身和庞大的类库。算法,这是编程的灵魂。一般包括:数据结构和经典算法。学无止境,一般性的工作话,掌握基本的就够了,如果工作较复杂得多看看算法方面的期刊。
工程。现代软件越变越大,大型的编写工作动不动就涉及万人。工程的方法只是为了更好的组织、协调编写过程。《软件工程》本身就是一本书,很厚的。主要讲软件的生命周期,比较抽象和繁杂,但是规范的工作方式就是从这本书里来的。另外关注一些编程习惯的知识。这也是工程的一部分。
时间浪费在所谓的大学课程上,很多都是没有营养的。其实软件工程的知识体系也就是那样,各个大学也是照着这个思路编排课程的。所以,自学的时候直奔主题就可以了。
从未来可能从事的工作来探讨软件工程专业,简单分成两大类:技术类和非技术类。
顾名思义就是从事编程的岗位,其实就是我们所说的程序猿。主要可以从事的方向有:
a、可视化编程。在掌握程序设计方法及可视化技术(例如Java,Delphi等)的前提下,在可视化平台使用技术开发软件。
b、web应用程序设计。该岗位又可以分为两种,一种是前端,要求掌握的技术,主要是HTML、css、JavaScript三种开发技术,随着互联网技术的发展,现在也要求使用HTML5技术。另一种是后台开发,要求掌握的PHP、Apache、shell、vim、crontab等服务器开发技术。
软件测试这个岗位要求职工子在理解产品的功能要求的前提下,对其进行测试,检查软件有没有Bug,测试软件的稳定性,并且写出相应的测试规范和测试用例。这个岗位需要一定的技术能力,但是不是要求特别高。所以我还是把它放在了技术岗这个分类下来。
顾名思义,在互联网产品测试工作完成后,对产品进行的发布和发布之后的运营维护工作,属于技术岗位。需要的技术方向有很多种,例如服务监控技术、服务故障管理、服务容量管理、服务性能优化等等。
数据库管理这个岗位,其实是属于编程岗位里面的,我这边把他单独罗列出来,因为它和编程岗有点不同。岗位要求能够应用关系范式进行数据库设计,精通SQL语言,胜任数据库服务器管理与应用的工作。
这是一个产品开发的岗位半岛体育,注意是开发,属于非技术岗。后面职业的上升就是相当于产品经理。负责调查并根据用户的需求,确定开发何种产品,选择何种技术、商业模式等。并推动相应产品的开发组织。
该岗位需要从内容建设,用户维护,活动策划三个层面来管理产品内容和用户。在上线之前,运营要清楚产品的定位以及目标用户是哪一些。在内测期,运营主要收集用户行为数据和相关的问题反馈,和产品开发一起分析讨论进行产品的优化。在爆发期,进行一些必不可少的活动策划拉新留存促活。 在成熟期,运营要做好产品开发和用户之间的桥梁作用。给予用户最好的体验。
确切地说,主要学习软件工程方面相关的基础理论、专业知识和技能,掌握解决复杂软件工程问题所需理论,具备运用专业知识分析和解决复杂工程问题,让学生具备软件开发的能力。是一门理论+实践结合的学科。和计算机科学略有不同的是,计算机科学的课程部分含有计算机体系结构以及硬件类的课程,软件工程是偏软的专业。
主干核心课程:离散数学、程序设计基础、计算机组成原理、数据结构、算法分析、面向对象程序设计、操作系统原理、编译原理、数据库系统原理、计算机网络、软件工程、软件设计模式等。
专业基础课程包括:离散数学、数据结构、计算机网络、算法分析、计算机组成原理、操作系统原理等核心课程。这些课程构成了软件工程和计算机科学专业的基础性框架,是后续学习的必备基础课程,重要性不言而喻。
专业选修课包括:Java程序设计、计算方法、组合数学等扩展性课程,对于软件工程的提高学习非常重要。
为了进一步拓展软件开发的必备知识,开设了软件工程、设计模式的核心选修课,还有Unix/Linux操作系统、网络安全、图形学、机器学习、数据挖掘等方向性课程。
还有一些实践性课程,包括课程设计以及上机实验等,对于提高实践能力非常重要。以上课程构成了软件工程的课程体系。
软件工程专业是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件人才的培养给予了非常优惠的政策。本专业培养掌握计算机软件基本理论知识,熟悉软件开发和管理技术、能够在计算机软件领域中从事软件设计、开发和管理的高级人才。
1、软件工程专业主修课程:软件工程专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。
2、 软件工程专业毕业去向: 除考取国内外名牌大学研究生外,主要毕业去向是计算机软件专业公司﹑信息咨询公司﹑以及金融等其它独资、合资企业。 从我周围的例子来看,软件工程学出来,如果编程能力强的线左右的工作还是可以的,但是,问题就是非常的累,而且竞争比较激烈,如果年龄大了但却不能往上走的话,一直作程序员是比较没有前途的。
不过,如果学的好话,其实和计算机专业差不多,都有机会进比较大的IT公司,我有个学软件的同学就去了IBM,当然,竞争也是很激烈的。
当然也包括计算机软件编程,android编程,ios前端编程,理解了这个概念,就是我们常说的It编程了,想学习的话欢迎和我一块交流~
计算机科学研究的是如何表达人类的思考,是一种思考方式的革命,而不仅仅是计算能力的表达。 软件工程研究的是如何组织好自己的程序,如何让自己的思想用更确定、更可预期的方式进行表达。 所以这是一门关于思考和表达的科学。
在1946年计算机诞生时,并没有明确的定义软件的概念,只有一系列的机器码来控制计算机硬件执行。直到1947年冯诺依曼提出用流程图描述计算机的运行过程,人们才将硬件和软件的概念分开,软件开发才开始了独立的发展。
这一时期软件主要作为硬件的附属,主要是用汇编语言和机器语言,以个人和小组的形式开发、运行、维护程序,程序的功能单一。
程序的复杂度增加,出现了部分高级语言,需要多人合作完成同一程序的编制,有项目开发管理的需求。
软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率,软件危机开始爆发 :软件质量差,可靠性难以保证;成本难以控制,很少有在预算内完成的;开发进步难以把握,周期长;可维护性较差,维护人员和费用增加。
在“软件危机”的影响下,人们开始着重解决软件开发过程中所遇到的这一连串的问题,软件工程得到了极大地发展。
BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
IEEE:在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究
FritzBauer:在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
ISO 9000:软件工程过程是输入转化为输出的一组彼此相关的资源和活动。
软件工程的发展已经历了四个重要阶段:传统的软件工程、对象工程、过程工程、构件工程。
由ACM和IEEE-CS发布的“软件工程知识体系”(SWEBOK)定义了15个关键领域: