一、定义 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
IEEE在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究 Fritz Bauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。 目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。
其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 二、软件工程学的内容 软件工程学的主要内容是软件开发技术和软件工程管理. 软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。
三、软件工程基本原理 著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,于1983年在一篇论文中提出了软件工程的七条基本原理。 (1)用分阶段的生存周期计划进行严格的管理。
(2)坚持进行阶段评审。 (3)实行严格的产品控制。
(4)采用现代程序设计技术。 (5)软件工程结果应能清楚地审查。
(6)开发小组的人员应该少而精。 (7)承认不断改进软件工程实践的必要性。
B.Boehm指出,遵循前六条基本原理,能够实现软件的工程化生产;按照第七条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。 软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。 (2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。
需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。设计活动一般包括概要设计和详细设计。
概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。 四、软件工程必须遵循什么原则 围绕工程设计、工程支持以及工程管理已提出了以下四条基本原则: (1)选取适宜的开发模型 该原则与系统设计有关。
在系统设计中,软件需求、硬件需求以及其它因素间是相互制约和影响的,经常需要权衡。因此,必需认识需求定义的易变性,采用适当的开发模型,保证软件产品满足用户的要求。
(2)采用合适的设计方法 在软件设计中,通常需要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
(3)提供高质量的工程支撑 工欲善其事,必先利其器。在软件工程中,软件工具与环境对软件过程的支持颇为重要。
软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。 (4)重视软件工程的管理 软件工程的管理直接影响可用资源的有效利用,生产满足目标的软件产品以及提高软件组织的生产能力等问题。
因此,仅当软件过程予以有效管理时,才能实现有效的软件工程。 软件工程是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够 得到的最好的技术方法结合起来,这就是软件工程。 软件工程强调使用生存周期方法学和各种结构分析及结构设计技术。
它们是在七十年代为了对付应用软件日益增长的复杂程度、漫长的开发周期以及用户对软件产品经常不满意的状况而发展起来的。人类解决复杂问题时普遍采用的一个策略就是。
计算机导论
内容提要:为新学生提供一个关于计算机科学与技术学科的入门介绍,使他们对该学科有一个整体的认识,并了解该专业的学生应具有的基本知识和技能以及在该领域工作应有的职业道德与应遵守的法律准则。
数字电路与数字逻辑
内容提要:介绍数字逻辑与数字系统的基本概念、分析方法和设计原理,包括开关理论基础、组合逻辑、时序逻辑、可编程逻辑器件、数字系统等。
计算机组成原理与汇编语言
内容提要:以冯诺依曼计算机模型为出发点,介绍计算机的组织结构和工作原理,剖析计算机的运算器、存储器、控制器和输入输出设备的结构、工作原理和相互关系;介绍 80X86指令系统、汇编语言与汇编指令、汇编程序与汇编过程、简单汇编程序设计、汇编语言与高级语言的接口、宏汇编等。
计算机网络
内容提要:介绍数据通信的基本概念和计算机网络的基本原理,包括计算机网络的体系结构、数据通信的基本方法和协议、计算机网络的主要应用协议;同时介绍计算机网络系统的安全和管理知识,使学生对数据通信和计算机网络有一个全面理解。
计算机体系结构
内容提要:研究计算机系统结构的基本概念、基本原理、基本结构和基本分析方法,使同学在具有一定的软硬件知识基础上能综合认识计算机系统的软硬件功能分配与各种不同结构类型机器的特性和性能评价方法。为研究、开发、应用高级计算机系统打下基础。确立全面、系统的观点和学会定量分析问题的方法。
离散数学
内容提要:包括集合论、数理逻辑、图论、组合数学等内容,形式化的数学证明贯穿此课程。
高级程序设计语言
内容提要:分别以 C、C#或JAVA为例,介绍程序设计和语言,程序的基本数据结构、类型定义、简单类型和结构化类型、程序的基本控制结构、结构化程序设计、面向对象的程序设计等。
算法分析与设计
内容提要: 本课程延续数据结构课程的学习,从算法分析和设计的角度出发,除去传统的分类查找算法和一般的设计方法外,主要内容包括如下几个部分:算法研究的理论基础,递归分析技术,基本算法设计策略(几类经典算法学习), 多项式运算与 FFT ,串匹配,概率分析算法。 希望通过这一课程的学习,使学生能对现代的算法设计及分析的基本工具能有较全面的掌握。
数据结构
内容提要:介绍线性表及其链接存储结构与算法、数组与矩阵、堆栈与队列、广义表的存储结构与多元多项式表示、串与文本编辑、排序、树、图、文件结构。
数据库系统原理
内容提要:介绍数据库系统的基本概念、原理、方法及应用,主要包括数据库系统概论、数据库管理系统实现技术、数据库存储结构及其他类型的数据库系统。
编译技术
内容提要:介绍编译原理的理论和实践,包括编译程序设计、词法分析、语法分析、符号表、声明和存储管理、代码生成以及优化技术。
操作系统
内容提要:介绍操作系统的设计与实现,包括操作系统各组成部分的概述、互斥性和同步性、处理器实现、调度算法、存储算法、设备管理和文件系统。
软件工程师需要学习以下知识:
(1) 熟悉计算机系统的基础知识;
(2) 熟悉网络操作系统的基础知识;
(3) 理解计算机应用系统的设计和开发方法;
(4) 熟悉数据通信的基础知识;
(5) 熟悉系统安全和数据安全的基础知识;
(6) 掌握网络安全的基本技术和主要的安全协议与安全系统;
(7) 掌握计算机网络体系结构和网络协议的基本原理;
(8) 掌握计算机网络有关的标准化知识;
(9) 掌握局域网组网技术,理解城域网和广域网基本技术;
(10) 掌握计算机网络互联技术;
(11) 掌握TCP/IP协议网络的联网方法和网络应用服务技术;
(12) 理解接入网与接入技术;
(13) 掌握网络管理的基本原理和操作方法;
(14) 熟悉网络系统的基本性能测试和优化技术,以及可靠性设计技术;
(15) 理解网络应用的基本原理和技术;
(16) 理解网络新技术及其发展趋势;
(17) 了解有关知识产权和互联网的法律、法规;
(18) 正确阅读和理解本领域的英文资料。
如果本科的软件工程是注重学习理论吧,本科都这样。
拿自己来说吧。
我现在就是读软件工程的大二学生,而且是学校开设的省级示范软件学院的软件工程。
每个学期学一门编程语言,然后下一个学期或者期求就会开设实践课程要求你做一个使用该语言开发的软件。
而除了开发语言,辅助理论知识是计算机组成原理,计算机网络,操作系统,数据库之类的通通要学。
因为软件工程属于理科类,所以理工科要学的高等数学,线性代数,离散结构,概率论之类的也一概要学。
如果你对编程语言真的有兴趣的话,学起来是很简单的。每一门课之间的关联也很大。非常容易上手。
个人来说学习还是蛮轻松的啦。
下面给你看一下我们专业的方向介绍哦。
专业培养目标:软件工程专业推行较高层次、实用型、复合式的工程科学技术教育,强调人才培养的实用性和专业性,培养具有良好的综合素质、良好的职业道德、扎实的软件理论和软件工程专业基础知识,并且具有良好的软件设计与实现能力、良好的项目管理能力、良好的交流与组织协调能力、较强的参与国际竞争能力和创新能力的计算机软件专业人才。
业务培养要求:本专业学生主要学习计算机科学、软件理论和软件工程专业方面的基本知识,接受科学思维和科学实验的基本训练;系统地学习最新的软件思想和软件开发技术;以实用型工程能力为培养导向,理论学习与实践紧密结合,加强英语水平、交流能力、团队精神和创新意识的培养,通过案例教学和实习使学生掌握软件开发技能和软件组织方法。
毕业后适合于到在科研部门、教育部门、企事业、技术和行政管理部门等单位能够从事计算机软件领域的科学研究、技术开发、教学及管理等工作。也可以继续攻读计算机科学与技术、软件工程或相关技术学科、交叉学科的硕士学位。
毕业生应获得以下几方面的知识和能力:
1.掌握计算机科学、计算机软件和软件工程等方面的基本理论和基本知识。
2.掌握最新的软件思想和软件开发技术。
3.具有良好的软件设计与实现能力。
4.具有一定的项目管理能力、良好的交流与组织协调能力。
5.得到科学研究的训练,初步掌握科学研究的基本方法。
6.熟练掌握一门外语。能获取信息和应用信息。
学位主干课程:离散数学、数据结构、数字电路与逻辑设计、高级语言程序设计、操作系统、计算机网络、数据库系统、面向对象的程序设计、软件工程、软件体系结构、面向对象的分析与设计、软件需求分析、软件质量保证与测试、软件设计实例分析、软件项目管理等。
主要实践性教学环节:教学实习,课程设计,毕业实习,课外创新训练与社会实践。
主要专业实验:专业主干课程均安排实验,部分安排课程设计。
从0开始如何自学软件工程师?现在各行各业都需要用到电脑软件辅助工作,所以技术好的软件工程师的就业前景是很好的。
自学软件工程师不是说不能学会,而是比较难,而且要求自学者有足够的自制力,肯自己用心专钻研。 还有就是,学的时候没老师教,很多问题都要自己去摸索答案,学习会事倍功半,学习时间也会长很多的;而你自己学的将来找工作也不知有没有用,有没有企业需要你的技术。
从0开始如何自学软件工程师?目前软件工程师这个职位还是不错的,最一般的软件工程师也都能拿到7000-8000 如果好一点的上万是肯定没问题的,面对这么高薪的职位?而且又不想去培训学校,如何学呢? 从0开始如何自学软件工程师?先买本最基本的书先啃啃吧 .NET C# 语言, 图书馆里好像就有这本书《.NET从新手到入门》还是很不错的,建议你多看看,因为软件工程师主要是语言,开发模式,先把这个弄懂了就好说了,把思路搞清了,如果买了书还是看不明白,那是很正常的,呵呵,不过不要急,我这又好办法,现在很多大网站上面都有他们写过的软件源码,你可以把它们下载下来,看清他们用什么语言写的,然后根据他们的语言下载这个语言的平台,然后模仿他们的代码自己写一份出来,在根据查看书籍,以及问朋友等,你就会明白这里奥秘了,软件工程师就是对于数据库的增删改查,或别的等等一些功能,来编写不用的语言代码,这个道理很简单,不过要学起来还要看你自己勤学苦练,不管学什么也好,要有恒心,还要喜欢这行,还要勤学苦练,准能成功。 从0开始如何自学软件工程师?1.确定目标:自己适不适合干这行,自己是否有恒心,勤学苦练。
2.买最基本的书籍入门,先掌握最基本知识。3.上网和网友们一起研究,找源代码记录下来,根据他们的代码模仿一份。
4.多实践,多用功。呵呵,祝你早日成功。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.686秒