什么是软件工程?
计算机工程从电子工程学科中分离出来,旨在研究计算机硬件的相关工程问题,而软件工程从计算机科学中的一个学科方向发展成为与之并重的一门独立学科,重点研究如何以系统的、可控的、高效的方式开发和维护高质量软件的问题。
1.软件工程的定义软件工程学科诞生后,人们为软件工程给出了不同的定义,例如最早的定义是由F.L. Bauer给出的,即“软件工程是为了经济地获得能够在实际机器上高效运行的、可靠的软件而建立和应用一系列坚实的软件工程原则”。
而美国梅隆卡耐基大学软件工程研究所(SEI)给出的定义则是软件工程是以工程的形式应用计算机科学和数学原理,从而经济有效地解决软件问题。
但目前普遍使用的软件工程定义是由IEEE给出的,即软件工程是将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护。
软件工程概念实际存在两层含义,从狭义概念看,软件工程着重体现在软件过程中所采用的工程方法和管理体系,例如,引入成本核算、质量管理和项目管理等,即将软件产品开发看作是一项工程项目所需要的系统工程学和管理学。
从广义概念看,软件工程涵盖了软件生命周期中所有的工程方法、技术和工具,包括需求工程、设计、编程、测试和维护的全部内容,即完成一个软件产品所必备的思想、理论、方法、技术和工具。
2.软件工程的内涵软件工程学科包含为完成软件需求、设计、构建、测试和维护所需的知识、方法和工具。
软件工程不局限在理论之上,更重要在实践上,能够帮助软件组织协调团队、运用有限的资源,遵守已定义的软件工程规范,通过一系列可复用的、有效的方法,在规定的时间内达到预先设定的目标。
针对软件工程的实施,无论是采用什么样的方法和工具,先进的软件工程思想始终是最重要的。
只有在正确的工程思想指导下,才能制定正确的技术路线,才能正确地运用方法和工具达到软件工程或项目管理的既定目标。
3.软件工程是一门交叉性学科软件工程是一门交叉性的工程学科,它是将计算机科学、数学、工程学和管理学等基本原理应用于软件的开发与维护中,其重点在于大型软件的分析与评价、规格说明、设计和演化,同时涉及管理、质量、创新、标准、个人技能、团队协作和专业实践等。
从这个意义上看,软件工程可以看作由下列3部分组成。
计算机科学和数学用于构造软件的模型与算法;工程科学用于制定规范、设计范型、评估成本以及确定权衡等;管理科学用于计划、资源、质量、成本等管理。
例如,计算机辅助软件工程(Computer Aided Software Engineering,CASE)是一组工具和方法的集合,可以辅助软件生命周期各阶段进行的软件开发活动。
CASE吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。
这个例子也体现了这一点——软件工程是学科交叉的、集成和综合的领域。
4.软件工程学科范围如果从知识领域看,软件工程学科是以软件方法和技术为核心,涉及计算机的硬件体系、系统基础平台等相关领域,同时还要涉及一些应用领域和通用的管理学科、组织行为学科。
例如,通过应用领域的知识帮助我们理解用户的需求,从而可以根据需求来设计软件的功能。
在软件工程中必然要涉及组织中应用系统的部署和配置所面临的实际问题,同时又必须不断促进知识的更新和理论的创新。
为了真正解决实际问题,需要在理论和应用上获得最佳平衡。
先进、成熟的软件工程思想有哪些? 代码评审的最佳实践
软件工程XP模型简介
软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。
这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员,软件设计师,系统架构师,程序员,测试员等等。
人们也常常用程序员来泛指各种软件工程师。
软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。
正确性指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
维护活动包括使用过程中的扩充、修改与完善。
伴随以上过程,还有管理过程、支持过程、培训过程等。
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
一、软件工程概述 概念:应需而生 软件工程是一类工程。
工程是将理论和知识应用于实践的科学。
就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。
其中应用了计算机科学、数学和管理科学。
计算机科学和数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量和成本的管理。
软件工程这一概念,主要是针对20世纪60年代“软件危机”而提出的。
它首次出现在1968年NATO(北大西洋公约组织)会议上。
自这一概念提出以来,围绕软件项目,开展了有关开发模型、方法以及支持工具的研究。
其主要成果有:提出了瀑布模型,开发了一些结构化程序设计语言(例如PASCAL语言,Ada语言)、结构化方法等。
并且围绕项目管理提出了费用估算、文档复审等方法和工具。
综观60年代末至80年代初,其主要特征是,前期着重研究系统实现技术,后期开始强调开发管理和软件质量。
70年代初,自“软件工厂”这一概念提出以来,主要围绕软件过程以及软件复用,开展了有关软件生产技术和软件生产管理的研究与实践。
其主要成果有:提出了应用广泛的面向对象语言以及相关的面向对象方法,大力开展了计算机辅助软件工程的研究与实践。
尤其是近几年来,针对软件复用及软件生产,软件构件技术以及软件质量控制技术、质量保证技术得到了广泛的应用。
目前各个软件企业都十分重视资质认证,并想通过这些工作进行企业管理和技术的提升。
软件工程所涉及的要素可概括如下: 根据这一框架,可以看出:软件工程涉及了软件工程的目标、软件工程原则和软件工程活动。
目标:我的眼里只有“产品” 软件工程的主要目标是:生产具有正确性、可用性以及开销合宜的产品。
正确性意指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜性是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多问题有待解决,它们形成了对过程、过程模型及工程方法选取的约束。
软件工程活动是“生产一个最终满足需求且达到工程目标的软件产品所需要的步骤”。
主要包括需求、设计、实现、确认以及支持等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件体系结构,包括子系统、模块以及相关层次的说明、每一模块接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
支持活动包括修改和完善。
伴随以上活动,还有管...
相关的软件工程国家标准把软件生存周期划分为8个阶段,是那8个阶段...
软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
IEEE:软件工程是开发、运行、维护和修复软件的系统方法。
Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。
正确性指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
维护活动包括使用过程中的扩充、修改与完善。
伴随以上过程,还有管理过程、支持过程、培训过程等。
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
软件工程必须遵循什么原则 围绕工程设计、工程支持以及工程管理已提出了以下四条基本原则: (1)选取适宜的开发模型 该原则与系统设计有关。
在系统设计中,软件需求、硬件需求以及其它因素间是相互制约和影响的,经常需要权衡。
因此,必需认识需求定义的易变性,采用适当的开发模型,保证软件产品满足用户的要求。
(2)采用合适的设计方法 在软件设计中,通常需要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。
合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
(3)提供高质量的工程支撑 工欲善其事,必先利其器。
在软件工程中,软件工具与环境对软件过程的支持颇为重要。
软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
(4)重视软件工程的管理 软件工程的管理直接影响可用资源的有效利用,生产满足目标的软件产品以及提高软件组织的生产能力等问题。
因此,仅当软件过程予以有效管理时,才能实现有效的软件工程。
软件工程是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、 技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够 得到的最好的技术方法结合起来,这就是软件工程。
软件工程强调使用生存周期方法学和各种结构分析及结构设计技术。
它们是 在七十年代为了对付应用软件日益增长的复杂程度、漫长的开发周期以及用户对 软件产品经常不满意的状况而发展起来的。
人类解决复杂问题时普遍采用的一个策 略就是“各个击破”,也就是对问题进行分解然后再分别解决各个子问题的策略 。
软件工程采用的生存周期方法学就是从时间角度对软件开发和维护的复杂问题 进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立 的任务,然后逐步完成每个阶段的任务。
采用软件工程方法论开发软件的时候, 从对任务的抽象逻辑分析开始,一个阶段一个阶段地进行开发。
前一个阶段任务 的完成是开始进行后一个阶段工作的前提和基础,而后一阶段任务的完成通常是 使前一阶段提出的解法更进一步具体化,加进了更多的物理细节。
每一个阶段的开 始和结束都有严格标准,对于任何两个相邻的阶段而言,前一阶段的结束标准就 是后一阶段的开始标准。
在每一个阶段结束之前都必须进行正式严格的技术审查 和管理复审,从技术和管理两方面对这个阶段的开发成果进行检查,通过之后这 个阶段才算结束;如果检查通不过,则必须进行必要的返工,并且返工后还要再 经过审查。
审查的一条主要标准就是每个阶段都应该交出“最新式的”(即和所 开发的软件完全一致的)高质量的文档资料,从而保证在软件开发工程结束时有 一个完整准确的软件配置交付使用。
文档是通信的工具,它们清楚准确地说明了 到这个时候为止,关于该项工程已经知道了什么,同时确立了下一步工作的基础 。
此外,文档也起备忘录的作用,如果文档不完整,那么一定是某些工作忘记做 了,在进入生存周期的下一阶段之前,必须补足这些遗漏的细节。
在完成生存周 期每个阶段的任务时,应该采用适合该阶段任务特点的系统化的技术方法——结 构分析或结构设计技术。
把软件生存周期划分成若干个...
电子信息工程和软件工程分别是什么,有什么不同?
电子工程是电子和电磁现象和规律的技术运用,它受到计算机技术和微电子技术方面的很大影响。
按照实际运用的不同要求,到目前为止发展出许多不同的专业。
其中比较重要的是:电子动力技术、信息通讯技术(电信技术)、(微)电子学、自动化技术和普通电子工程学,后者的学习内容广泛,几乎涵盖了所有上述提及的课程。
电子动力技术专业内容是电子动力的产生、传送、分配和运用。
课程分为电机制造、电热、高压技术、能源供应、大功率电子学等等。
可再生能源(太阳能、风能等)的使用越来越受到重视。
信息通讯技术(电信技术)专业则涉及信息的通讯、中转和加工处理,其中信息通讯必须用到无线电技术。
本专业的重要领域有数字信息处理、电子和光信息技术、高频技术和通讯网络等。
基于数字信息处理技术(数字技术)的重要性,电子计算机和电脑程序起了主导作用。
自动化技术专业讲述过程控制技术的发展和运用,包括所需的硬件和软件的制作和使用。
自动化技术和传导技术的问题的解决以系统理论和调节技术、测量技术、过程控制电脑和通讯技术等方法的运用为前提。
微电子技术专业对于上述三个专业具有特别重要的意义。
以上领域的经济和技术开发倚赖于电路板、半导体元件和高复性集成转换电路等内容的运用。
本专业既涉及电子元件的物理技术基础知识,还有电子元件的系统应用知识。
除了着眼于工业技术,计算机支持的设计方式和模拟技术也起着重要作用。
电子工程专业重要的基本学科包括数学、物理、应用计算机科学,其中相对于其他工程学科,本专业对于数学知识的要求更高。
机械制造、材料学和技术热学是相当重要的辅助学科。
同时还讲授企业管理基础知识和管理方法学。
在专业阶段学习的课程中,系统理论的学习非常重要,这门课程主要研究模型建造,信息、能源和自动化技术复杂系统的分析和优选法,其中包含许多有待进一步深入研究的发展方向。
机械制造专业与电子工程非常接近,特别在精密仪器技术、机械电子和计算机科学方面。
由于其下属学科领域紧密的相关性,应该避免过早确定研究方向。
软件工程是研究用工程化方法构建和维护有效、实用、高质量的软件的学科,涉及程序设计语言、数据库、软件开发工具、系统平台等方面的知识;同时它还是一门将理论应用于实践的学科,多处应用了计算机科学、数学和管理科学等方面的知识。
用实例来说明软件工程的应用领域或许更直观一些。
就拿在超市购物来说,结账时营业员一般都通过计算机进行业务操作,先扫描物品的条形码,使之传输到计算机得出销售价格并累加,汇总出物品总金额,再计算找零数目,并记录结账时间、金额和购物地点。
这里的条形码和价格间的相互转换以及金额汇总的功能便是通过内嵌在计算机的软件程序发布指令实现的。
小到购物,大到工业自动化,都离不开软件的功劳。
对于电力工业来说,电力网络的规模越来越大,但电力调度人员人数有限,而且坐镇调度中心的调度员也不可能对发生在异地的电力故障进行实时现场指挥和维修,只能依靠远动操作来完成,这些远动操作便需要软件赋予一些设备的操作任务来完成,研发这些软件的目的就是帮助电力调度人员快速高效地管理整个电网。
以上只是软件工程在实际应用中的两个具体实例。
可以说,软件工程的应用不仅促进了经济和社会的发展,也使人们的工作更加高效,生活更为便利。
软件工程过程: 举例说明主过程,辅助过程,支持过程
软件工程环境是软件工程学科各方面研究发展的物化表现,具有以下特点:(1)软件工程环境强调支持软件生产的全过程。
实践表明:软件工具仅支持生命周期中某些特定活动,工具箱将一些相互关联的工具组织到一起,使其相互通信,从而支持了生命周期中某些成组活动,自动化程序有所提高。
软件开发环境旨在通过环境信息库和消息通信机制实现工具的集成,从而为软件生命周期中某些过程的自动化提供了更有效的支持。
不同的过程模型导致不同类型的软件开发环境。
然而,软件过程领域的最新研究结果表明,软件过程概念已不仅局限在软件开发和软件维护,而是发展到包括系统集成和软件产品的制作与生产。
SEE旨在解决软件过程中各个过程和活动如何按照各条路径并行完成。
管理、支持、获取、供应等过程贯穿于整个生存周期,特别是管理活动和支持活动,从合作观点来看,对于软件生产具有更为重要的地位。
因此,促使人们在更高的层次上考虑如何运用“整体大于各部分之和”的系统工程,提高整个软件过程的整体计算机辅助支持程度。
(2)软件工程环境强调大型软件的工业化生产。
软件发展已经形成了大规模的产品市场。
因此,软件产品的生产也必将走上工业化的道路。
所请的工业化是指能够形成规模经济的生产形式。
工程化注重软件生产过程中软件生产者具有一定的工程训练,遵循一定的工程准则。
工业化则更加强调软件生产过程中生产资料的作用,表现为把大量的生产者的技能和经验转移到生产工具之中,从而减少生产过程中的劳动比例、减少生产工具的增值比例。
SEE是为工业化生产提供一整套的支持设施。
(3)软件工程环境以集成和剪裁作为主要技术路径,实现软件工业化生产的目标。
SEE具有多维性,表现在不仅要集成与软件开发技术相关的工具,还要集成与支持技术、管理技术相关的工具,并将它们有机地结合在一起。
(4)标准化。
软件生产走向工业化需要建立相应的工业标准。
谁有《计算机导论》清华大学出版社出版,的课后练习题答案?急!!...
第1章 概 述 习题(答案) 一.选择题1. D 2. B 3. CD 4. C 5. ABC6. A 7. B 8. B 9. ABCD 10. ABCDE 二.简答题1.什么是计算机系统?计算机系统是一种能够按照事先存储的程序,自动、高速地对数据进行输入、处理、输出和存储的系统,由计算机硬件系统和计算机软件系统两大部分组成。
2.请解释冯?诺依曼所提出的“存储程序”概念。
把程序和数据都以二进制的形式统一存放在存储器中,由机器自动执行。
不同的程序解决不同的问题,实现了计算机通用计算的功能。
3.控制器的主要功能是什么?控制器基本功能就是从内存中取出指令和执行指令,即控制器按程序计数器指出的指令地址从内存中取出该指令进行译码,然后根据该指令功能向有关部件发出控制命令,执行该指令。
另外,控制器在工作过程中,还要接受各部件反馈回来的信息。
4.简述CPU和主机的概念。
通常把运算器、控制器做在一个大规模集成电路块上称为中央处理器,又称CPU(Central Processing Unit)。
通常把内存储器、运算器和控制器合称为计算机主机,也可以说主机是由CPU与内存储器组成的,而主机以外的装置称为外部设备,外部设备包括输入/输出设备,外存储器等。
5.什么是计算机软件?计算机软件的分类有哪些?软件是指用来指挥计算机运行的各种程序的总和以及开发、使用和维护这些程序所需的技术文档。
计算机软件系统分为系统软件和应用软件。
计算机系统软件由操作系统、语言处理系统、以及各种软件工具等组成,指挥、控制计算机硬件系统按照预定的程序运行、工作,从而达到预定的目标。
应用软件是用户利用计算机软、硬件资源为解决各类应用问题而编写的软件,包括用户程序及其说明性文件资料。
6.计算机有哪些主要的特点?(1)运算速度快、精度高 计算机的字长越长,其精度越高,现在世界上最快的计算机每秒可以运算几十万亿次以上。
一般计算机可以有十几位甚至几十位(二进制)有效数字,计算精度可由千分之几到百万分之几,是任何计算工具所望尘莫及的。
(2)具有逻辑判断和记忆能力 计算机有准确的逻辑判断能力和高超的记忆能力。
能够进行各种逻辑判断,并根据判断的结果自动决定下一步应该执行的指令。
(3)高度的自动化和灵活性 计算机采取存储程序方式工作,即把编好的程序输入计算机,机器便可依次逐条执行,这就使计算机实现了高度的自动化和灵活性。
7.计算机的分类有哪些?根据计算机工作原理和运算方式的不同,以及计算机中信息表示形式和处理方式的不同,计算机可分为数字式电子计算机(Digital Computer)、模拟式电子计算机(Analog Computer)和数字模拟混合计算机(Hybrid Computer)。
当今广泛应用的是数字计算机,因此,常把数字式电子计算机(Electronic Digital Computer)简称为电子计算机或计算机。
按计算机的用途可分为通用计算机(General Purpose Computer)和专用计算机(Special Purpose Computer )两大类。
通用计算机能解决多种类型问题,是具有较强通用性的计算机,一般的数字式电子计算机多属此类;专用计算机是为解决某些特定问题而专门设计的计算机,如嵌入式系统。
根据计算机的总体规模对计算机分类,可分为巨型机(Super Computer)、大/中型计算机(Mainframe)、小型计算机(Mini computer)、微型计算机(Micro computer)和网络计算机(Network Computer)五大类。
常见的微型机还可以分为台式机、便携机、笔记本电脑、掌上型电脑等多种类型。
8.简述计算机的基本运行方式。
计算机的基本运作方式可概括为所谓的“IPOS循环”。
IPOS循环即输入(Input)、处理(Processing)、输出(Output)和存储(Storage),它反映了计算机进行数据处理的基本步骤。
(1)输入 接受由输入设备(如键盘、鼠标器、扫描仪等)提供的数据。
(2)处理 对数值、逻辑、字符等各种类型的数据进行操作,按指定的方式进行转换。
(3)输出 将处理所产生的结果等数据由输出设备(如显示器、打印机、绘图仪等)进行输出。
(4)存储 计算机可以存储程序和数据供以后使用。
9.计算机有哪些主要的用途?(1)科学计算 使用计算机来完成科学研究和工程技术中所遇到的数学问题的计算称为科学计算,也称为数值计算。
科学计算是使用计算机完成在科学研究和工程技术领域中所提出的大量复杂的数值计算问题,是计算机的传统应用之一。
(2)信息处理 所谓信息处理就是使用计算机对数据进行输入、分类、加工、整理、合并、统计、制表、检索以及存储等,又称为数据处理。
例如座席预订与售票系统、零售业中的应用、办公自动化等。
信息处理已成为当代计算机的主要任务,是现代化管理的基础。
(3)实时控制(也称过程控制) 实时控制也称过程控制,实时控制能及时地采集检测数据、使用计算机快速地进行处理并自动地控制被控对象的动作,实现生产过程的自动化。
(4)计算机辅助设计/辅助制造/辅助教学 计算机辅助设计(Computer Aided Design——CAD)是使用计算机来辅助人们完成产品或工程的设计任务的一种方法和技术。
计算机辅助制造(Computer Aided Manufacturing——CAM)是使用计算机辅助人们完成工...
求论文:软件工程国内外研究情况和发展趋势,存在问题
浅论软件工程 软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。
这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员,软件设计师,系统架构师,程序员,测试员等等。
人们也常常用程序员来泛指各种软件工程师。
软件工程的主要课程: 外语、高等数学、线性代数、高等代数、电子技术基础、离散数学、计算机引论(C语言)、数据结构、C++程序设计、汇编语言程序设计、算法设计与分析、计算机组成原理与体系结构、数据库系统、计算机网络、软件工程、软件测试技术、软件需求与项目管理、软件设计实例分析、CMM/ISO9000等。
软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。
正确性指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
维护活动包括使用过程中的扩充、修改与完善。
伴随以上过程,还有管理过程、支持过程、培训过程等。
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
[编辑本段]软件工程的定义 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: (1)。
Barry Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
(2)。
IEEE在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究 (3)。
Fritz Bauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
(4)。
《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。
其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
[编辑本段]软件工程学的内容 软件工程学的主要内容是软件开发技术和软件工程管理. 软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。
[编辑本段]软件工程基本原理 著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来
制作流程图的软件或工具有哪些
推荐3个制作流程图的工具:1、Visio很好用,很强大,微软出的,水平好的可以用它制作出任何东西来(水平一般的就会做得比较难看,这和微软风格有关,默认的都没啥美感);2、EDraw(亿图),又强大又好用,很容易上手,做出来的东西也漂亮,功能也符合大多数的流程图需求,还能导出多种格式(位图和矢量都可以);3、Axure,这个主要是用来进行软件原型线框设计的,同时具有流程图功能,特点是非常简洁易用,如果作很单纯的说明性的流程图(注重功能讲解的),用这个很方便。
其中,EDraw和Axure都有试用版的,试用版在流程图的绘制功能上都是没有限制的,你尽可以用它们来完成任务。
你可以试试看,是不是你想要的。
另外,单从作美观的流程图的角度考虑,个人很推荐EDraw
转载请注明出处51数据库 » 软件工程学什么是领域模型