首页 > 编程知识 正文

浅谈软件工程专业基础,介绍一下软件工程专业

时间:2023-05-06 12:29:24 阅读:217193 作者:3499

浅谈软件工程专业 什么是软件?

通俗的说,软件是一个集合,是程序+数据+文档的集合。并不是大部分普通人认为的软件仅仅是程序。
PC电脑上有IE浏览器软件、360杀毒软件、QQ、百度云盘、迅雷下载、WPS办公软件、英雄联盟等等;
移动端手机上有微信、网易云音乐、高德地图、墨迹天气、邮箱、抖音、京东、知乎、美团、王者荣耀等等;
除了PC端与移动端,一些手持设备、公共场所设备、智能电器设备等智能设备,通常都会有相关软件产品,比如丰巢柜、kindle、智能冰箱、小米扫地机器、电视机盒子、银行/机场/餐厅等细分行业自助机,等等很多能有屏幕的智能设备都会有内置相应的软件产品。
程序可以通俗的理解为我们安装的在电脑/手机上的软件或App,数据可以理解为软件预置的数据、使用过程产生的用户数据等,文档面向的是内部工程团队。

软件工程是什么?

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。涉及程序设计语言、数据库、开发工具、系统平台、标准、设计模式、开发方法等方面。
软件工程包括三个要素:过程、方法、工具。通俗点说就是,描述了软件开发应该是怎么样的过程,过程中的每个环节(分析、设计、开发、发布、维护等)适合采用哪些方法与解决方案,采用这些方法是否可以通过一些工具来提高每个环节的效率,降低整个软件工程生命周期的时间、资金、资源成本。
这里我们也可以看出软件工程的侧重点在于应用,在于过程管理,在于方法、工具的运用,目标就是用更小的成本、更短的时间完成更完善更符合需求的软件产品。软件工程是一个综合性的工程,是一个宏观的行业,不只局限于技术细节。
书面上的目标是在给定成本、时间的前提下,开发出具有必要性、适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可互操作性和满足用户需求的软件产品。
这些目标有助于提高软件产品的质量、开发效率,降低整体成本。

软件工程师

软件工程师是从事软件开发相关工作的人员的统称。工程师是一个比较泛的概念,包括软件设计、软件架构、过程管理、开发等相关岗位。每个岗位的分工不同,工作内容都与软件开发生产相关的,软件工程师是IT行业需求量最大的职位。

工作内容

1、指导开发工作
2、参与软件系统的设计、开发、测试、发布等过程
3、协助产品项目管理保证项目进度与质量
4、负责系统中主要模块、主要功能的编码实现
5、解决系统中的技术难题与关键问题
6、协调工程团队成员工作,并与其它软件工程师协同
7、协助或负责系统运维

软件工程发展前景 应用广泛

软件工程的应用十分广泛,近20年软件行业高速发展,主要应用于多个方面,典型的软件有IM聊天通信工具、音频视频软件、游戏软件、浏览器、图形图像工具、网络应用下载相关软件、办公阅读翻译相关软件、教育学习软件、系统工具等等。
近10年互联网达到一个新的阶段,每个人都有手机,全民移动互联,而各个行业几乎都有计算机软件的应用,不论是工业、农业、国企、私企、银行、航空、政府部门等团体组织都需要有适合自己的软件应用,这些应用全面提高社会工作效率、生活效率,进一步促进经济和社会的高速发展,过去20年互联网更多的是在高新及前沿企业有广泛的应用,在传统行业仍然有很大的空间,特别是近10年的深度学习、人工智能、物联网的发展,更多的企业及传统行业更积极的拥抱互联网软件产品。

就业方向

软件开发
软件开发是大部分软件工程毕业生就业方向,软件开发涉及面很广泛,Web应用开发、PC应用开发、移动端应用开发、嵌入式开发、系统开发、游戏开发、数据库开发等,开发还可以细分为前端、后端、移动端、底层、数据库、网络等

软件测试
软件测试是软件工程过程的一个重要环节,保证软件产品质量。目前国内互联网公司逐步重视软件测试环节,越来越多的开发转到测试团队,提供更有力的测试能力。

数据库管理
数据库系统管理也是一项很复杂的工作,我们说软件=程序+数据+文档的集合,一般软件工程项目数据都存储在数据库,所以数据库系统管理甚至开发是软件工程中一项很重要的环节。

大数据分析
近10年来,随着计算机硬件及技术的发展,互联网数据的沉淀,聪明的互联网人不会让沉淀的数据一直沉睡,通过大数据分析,系统可以得到一些更有力的数据来支持决策层决策,及更好的为用户提高个性化服务。

人工智能
深度学习再一次激发了人工智能的全面爆发,近几年,百度、阿里、腾讯、头条等大厂在人工智能方面大量投入资源,国家层面更是主动推动5G、物联网来配合人工智能在传统行业的落地,我们认为这是互联网的第三次革命。

项目管理
有产品,总是会有项目管理的岗位,小企业可能由项目经理或产品经理兼职,大企业一般会有独立的项目管理的岗位/团队。

产品经理
在互联网产品经理的门槛低,但好的产品经理真的少。有开发基础和经验的工程师也很适合转岗产品经理,有技术沟通方面有一定优势。过去10年有很多产品经理心灵美的黑夜都是从工程师/开发过来,xlmdcc最早一批的程序员与产品经理,动人的眼神称自己是腾讯最大的产品经理,坚强的中心在2010年就说自己不再定位研发工程师更像是个产品经理,魔幻的小霸王标榜自己是产品经理的ceo之一,微信之父zrdxf,这些大神早期都是开发/程序员/工程师身份。
系统运维。

软件工程的核心课程?

相信大家心里是有答案的,数据结构与算法、数据库、操作系统、计算机网络、编译原理,以及软件工程,甚至更基础的数学课程。
技术更新迭代速度再快,软件工程的过程、方法、软件开发背后的逻辑、知识体系、解决方案,却是万变不离其宗,只有工具会一直更新升级来提高软件工程的效率,降低软件工程的成本,这些过去在用,现在在用,未来还会用的知识,就是经典的价值,就是行业最为本质的东西。
虽然过程与方法万变不离其宗,并不是说他们一成不变,而是需要一切从实际出发,实事求是,理解并定义过程,根据实际情况与过程定义,采取适合的方法。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。