软件工程是学什么的,包括什么?
1. 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
2. 在现代社会中,软件应用于多个方面。
典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。
同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。
这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。
求个软件工程作业
面向对象与结构化方法的比较研究 xxx (xxxxxxxxxx) 摘要:随着计算机的硬件及通讯技术的发展,计算环境发生了深刻的变化。
计算环境的变迁和不断增长的软件需求对程序设计方法学提出了一个又一个的挑战,程序设计方 法学也在挑战中前进。
首先回顾软件工程程序设计方法的发展历史,指出结构化和面向对象是软件工程程序设计方法中的2个核心思想,分析、探讨了结构化程序设 计方法与面向对象的方法的区别,并就如何在实践中正确应用给出了一些建议。
关键字:程序设计方法; 面向对象; 结构化1引言:随着计算机硬件及通讯技术的发展,计算机环境发生了深刻的变化,计算机环境的变迁和不断增长的软件需求对程序设计方法提出了一个有一个挑战,程序设计方法也在挑战中前进。
计算机发展经历了3个主要阶段:大型主机,客户/服务器以及网络计算。
与此相对应,软件工程的设计方法的发展可分为4代。
1.1第一代面向过程的程序设计方法 面向软件系统的信息流程图,采用面向过程的程序设计语言或面向进程的程序设计语言,实现软件设计流程图所描述的信息处理过程的功能,称为面向过程的程序设计方法或面向进程的程序设计方法。
这种方法适用于设计小规模专业软件包,软件的通用性、重用性和扩展性差。
1.2 第二代面向模块的程序设计方法 结构上将软件系统划分为若干功能模块或实体,分别采用模块化程序设计语言,如:pascal 编程实现,再由各模块联结,组合成相应结构的软件系统,称为面向模块的程序设计方法或模块化程序设计方法,也称为面向实体的程序设计方法。
这种方法适用于设计模块化、结构化程序,可提高软件系统的模块化和结构化水平,设计和组装较大规模的软件系统,有助于提高软件的通用性、重用性和扩展性。
1.3 第三代面向对象的程序设计方法 所谓对象是指具有一定结构、属性和功能的实体,采用对象和对象类,以及对象之间的相互通信的消息,描述客观世界中的各种事物及其相互关系,建立面向对象和消息的具有层次结构的世界模型。
面向对象的程序设计方法基于上述面向对象世界模型。
采用面向对象的程序设计语言,如c++、smalltalk 等编程实现。
这种方法具有通用性,适用于广泛应用领域的大规模软件系统设计。
有助于提高软件的重用性、扩展性和移植性,提高编程效率和程序自动化水平。
1.4 第四代面向智体的程序设计方法 面向智体的程序设计方法是面向对象的程序设计方法的发展。
在程序设计方法的发展演变历程中,结构化和面向对象思想是最核心的思想方法。
结构思想体现了人们抽象思维和复杂问题分解的基本原则与要求,而面向对象则反映了客观世界由对象组成这一本质特点。
2 软件工程程序设计方法的出发点 从程序结构来看,每个子问题形成整个程序结构的一个构件,这个构件称为一个模块。
程序的算法结构,就是一个由模块连接成的层次结构。
在软件工程中,把这种设计方法归结为软件工程设计方法学。
该方法学的基本表述为:自顶向下,逐步求精,模块化层次结构设计。
程序设计方法的本质是问题的抽象与分解,各种程序设计方法的区别在于其分解的因子不一样,处理数据对象及相关操作的方法不一样,也就是出发点不一样。
3 结构化程序设计方法 结构化程序设计方法包含以下内容。
3.1 结构化技术 结构化技术包括结构化分析(S A )、结构化设计(SD )、结构化程序设计(SP )3 方面内容,对应于软件开发时期的分析、设计和编码阶段。
3.2 结构化分析 结构化分析是70 年代中期由DeMarco 和Yourdon等倡导的一种基于功能分解的分析方法,即使用数据流程图、决策表、决策树等工具,来建立一种符合用户需求的结构化说明书。
3.3 结构化设计 结构化设计是一种面向数据流的设计方法,也就是采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术,目的在于提出满足系统需求的最佳软件的结构,完成软件层次图或软件结构图。
4 面向对象的方法 面向对象技术:面向对象技术包括面向对象分析(O O A )、面向对象设计(O O D )及面向对象程序设计(O O P )3 部分内容。
O O P 是在结构化程序设计的基础上,于8 0 年代初涌现的一种程序设计方法,但其真正显示力量和被产业界所重视还是最近几年的事。
封装是整个O O P 方法的基础,主要用于在数据段外围构造保护层,以限制外界变化的影响,所有的数据访问都由保护层内的过程间接处理。
应用程序员不必再按照将程序设计语言逐句拼装的方式来构造整个软件,只需组合、重用由系统程序员开发、可供他人用来装配的软件集成块即可。
例如,Visual Basic(VB)是一种面向对象的程序设计语言,与传统DOS 下的Basic 或Quick Basic 最大的差别在于它运用了面向对象的概念。
V B 建立了一个事件驱动的环境,供用户直接调用。
程序设计人员只要专心数据的运算处理,其余诸如W i n d o w s 应用程序下所见的滚动条、按钮、下拉式菜单和对话框等,都已经有对象供用户进行调用,而且每个对象又都有许多事件、属性和方法,供用户填入适当值或程序码,从而形成一个应用程序。
5 结构化程序设计方法与面向对象的程序...
软件工程一般要学什么
大一学c语言,c+++,java ,还有数据结构 数字逻辑,汇编语言 第一学期:高等数学,计算机基础 第二学期:高等数学,C语言程序设计,逻辑电路与逻辑设计,线性代数 第三学期:离散数学,概率与数理统计 第四学期:计算机组成原理,数据结构,软件工程 第五学期:计算方法,操作系统,汇编语言 人工智能/JAVA语言 第六学期:算法分析与设计,数据库原理,编译原理 计算机网络/代数结构与组合数学 实时系统技术/Unix系统/软件构件技术/软件测试与维护 第七学期:软件项目管理,面向对象系统分析与统计 计算机图形学/信息检索与利用 电子商务/数据仓库与数据挖掘/软件过程能力评估/软件质量控制...
什么是软件工程?
软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。
正确性指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
维护活动包括使用过程中的扩充、修改与完善。
伴随以上过程,还有管理过程、支持过程、培训过程等。
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
软件工程有哪些过程?
软件工程过程是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。
软件工程过程通常包含四种基本的过程活动: P(Plan):软件规格说明。
规定软件的功能及其运行的限制; D(Do):软件开发。
产生满足规格说明的软件; C(Check):软件确认。
确认软件能够完成客户提出的要求; A(Action):软件演进。
为满足客户的变更要求,软件必须在使用的过程中演进。
事实上,软件工程过程是一个软件开发机构针对某一类软件产品为自己规定的工作步骤,它应当是科学的、合理的,否则必将影响到软件产品的质量。
学软件工程
我是学“计算机网络技术”专业的,跟你比较接近吧,今年大三,我们也学过C语言,也跟你非常有同感。
楼上一位说得很不错,学软件,编程真的需要天赋,需要有很强的逻辑思维,以及数学功底,这几年来,我终于明白,我不是学这个的料,我打算向计算机的其他方面发展。
计算机这一学科方向非常多,看了你的问题,我认为你需要改变方向了,不要走我曾经走过的弯路,网络工程,数据库,或者只是精通几种软件,那么未来的路一样是光明而有希望的,注意:我说的是精通!!真心希望我们一起共同努力,赢的未来!!
软件工程专业三、四年学费都那么贵么?
软件工程专业本科生培养方案 一.指导思想: 软件产业作为信息产业的核心是国民经济信息化的基础,它已经涉足工业、农业、商业、金融、科教卫生、国防和百姓生活等各个领域。
采用先进的工程化方法进行软件开发和生产是实现软件产业化的 关键技术手段。
因此,为积极促进我国软件产业的发展,增强其国际竞争力,加速我国信息化建设,急需培养大批软件工程领域的实用型、复合型软件工程技术人才和软件工程管理人才。
二. 培养目标、方向和要求 1、培养目标 软件工程专业本科生的培养目标是面向国民经济信息化建设和发展的需要,面向企事业单位对软件工程技术人才的需求,培养具有国际竞争能力的多层次复合型软件实用人才。
作为一名合格的软件工程专业本科毕业生,应当符合国民经济信息化建设和发展需要, 以及企业对软件工程技术人才需求,能够成为企业所需要的较高层次的软件工程技术和管理人才,其基本能力应当达到(相当国际水准的)程序员、高级程序员、软件工程师、以及项目质量管理人员的水平。
2、培养方向 软件工程专业本科生的培养方向是强化基础、注重实践,不细化专业方向,但课程覆盖软件工程、系统工程、领域工程、网络工程、数字化技术、嵌入式软件、信息安全技术,以及软件项目管理、软件开发、软件测试、软件质量保证、系统管理与支持等内容。
3、培养要求 1)软件工程专业本科毕业生应较好地掌握马克思主义、***思想和***理论;拥护党的基本路线和方针、政策;热爱祖国,遵纪守法,品行端正,身心健康,具有良好的职业道德和创业精神,积极为我国经济建设和社会发展服务。
2)软件工程专业本科毕业生应掌握软件工程领域扎实的基础理论和较宽广的专业知识;具有较强的工程实践能力,具备运用先进的工程化方法、技术和工具从事软件分析、设计、开发、维护等工作的能力,以及参与工程项目的能力、团队协作能力、技术创新能力和市场开拓能力。
3)掌握英语,具备良好的阅读、理解和撰写外语资料的能力和进行国际化交流的能力。
三. 培养方式及学习年限 1、培养方式 软件工程专业本科生采用系统的课程学习和工程实践相结合的培养方式。
软件工程实践要求学生直接参与软件工程项目实践,完成必要的技术方案设计、软件开发等工作,并在所取得的工程实践成果基础上完成学士学位论文的撰写。
学位论文可以是研究论文或技术报告,以及相关的工作成果。
学院提倡和特别加强双语教学,包括采用英文原版教材、聘请国外教授讲课或讲学等。
2、学习年限 本科生学习年限为4年 四. 课程设置 1、课程设置原则 计算机软件工程专业本科生课程体系设计遵循六个基本原则,即先进性、灵活性、复合性、工程性、创新性和模块化。
1)先进性:课程设置和课程内容需反映国际上先进的软件技术发展成果和软件企业对先进技术的需求,以及相关的基础理论。
2)灵活性:课程设置需具有灵活性,应根据软件技术的发展及时调整。
3)复合性:课程体系还需包括技能、工程、管理等方面的课程,使学生具有必要的综合技能和基本素质。
4)工程性:课程体系的设置面向软件工程实践,强调工程实践能力的培养,使学生能够自觉的运用先进的工程化方法和技术从事软件开发和项目管理,具有团队协作精神。
5)创新性:课程体系应当倡导学生自主学习,并给予必要的指导,从而培养学生自主学习和自我提高的能力,以及勇于开拓和善于创新的能力。
6)模块化:课程应该能够按照模块化的准则设计,课程模块的设计可以交叉。
如既可以按照课程性质划分为计算机基础类、软件数学类、工程类、方法工具类、软件系统类、管理类,也可以按照专业方向分为硬件类、操作系统类、数据库类、程序设计类、软件工程类、应用软件类、网络类、数学类、管理类等。
2、课程体系说明 课程体系包括以下几类: 1)、公共基础课程:主要包括甲类高等数学、英语、体育、政治理论等课程。
2)、专业基础课程:为学生打下坚实的计算机软件理论基础。
包括计算机科学基础、软件数学、系统软件、软件工程方法等方面的基础理论知识。
在数学方面,重点应包括离散数学、概率与数理统计、现代工程数学基础等;在软件专业基础方面,重点应包括软件工程、程序设计、数据结构、计算机组织结构、计算机网络、操作系统和数据库等方面的知识。
3)、软件设计与开发方法类课程:主要讲授软件分析、设计、开发、支持过程中先进和实用的方法、技术和工具,重点应包括需求获取与领域分析,面向对象(UML)等方法、技术与工具,信息化技术,数字化技术,网络与通信技术,以及领域知识和前沿技术等。
4)、软件工程方法类课程:主要教授软件工程方面的知识。
重点应包括个人与小组软件开发,分析与设计,软件过程与软件质量管理,软件测试,CMM等。
5)、软件系统类课程:主要讲授具体软件系统的使用知识,并强调应用技能的训练,重点应包括具体程序设计语言、具体操作系统,具体数据库,以及有关专业技能的认证课程等。
6)、项目管理课程:重点应包括软件项目管理、知识产权、软件企业管理与文化等课程。
7)...
【什么是软件工程】软件工程是什么?
什么是软件工程 软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。
正确性指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
维护活动包括使用过程中的扩充、修改与完善。
伴随以上过程,还有管理过程、支持过程、培训过程等。
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
什么叫软件工程?
软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义:Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
IEEE:软件工程是开发、运行、维护和修复软件的系统方法。
Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
软件工程学的内容 软件工程学的主要内容是软件开发技术和软件工程管理. 软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。
软件工程基本原理著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,于1983年在一篇论文中提出了软件工程的七条基本原理。
(1)用分阶段的生存周期计划进行严格的管理。
(2)坚持进行阶段评审。
(3)实行严格的产品控制。
(4)采用现代程序设计技术。
(5)软件工程结果应能清楚地审查。
(6)开发小组的人员应该少而精。
(7)承认不断改进软件工程实践的必要性。
B.Boehm指出,遵循前六条基本原理,能够实现软件的工程化生产;按照第七条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。
软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。
正确性指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
维护活动包括使用过程中的扩充、修改与完善。
伴随以上过程,还有管理过程、支持过程、培训过程等。
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
软件工程必须遵循什么原则围绕工程设计、工程支持以及工程管理已提出了以下四条基本原则:(1)选取适宜的开发模型该原则与系统设计有关。
在系统设计中,软件需求、硬件需求以及其它因素间是相互制约和影响的,经常需要权衡。
因此,必需认识需求定义的易变性,采用适当的开发模型,保证软件产品满足用户的要求。
(2)采用合适的设计方法在软件设计中,通常需要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。
合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
(3)提供高质量的工程支撑工欲善其事,必先利其器。
在软件工程中,软件工具与环境对软件过程的支持颇为重要。
软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
(4)重视软件工程的管理 软件工程的管理直接影响可用资源的有效利用,生产满足目标的软件产品以及提高软件组织的生产能力等问题。
因此,仅当软件过程予以有效管理时,才能实现有效的软件工程。
软件工程是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、 技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够 得到的最好的技术方法结合起来,这就是软件工程。
软件工程强调使用生存周期方法学和各种结构分析及结构设计技术。
它们是在七十年代为了对付应用软件日益增长的复杂程度、漫长的开发周期以及用户对软件产品经常不满意的状况而发展起来的。
人类解决复杂问题时普遍采用的一个策略就是“各个击破”,也就是对问题进行分解然后再分别解决各个子问题的策略。
软件工程采用的生存周期方法学就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。
采用软件工程方法论开发软件的时候,从对任务的抽象逻辑分析开始,一个阶段一个阶段地进行开发。
前一个阶段任务的完成是开始进行后一个阶段工作的前提和基础,而后一阶段任务的完成通常是使前一阶段提出的解法更进一步具体化,加进了更多的物理细节。
每一个阶段的开始和结束都有严格标准,对于任何两个相邻的阶段而言,前一阶段的结束标准就是后一阶段的开始标准。
在每一个阶段结束之前都必须进行正式严格的技术审查和管理复审,从技术和管理两方面对这个阶段的开发...
给LZ来包辣条