关键字:软件工程 ,应用
我们可以将软件工程定义为“工程在软件中的应用”,更精确的讲,软件工程被定义为:系统的,规范的,定量的方法在软件的开发操作和维护中的应用。
实际上,术语“软件工程”是20世纪60年代末提出的,即在意识到所有从如何很好的进行编程中得到的经验无助于建造更好的系统之后。虽然通过系统的研究算法和数据结构以及“结构化程序设计”的提出,程序设计领域已经取得了巨大的进步,该领域已经使用了标准技术,软件工程正逐渐的被越来越多在传统上与工程有关的学科所实践,而不是作为一种技术在应用。
软件工程是一门研究用工程化方法构建和维护有效地实用地和高质量地学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准设计模式等方面,在现代社会中,软件应用于多个方面,典型的软件比如有嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等,同时各个行业几乎都有计算机软件的应用,比如农业,工业,银行,航空,政府部门等,同时,各个行业的应用促进了经济和社会的发展,使得人们的工作效率更高,同时提高了生活质量。
软件工程一直以来都缺乏一个统一的定义,很多学者组织机构都分别给出了自己的定义:
(1)、BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
(2)、IEEE在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究
(3)、FritzBauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
(4)、《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指
生活中数据库系统的实际例子软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求
的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。
软件工程在系统中的应用
软件系统通常是一个更大的系统的一个组件。因此,软件工程活动是一个更大的系统设计活动的一部分,大系统中软件的需求根据正在设计的系统的其他部分的需求综合确定。例如,一个电话交换系统包括计算机,电话线和电缆,
电话,其他如卫星等硬件,以及控制各组件的软件,预期满足整个系统的需求的是所有这些组件的组合。
软件正逐渐嵌入到各个系统中,从电视到飞机都配备了软件。开发这样的系统要求软件工程师更加广泛的考虑系统工程的基本问题。它要求软件工程师参与制定整个系统的需求,要求软件工程师在着手考虑软件必须满足什么抽象界面之前,必须尽量理解应用领域。
软件工程对其他领域的应用
软件工程对程序设计语言的影响是很明显的,程序设计语言是软件开发时所用的主要工具。因此,它们对于我们能够更好的实现软件工程目标有着深远的影响。反之,这些目标又影响着程序设计语言的开发。软件工程对程序设计语言的影响最显著的例子是使程序设计语言加入了模块化特征,诸如独立的且不依赖的编译,以及规范与实现的分离等,以支持大型软件的团队开发。如Java那样的程序设计语言支持包的开发,允许包的接口与其实现分离;还支持包的库,可以独立的软件系统开发中用作组件。反过来,程序设计语言也影响着软件工程,如:应当精确地描述需求和设计思想,也需要使用一种语言进行严格描述,并且这种语言是机器可处理的。然而,程序设计语言领域对软件工程的另一影响在于近年来为语言处理中形式化产生自动化中获得的经验,为一种语言规定一种形式语法,这允许自动的产生一个解析程

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。