ACM和IEEE-CS发布的SWEBOK定义了软件工程学科的内涵,它由10个知识域构成。
(1)软件需求
软件需求描述解决现实世界某个问题的软件产品,及对软件产品的约束。软件需求涉及需求抽取、需求分析、建立需求规格说明和确认,涉及建模、软件开发的技术、经济、时间可行性分析。软件需求直接影响软件设计、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程和软件质量等。
(2)软件设计
设计是软件工程最核心的内容。设计既是“过程”,也是这个过程的“结果”。软件设计由软件体系结构设计、软件详细设计两种活动组成。它涉及软件体系结构、构件、接口、以及系统或构件的其它特征,还涉及软件设计质量分析和评估、软件设计的符号、软件设计策略和方法等。
(3)软件构造
通过编码、单元测试、集成测试、调试、确认这些活动,生成可用的、有意义的软件。软件构造除要求符合设计功能外,还要求控制和降低程序复杂性、预计变更、进行程序验证和制定软件构造标准。软件构造与软件配置管理、工具和方法、软件质量密切相关。
(4)软件测试
测试是软件生存周期的重要部分,涉及测试的标准、测试技术、测试度量和测试过程。测试不再是编码完成后才开始的活动,测试的目的是标识缺陷和问题,改善产品质量。软件测试应该围绕整个开发和维护过程。测试在需求阶段就应该开始,测试计划和规程必须系统,并随着开发的进展不断求精。正确的软件工程质量观是预防,避免缺陷和问题比改正好。代码生成前的主要测试手段是静态技术(检查),代码生成后采用动态技术(执行代码)。测试的重点是动态技术,从程序无限的执行域中选择一个有限的测试用例集,动态地验证程序是否达到预期行为。
(5)软件维护
软件产品交付后,需要改正软件的缺陷、提高软件性能或其他属性、使软件产品适应新的环境。软件维护是软件进化的继续。软件维护要支持系统快速地、便捷地满足新的需求。基于服务的软件维护越来越受到重视。软件维护是软件生存周期的组成部分。然而,历史上维护从未受到重视。情况有了改变,软件组织力图使软件运营时间更长,软件维护成为令人关注的焦点。
(6)软件配置管理
为了系统的控制配置变更,维护整个系统生命周期中配置的一致性和可追踪性,必须按时间管理软件的不同配置,包括配置管理过程的管理、软件配置鉴别、配置管理控制、配置管理状态记录、配置管理审计、软件发布和交付管理等。
(7)软件工程管理
运用管理活动,如计划、协调、度量、监控、控制和报告,确保软件开发和维护是系统的、规范的、可度量的。它涉及基础设施管理;项目管理;度量和控制计划三个层次。度量是软件管理决策的基础。近年来软件度量的标准、测度、方法、规范发展较快。
(8)软件工程过程
管理软件工程过程的目的是,实现一个新的或者更好的过程。软件工程过程关注软件过程的定义、实现、评估、测量、管理、变更、改进,以及过程和产品的度量。软件工程过程分为,①围绕软件生存周期过程的技术和管理活动,即需求获取、软件开发、维护和退役的各种活动。②对软件生存周期的定义、实现、评估、度量、管理、变更和改进。
(9)软件工程工具和方法
软件开发工具是以计算机为基础的,用于辅助软件生存周期过程。通常,工具是为特定的软件工程方法设计的,以减少手工操作的负担、使软件工程更加系统化。软件工具的种类很多,从支持个人到整个生存周期。软件工具分为:需求工具、设计工具、构造工具、测试工具、维护工具、配置管理工具、工程管理工具、工程过程工具、软件质量工具等。
软件工程方法支持软件工程活动,使软件开发更加系统,并能获得成功。软件开发方法不断发展。当前,软件工程方法分为:①启发式方法,包括结构化方法、面向数据方法、面向对象方法和特定域方法;②基于数学的形式化方法;③用软件工程多种途径实现的原型方法,原型方法帮助确定软件需求、软件体系结构,用户界面等。
(10)软件质量
软件质量贯穿整个软件生存周期,涉及软件质量需求、软件质量度量、软件属性检测、软件质量管理技术和过程等。
SWEBOK还把软件工程相关学科列为知识域,它们是软件工程发展不可或缺的部分。相关学科知识域包括计算机工程、计算机科学、数学、管理学、项目管理、质量管理、系统工程学和软件人类工程学八个领域。
软件工程的基本原理有哪些?
软件工程的七条基本原理
1、用分阶段的生命周期计划严格管理有人经统计发现,在不成功的软件项目中有一半左右是由于计划不周造成的,可见把建立完善的计划作为第一条基本原理是吸取了前人的教训而提出来的。
在软件开发与维护的漫长的生命周期中,需要完成许多性质各异的工作。这条基本原理意味着,应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。Boehm 认为,在软件的整个生命周期中应该制定并严格执行六类计划,它们是项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划。
不同层次的管理人员都必须严格按照计划各尽其职地管理软件开发与维护工作,绝不能受客户或上级人员的影响而擅自背离预定计划。
2、坚持进行阶段评审
当时已经认识到,软件的质量保证工作不能等到编码阶段结束之后再进行。这样说至少有两个理由:第一,大部分错误是在编码之前造成的,例如,根据Boehm 等人的统计,设计错误占软件错误的63%,编码仅占37%;第二,错误发现与改正得越晚,所需付出的代价也越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。
3、实行严格的产品控制
在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价,但是,
在软件开发过程中改变需求又是难免的,由于外部环境的变化,相应地改变用户需求是一种客观需要,显然不能硬性禁止客户提出改变需求的要求,而只能依靠科学的产品控制技术来顺应这种要求。也就是说,当改变需求时,为了保持软件各个配置成分的一致性,
必须实行严格的产品控制,其中主要是实行基准配置管理。所谓基准配置又称基线配置,它们是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。基准配置管理也称为变
动控制:
一切有关修改软件的建议,
特别是涉及到对基准配置的修改建议,必须按照严格的规程进行评审,获得批准以后才能实施修改。绝对不能谁想修改软件(包括尚在开发过程中的软件),就随意进行修改。
4、采用现代程序设计技术
从提出软件工程的概念开始,人们一直把主要精力用于研究各种新的程序设计技术。
60年代末提出的结构程序设计技术,已经成为绝大多数人公认的先进的程序设计技术。以后又进一步发展出各种结构分析(SA)与结构设计(SD)技术。实践表明,采用先进的技术既可
提高软件开发的效率,又可提高软件维护的效率。
5、结果应能清楚地审查
软件产品不同于一般的物理产品,它是看不峥摸不着的逻辑产品。软件开发人员
(或开发小组)
的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过程比一般产品的
开发过程更难于评价和管理。为了提高软件开发过程的可见性,更好地进行管理,应该根据
软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结
果能够清楚地审查。
6、开发小组的人员应该少而精
这条基本原理的含义是,软件开发小组的组成人员的素质应该好,而人数则不宜过多。
开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。
素质高的人员的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人员所开发的软件中的错误明显少于素质低的人员所开发的软件中的错误。此外,随着开发小组人员数目的增加,因为交流情况讨论问题而造成的通信开销也急剧增加。当开发小组人员数为N时,可能的通信路径有N(N?/FONT>1)/2条,可见随着人数N的增大,通信开销将急剧增加。因此,
组成少而精的开发小组是软件工程的一条基本原理。
7、承认不断改进软件工程实践的必要性遵循上述六条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但是,仅有上述六条原理并不能保证软件开发与维护的过程能赶上时代前进的步伐,能跟上技术的不断进步。
l
因此,Boehm提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理。按照这条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验,例如,收集进度和资源耗费数据,收集出错类型和问题报告数据等等。这些数据不仅可以用来评价新的软件技术的效果,而且可以用来指明必须着重开发的软件工具和应该优先研究的技术
构成软件工程的要素是什么?
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它有三大要素。
1.目标:生产具有正确性、可用性及开销合宜的产品。
2.过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
3.原则:是指围绕工程设计、工程支持及工程管理在软件开发过程中必须遵循的原则。
软件工程有哪些主要阶段?每个阶段的主要工作是什么
三个阶段:
1.定义阶段:可行性研究初步项目计划、需求分析
2.开发阶段:概要设计、详细设计、实现、测试
3.运行和维护阶段:运行、维护、废弃
什么是软件过程?它与软件工程方法学有何关系
(1)软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。概括地说,软件过程描述为了开发出客户需要的软件,什么人(who)、在什么时候(when)、做什么事(what)以及怎样(how)做这些事以实现某一个特定的具体目标。
(2)软件过程是软件工程方法学的3个重要组成部分之一。
CNC系统由哪几部分组成?各有什么作用?
数控系统是所有数控设备的核心。数控系统的主要控制对象是坐标轴的位移(包括移动速度、方向、位置等),其控制信息主要来源于数控加工或运动控制程序。因此,作为数控系统的最基本组成应包括:程序的输入/输出装置、数控装置、伺服驱动这三部分。
1、输入/输出装置
输入/输出装置的作用是进行数控加工或运动控制程序、加工与控制数据、机床参数以及坐标轴位置、检测开关的状态等数据的输入、输出。键盘和显示器是任何数控设备都必备的最基本的输入/输出装置。此外,根据数控系统的不同,还可以配光电阅读机,磁带机或软盘驱动器等。作为外围设备,计算机是目前常用的输入/输出装置之一。
2、数控装置
数控装置是数控系统的核心。它由输入/输出接口线路、控制器、运算器和存储器等部分组成。数控装置的作用是将输入装置输入的数据,通过内部的逻辑电路或控制软件进行编译、运算和处理,并输出各种信息和指令,以控制机床的各部分进行规定的动作。
在这些控制信息和指令中,最基本的是坐标轴的进给速度、进给方向和进给位移量指令。它经插补运算后生成,提供给伺服驱动,经驱动器放大,最终控制坐标轴的位移。它直接决定了刀具或坐标轴的移动轨迹。
此外,根据系统和设备的不同,如:在数控机床上,还可能有主轴的转速、转向和起、停指令;刀具的选择和交换指令:冷却、润滑装置的起、停指令;工件的松开、夹紧指令;工作台的分度等辅助指令。在基本的数控系统中,它们是通过接口,以信号的形式提供给外部辅助控制装置,由辅助控制装置对以上信号进行必要的编译和逻辑运算,放大后驱动相应的执行器件,带动机床机械部件、液压气动等辅助装置完成指令规定的动作。
3、伺服驱动
伺服驱动通常由伺服放大器(亦称驱动器、伺服单元)和执行机构等部分组成。在数控机床上,目前一般都采用交流伺服电动机作为执行机构;在先进的高速加工机床上,已经开始使用直线电动机。另外,在20世纪80年代以前生产的数控机床上,也有采用直流伺服电动机的情况;对于简易数控机床,步进电动机也可以作为执行器件。伺服放大器的形式决定于执行器件,它必须与驱动电动机配套使用。
以上是数控系统最基本的组成部分。随着数控技术的发展和机床性能水平的提高,对系统的功能要求也日益增强,为了满足不同机床的控制要求,保证数控系统的完整性和统一性,并方便用户使用,常用、较为先进的数控系统,一般都带有内部可编程序控制器作为机床的辅助控制装置。此外,在金属切削机床上,主轴驱动装置也可以成为数控系统的一个部分;在闭环数控机床上,测量检测装置也是数控系统必不可少的。对于先进的数控系统,有时甚至采用计算机作为系统的人机界面和数据的管理、输入/输出设备,从而使数控系统的功能更强、性能更完善。
总之,数控系统的组成决定于控制系统的性能和设备的具体控制要求,其配置和组成具有很大的区别,除加工程序的输入/输出装置、数控装置、伺服驱动这三个最基本的组成部分外,还可能有更多的控制装置。
主机由哪些部分组成?
1、CPU。中央处理单元是计算机的计算核心和控制中心。主要功能是计算,释放计算机指令并处理计算机软件中的数据。 CPU的质量极大地决定了计算机的配置和性能。
2、内存。存储器是内部存储器,数据在上电时存储,关闭后存储的数据消失。体积小,速度快,为用户提供存储空间。
3、硬盘。硬盘是外部存储器,也用于存储数据。断电后数据不会消失。
4、显卡。显卡的主要功能是控制显示屏。图形卡将数据转换为可显示的数字或信号,并将其传输到显示器。
5、主板。主板和主板固定在机箱上,主要用于连接各种模块实现功能。
转载请注明出处51数据库 » 软件工程的组成部分 软件工程专业的组成结构