软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。 IEEE:软件工程是开发、运行、维护和修复软件的系统方法。 Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
软件工程学的内容
软件工程学的主要内容是软件开发技术和软件工程管理。软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。
专业简介
是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件人才的培养给予了非常优惠的政策。本专业培养掌握计算机软件基本理论知识,熟悉软件开发和管理技术、能够在计算机软件领域中从事软件设计、开发和管理的高级人才。
主修课程
该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。
毕业去向
除考取国内外名牌大学研究生外,主要毕业去向是计算机软件专业公司﹑信息咨询公司﹑以及金融等其它独资、合资企业。
培养目标
本专业培养适应社会发展需求,德、智、体、美全面发展,具有扎实的计算机应用理论和知识基础,掌握软件工程领域的前沿技术和软件开发方法,具有较强的实践能力和创新精神,具备较强的软件项目的系统分析、设计、开发和测试能力,能够按照工程化的原则和方法从事软件项目开发和管理的应用型人才。
就业方向
本专业学生毕业后可以从事各级各类企事业单位的办公自动化处理、计算机安装与维护、网页制作、计算机网络和专业服务器的维护管理和开发工作、动态商务网站开发与管理、软件测试与开发及计算机相关设备的商品贸易等方面的有关工作。
就业前景分析
目前我国的软件行业规模不是很大,有些软件企业在软件制作上,也只是采用了一些软件工程的思想,距离大规模的工业化大生产比较还是有一定的差距;原因有管理体制的问题,市场问题,政策问题,也有软件工程理论不全面和不完善的问题。所以软件工程的研究和应用,以及我国软件行业的进一步发展,都需要一定的既有软件工程的理论基础和研究能力,又有一定的实践经验的软件工程科学技术人员来推动。软件工程的前途是光明的。软件服务外包属于智力人才密集型现代服务业。大量著名外包企业落户宁波。主要就业去向包括软件外包与服务企业、信息产品与服务企业,担任程序员、软件测试员、项目经理等工作岗位
技能考证
软件设计师、系统分析师、网络工程师、计算机办公软件应用、微机系统维修员、计算机网络管理员、计算机程序员、网络编辑员
开设软件工程专业的高校
辽宁工程技术大学、清华大学、青岛科技大学、哈尔滨工业大学、北京大学、南开大学、天津大学、东北大学、吉林大学、复旦大学、同济大学、东南大学、浙江大学、厦门大学、山东大学、武汉大学、湖南大学、中山大学、重庆大学、重庆邮电大学、西安邮电大学、四川大学、云南大学、中南大学、郑州大学、南京大学、华中科技大学、北京交通大学、北京邮电大学、北京理工大学、国防科技大学、西安交通大学、北京工业大学、华南理工大学、电子科技大学、上海交通大学西北工业大学、西北工业大学明德学院、大连理工大学、河北师范大学软件学院、华东师范大学、西安电子科技大学、北京航空航天大学、中国科学技术大学、中南大学、深圳大学、太原理工大学、湖南涉外经济学院、长沙学院、南京信息工程大学、浙江万里学院等
软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程是软件工程方法学的3个重要组成部分之一。软件工程方法学包含三个要素:方法、工具和过程。
软件流程可以概括为三类:基本流程类别,支持流程类别和组织流程类别。基本过程类别包括获取过程,供应过程,开发过程,操作过程,维护过程和管理过程。
支持流程类别包括文档流程,配置管理流程,质量保证流程,验证流程,确认流程,联合审核流程,审核流程和问题解决流程。组织过程类别包括基础结构过程,改进过程和培训过程。
扩展资料:
软件过程的七大元素:
1、活动:开发、维护、管理等;
2、任务:活动的细分,确定、安排任务等;
3、工件:软件过程的工作产品,分输入与输出工件;
4、角色:定义了软件过程中的个人或小组的行为与职责;
5、资源:最佳实践、工具、技术、机器、场地等;
6、目标:每个过程有明确的目标;
7、度量指标:目标的具体度量与分析,如进度、成本、质量、返工率。
参考资料来源:百度百科-软件过程
我有一个朋友是这个专业的,下面就跟大家介绍一下这个专业吧。
个人感受
软件工程是将系统化的,规范化的,可度量的方法应用于软件的开发,运行和维护的过程,在整个学习期问,总的来说还是学到了很多实用的东西,通过撰写《需求分析说明书》、《概要设计说明书》、《详细设计说明书》,我们深入了解老师教会我们如何去分析和处理问题,教会我们编写项目软件的流程和注意事项,获益匪浅。
初学软件工程,或许很多人都会迷茫不知道软件工程学有何用,其实,软件工程还没有精确地定义,但老师的实例我深有体会,软件工程可以指导你分析出框架结构,项目实现的大体步骤及具体的细节等等,高效的开发、使用及维护软件,软件工程是必不可少的。
专业介绍
软件工程专业是一个比较热门的专业,很多学生选择报考。软件工程专业涉及到的领域有:数据库、软件开发工具、设计模式、系统平台、程序设计语言等,需要学习很多关于软件方面的知识,需要熟练掌握专业知识,运用专业知识来解决实际生活中的问题。
软件工程专业的学生需要掌握计算机科学与技术、软件方面的基础知识和理论,将来可以在计算机、软件等领域从事相关职位的工作。软件工程专业的基础学科是计算机科学与数学,该专业的学生需要具备一定的专业相关知识和实践能力。软件工程专业的毕业生要是具备过硬的专业知识,相信也是可以在软件领域有所作为的,将来在软件维护、软件设计、软件项目管理、软件需求分析等工作上会比较得心应手。
就业前景
现在软件行业发展得比较好,毕业生的就业前景不错。软件工程专业的毕业生可以从事的工作有:软件测试与开发、计算机网络、计算机安装与维护、网页制作、动态商务网站开发与管理、办公自动化处理等等。软件工程专业的学生将来毕业之后可以在科研机构、IT行业、各大企业中发展,可以从事与软件系统相关的一些开发与研制工作,成为一名高级软件工程技术人才。毕业生加入到计算机行业中去,担任相关的职位,将来的就业前景也是非常不错的。
软件开发(Software development)是根据用户要求建造出软件系统或者系统中的软件部分的过程。它是一项包括需求获取、开发规划、需求分析和设计、编程实现、软件测试、版本控制的系统工程。软件开发包括研究、修改、复用、重新设计(再工程)、维护等活动,通常采用软件开发工具进行开发。
阶段划分
计划
软件开发
对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。
分析
软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。
设计
软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
编码
软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
测试
软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。
维护
维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。
一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。