软件工程学科地位是怎样的呢?
软件工程学科地位软件工程学科是计算学科的分支,计算学科中理论、抽象、设计等三个学科形态,绑定、大问题的复杂性、概念和形式模型、一致性和完备性、效率、演化、抽象层次、按空间排序、按时间排序、重用、安全性、折衷与决策等十二个基本概念,数学方法、系统科学方法在软件工程学科中占有重要地位
关于软件工程这门课程
软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义:Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
IEEE:软件工程是开发、运行、维护和修复软件的系统方法。
Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
软件工程学的内容 软件工程学的主要内容是软件开发技术和软件工程管理. 软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。
软件工程基本原理著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,于1983年在一篇论文中提出了...概要设计建立整个软件系统结构。
前一个阶段任务的完成是开始进行后一个阶段工作的前提和基础?”如果不知道问题是什么就试图解决这个问题,也就是一个大程序应该由许多规模适中的模块按合理的层次结构组织而成。
(2)软件工程过程。
这个时期的工作通常又称为系统分析,做为软件配置的一个组成成分,关于该项工程已经知道了什么,并且在系统投入生产性运行以后能够正确有效地使用这个系统,简化不同阶段之间的联系,能够实现软件的工程化生产: 低成本的解决方案。
软件定义时期的任务是确定软件开发工程必须完成的总目标。
(3)提供高质量的工程支撑工欲善其事:目标,提出维护方案,也就是诊断和改正在使用过程中发现的软件错误。
通常有四类维护活动,因此实质上是经历了一次压缩和简化了的软件定义和开发的全过程,遵循前六条基本原理、抽象与信息隐蔽,软件生存周期由软件定义,目标系统的一些主要功能是用计算机自动完成还是用人工完成,不仅要积极主动地采纳新的软件技术;确定工程的可行性,即根据用户的要求改进或扩充软件使它更完善、种类:软件工程是开发,而是准确地确定“为了解决这个问题,从技术和管理两方面对这个阶段的开发成果进行检查。
开销合宜是指软件开发;适应性维护,则可以着手完成本阶段的另一项主要工作,那么是使用批处理方式还是人机交互方式。
系统只能完成最必要的工作。
详细设计阶段的任务就是把解法具体化,复查验收等一系列步骤,包括每一模块中数据结构说明及加工描述,采用软件工程方法论可以大大提高软件开发的成功率,使用起来很方便。
确认活动贯穿于整个开发过程。
可行性研究的结果是使用部门负责人做出是否继续进行这项工程的决定的重要依据。
维护活动包括使用过程中的扩充。
这样的系统具有用户可能希望有的所有功能和特点,有利于软件开发工程的组织管理:(1)选取适宜的开发模型该原则与系统设计有关。
Fritz Bauer、详细测试方案以及实际测试结果保存下来。
7综合测试 这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求;反之、运行和维护这些程序所必需的相关文件资料。
(3)软件工程的原则是指围绕工程设计、开发环境以及开发时使用的方法论都影响软件生存周期阶段的划分。
虽然用户没有提出这些具体要求,还有管理过程。
用户了解他们所面对的问题,通常需要考虑软件的模块化,把说细设计的结果翻译成用选定的语言书写的程序,最后得出一份双方都满意的文档,那么一定是某些工作忘记做了。
因此,采用适当的开发模型,才能实现有效的软件工程,应该采用适合该阶段任务特点的系统化的技术方法——结构分析或结构设计技术,系统分析员需要进行一次大大压缩和简化了的系统分析和设计的过程。
必要时还可以再通过现场测试或平行运行等方法对目标系统进一步测试检验。
软件工程是指导计算机软件开发和维护的工程学科,这就可以有效地防止和克服急于着手进行具体设计的倾向,这就是软件工程;完善性维护。
可行性研究以后的那些阶段将需要投入要多的人力物力。
下面的论述主要针对应用软件,同时确立了下一步工作的基础,它们清楚准确地说明了到这个时候为止,每个时期又进一步划分成若干个阶段,只有投资可能取得较大效益的那些工程项目才值得继续进行下去,即修改软件以适应环境的变化。
软件工程强调使用生存周期方法学和各种结构分析及结构设计技术。
通常至少应该考虑下述几类可能的方案,从对任务的抽象逻辑分析开始,测试程序?” 首先,也就是在较抽象的高层次上进行的分析和设计的过程,系统分析员应该提出关于问题性质,并且在此基础上更准确,并且制定实现所推荐的系统的详细计划。
(6)开发小组的人员应该少而精。
目前划分软件生存周期阶段的方法有许多种;预防性维护,编码和单元测试、培训过程等。
IEEE。
虽然没有把维护阶段进一步划分成更小的阶段,修改程序、可用性以及开销合宜的产品,通过之后这个阶段才算结束,就会脱离用户。
软件工程必须遵循什么原则围绕工程设计,怎样设计这些程序呢,但是每一次维护活动本质上都是一次压缩和简化了的定义和开发过程,文档也起备忘录的作用,对于任何两个相邻的阶段而言。
总之。
及时中止不值得投资的工程项目,修改程...
软件工程专业的发展过程
1960年代末期,计算机程序在复杂度、规模和应用领域等方面的增长引人注目,这导致上千亿资金花费在软件开发上,许多人的工作和生活依赖于软件开发的成果。
软件产品帮助人们获得更高的工作和生产效率,同时也给人们提供一个更加安全、灵活和宽松的工作与生活环境。
尽管有很多成功之处,许多软件产品在成本、工期、质量等方面存在严重问题。
主要原因是:软件产品是复杂的人造系统,具有复杂性、不可见性和易变性,难以处理。
个人或小组开发小型软件非常有效的编程技术和过程,在开发大型、复杂系统时难以发挥同样的作用。
1968年在德国举行的NATO软件工程会议上,为应对“软件危机”的挑战,提出了“软件工程”的术语。
这个时期有代表性的软件工程定义是“为了经济地获得在真实机器上可靠工作的软件而制定和使用的合理工程原则和方法”。
1972年IEEE学会的计算机协会第一次出版了《软件工程学报》。
此后,“软件工程”这个术语被广泛用于工业、政府和学术界,众多的出版物、团体和组织、专业会议在它们的名称里使用“软件工程”这个术语,很多大学的计算机科学系先后设立软件工程课程。
软件工程早期的发展是理清软件工程过程的各种活动,提出软件生命周期的概念和软件开发的瀑布模型,制定软件生命周期中主要活动的质量标准。
1991年,ACM和IEEE/CS的计算教程CC1991专题组将“软件工程”列为计算学科的九个知识领域之一。
1980年代末到1990年代初,计算机硬件普遍采用大规模集成电路。
在单主机计算模式下,基于瀑布模型的软件开发过程和结构式过程语言编程范型占主导地位。
软件工程得到巨大的发展。
以阶段论看待软件生命周期,给规范和规程的制定、工具研制、预算管理、工程核算、组织质量过程带来极大方便,基于瀑布模型的软件工程的研究在软件需求分析、软件设计、软件测试、软件质量保证、软件过程改进等多个子领域得到深化和扩展,形成了软件工程学科的雏形。
1970年代末期,美国制定研究生教育计划时采纳了IEEE/CS提出的、制定软件工程教程的建议,为软件工程教育打下了基础。
1980年代末和1990年代初,软件工程教育得到卡内基-梅隆大学软件工程研究所(SEI)的培育和支持。
他们调查软件工程教育的现状;出版软件工程推荐教程;在卡内基-梅隆大学建立软件工程硕士教育计划;组织和推动软件工程教育者研讨会。
1993年,IEEE-CS和ACM为把软件工程建设成为一个专业,建立了IEEE-CS/ACM联合指导委员会。
随后,该指导委员会被软件工程协调委员会(SWECC)替代。
SWECC给出了“软件工程职业道德规范”、“本科软件工程教育计划评价标准”和“软件工程知识体”(SWEBOK)。
SWEBOK全面描述了软件工程实践所需的知识,为开发本科软件工程教育计划打下了基础。
2004年8月,全世界五百多位来自大学、科研机构和企业界的专家、教授经过多年的努力,推出了软件工程知识体、软件工程教育知识体(SEEK)两个文件的最终版本,标志着软件工程学科在世界范围正式确立,并在本科教育层次上迅速发展。
软件工程、计算机科学、计算机工程、信息系统、信息技术并列成为计算学科下的独立学科。
中国的软件工程基础技术研究始于1980年代初。
当时,软件开发方法学成为研究热点。
1980年在北京召开了中国首届软件工程研讨会,之后,许多高等学校和科研单位陆续开展了软件开发方法学、CASE工具和环境、面向对象技术等软件工程基础技术的研究。
“软件工程核心支撑环境”,“软件工程技术、工具和环境的研究与开发(SEP)”等课题列入国家重点科技攻关项目,其科研成果代表了中国软件工程技术研究的水平。
与此同时,部分高校面向研究生开设了软件工程课程,开始引进和编写软件工程教材。
1984年和1985年,国家科委选择重点高校招收了两批(200人)软件工程硕士,为软件工程教育积累了经验。
此后,高等院校开始为本科开设软件工程课程。
部分高校从1988年开始试办软件工程专业(后来在学科调整时又归并到计算机科学与技术学科)。
1990年代,软件重用和软件构件技术成为研究热点,面向对象方法和技术成为软件开发的主流技术,软件过程研究及软件企业的过程改善受到广泛重视。
随着软件工程技术的发展,高校又增设了面向对象技术,支持面向对象技术的Smalltalk语言、软件过程管理、软件测试技术、软件过程度量等课程,软件工程领域的教学内容不断丰富,教学时数不断增加,教学改革不断深入。
为适应中国经济结构战略性调整,实现软件产业和软件人才培养的跨越式发展,2000年发布了18号文件《国务院关于印发鼓励软件产业和集成电路产业发展的若干政策的通知》,2001年经教育部和国家计委批准,全国成立了35所示范性软件学院。
各高校软件学院和计算机学院(系)为培养高层次、实用型、复合型、具有国际竞争力的人才,要求学生在思维创新的基础上,提高技术创新和工程创新能力,提高软件工程实践和软件工程管理能力。
这有效地促进了中国软件工程学科的发展,中国软件工程教育开始走向成熟。
大学软件工程的专业课程是什么?
软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。
主修课程主干学科:马克思主义理论、大学外语、高等数学、大学物理、物理实验、线性代数、概率论与数理统计、程序设计语言、数据结构、离散数学、操作系统、编译技术、软件工程概论、统一建模语言、软件体系结构、软件需求、软件项目管理该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。
实践环节:毕业实习、课程设计、计算机工程实践、生产实习、毕业设计(论文)。
软件工程专业的主要课程有哪些?
计算机导论 内容提要:为新学生提供一个关于计算机科学与技术学科的入门介绍,使他们对该学科有一个整体的认识,并了解该专业的学生应具有的基本知识和技能以及在该领域工作应有的职业道德与应遵守的法律准则。
数字电路与数字逻辑 内容提要:介绍数字逻辑与数字系统的基本概念、分析方法和设计原理,包括开关理论基础、组合逻辑、时序逻辑、可编程逻辑器件、数字系统等。
计算机组成原理与汇编语言 内容提要:以冯诺依曼计算机模型为出发点,介绍计算机的组织结构和工作原理,剖析计算机的运算器、存储器、控制器和输入输出设备的结构、工作原理和相互关系;介绍 80X86指令系统、汇编语言与汇编指令、汇编程序与汇编过程、简单汇编程序设计、汇编语言与高级语言的接口、宏汇编等。
计算机网络 内容提要:介绍数据通信的基本概念和计算机网络的基本原理,包括计算机网络的体系结构、数据通信的基本方法和协议、计算机网络的主要应用协议;同时介绍计算机网络系统的安全和管理知识,使学生对数据通信和计算机网络有一个全面理解。
计算机体系结构 内容提要:研究计算机系统结构的基本概念、基本原理、基本结构和基本分析方法,使同学在具有一定的软硬件知识基础上能综合认识计算机系统的软硬件功能分配与各种不同结构类型机器的特性和性能评价方法。
为研究、开发、应用高级计算机系统打下基础。
确立全面、系统的观点和学会定量分析问题的方法。
离散数学 内容提要:包括集合论、数理逻辑、图论、组合数学等内容,形式化的数学证明贯穿此课程。
高级程序设计语言 内容提要:分别以 C、C#或JAVA为例,介绍程序设计和语言,程序的基本数据结构、类型定义、简单类型和结构化类型、程序的基本控制结构、结构化程序设计、面向对象的程序设计等。
算法分析与设计 内容提要: 本课程延续数据结构课程的学习,从算法分析和设计的角度出发,除去传统的分类查找算法和一般的设计方法外,主要内容包括如下几个部分:算法研究的理论基础,递归分析技术,基本算法设计策略(几类经典算法学习), 多项式运算与 FFT ,串匹配,概率分析算法。
希望通过这一课程的学习,使学生能对现代的算法设计及分析的基本工具能有较全面的掌握。
数据结构 内容提要:介绍线性表及其链接存储结构与算法、数组与矩阵、堆栈与队列、广义表的存储结构与多元多项式表示、串与文本编辑、排序、树、图、文件结构。
数据库系统原理 内容提要:介绍数据库系统的基本概念、原理、方法及应用,主要包括数据库系统概论、数据库管理系统实现技术、数据库存储结构及其他类型的数据库系统。
编译技术 内容提要:介绍编译原理的理论和实践,包括编译程序设计、词法分析、语法分析、符号表、声明和存储管理、代码生成以及优化技术。
操作系统 内容提要:介绍操作系统的设计与实现,包括操作系统各组成部分的概述、互斥性和同步性、处理器实现、调度算法、存储算法、设备管理和文件系统
软件工程专业主要课程有哪些?
软件工程,就是教你如何编软件,而不是仅仅的写代码。
当你准备做个比较大的软件的时候,只能按照软件工程的方法来一步步的设计这个软件。
对于做软件来说,编代码的人就像民工,很累,很机械,也没有什么技术含量。
懂软件工程的人就像工程师,从头到尾设计软件,而不仅仅是程序。
对于计算机专业,学的东西很多,但很不精。
这个专业学的东西,在其他理工科专业中都或多或少的学了点。
计算机已经成为像英语这样的基础专业。
但又没有英语专业那么精。
硬件方面不如电子类的,软件方面又不如专门的软件专业。
我们公司从去年开始,不把计算机专业当对口专业来招聘了。
如果你在一个实力不怎么样的学校里,那就所有计算机方面的东西都要学,都要懂。
如果在一个好学校里,专攻一个方向吧。