软件工程概述

来源 :科学与财富 | 被引量 : 0次 | 上传用户:zhuyanmei
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  说到软件工程,想必大家不是很熟悉,那么软件我想大家一定很熟悉的。想要了解什么是软件工程,我们就先要了解什么是软件。
  软件可以说在我们的生活中无处不在,我们的生活现在也离不开软件。计算机软件的概念随着计算机技术的发展而发展。计算机发展初期,软件就是程序,也就是计算机可以识别的源代码或机器可直接执行的代码。随着计算机的发展,人们也渐渐认识的高质量的软件会使计算机系统的功能和效率大大提高,软件日益复杂,规模日益增大,人们开始认识到软件并不等于程序。全面地讲,软件由三部分组成,分别是:计算机程序、数据和软件文档。
  那么下面我们来详细看一下这三大部分。
  1.计算机程序,就是人们为了完成特定的功能而变质的一组指令集,由程序设计语言所描述的、能为计算机所识别、理解和处理的语句序列。目前程序设计语言主要有几种类型。面向机器:如汇编语言、机器语言等;面向过程:如Fortran,Pascal,C等等;面向对象:如Java等等;面向问题:如结构化查询语言SQL等等。
  2.数据,就是程序能处理的具有一定数据结构的信息。
  3.软件文档,是与程序的开发、维护和使用有关的图文资料,记录软件开发活动和阶段性成果、理解软件所必须的阐述性资料需求分析文档、软件设计文档、用户文档等。编写文档有什么作用呢?第一可以促进对软件的开发,管理和维护;第二便于各种人员(用户,开发人员)的交流。
  既然我们知道了什么是软件,那我们经常使用的软件有什么特点呢?与硬件相比,计算机软件具有以下一些特点。
  1.软件是抽象的。计算机硬件是实物产品,具有明显的可见性。但是我们无法直接观察软件的物理形态,只能通过运行它来了解它的功能和特性。
  2.软件无明显的制造过程。计算机硬件是实物产品,我们可以亲眼目睹它的整个生产过程,而软件却没有明显的制造过程,软件注重的是开发过程。
  3.软件无磨损性。计算机硬件存在着磨损和老化现象,就像我们的课桌,我们的板凳都存在着磨损现象。但对于软件而言,它不存在磨损和老化,它会出现老化的状态,所以软件需要不定时的更新和维护。
  4.软件对计算机硬件有依懒性。软件的开发和运行依赖于特定的计算机系统环境,一般产品是不会有的,为了减少这种依赖性,软件开发过程中提出了软件的可移植性。
  5.软件还处于手工开发方式。人们在分析、设计、开发、测试软件产品的过程中,运用了大量的脑力劳动。
  6.软件本身的复杂性,软件本身自带的一大特点,软件是需要更新和服务的。
  7.软件的高成本。在开发一个软件的过程当中,在编写、测试、运行和广告推销方面,开发成本相当昂贵。
  我们该如何给软件分类呢?
  按功能分:
  1.系統软件。操作系统就是最典型的系统软件,它负责管理系统的资源,并为上层软件的运行提供了必备的接口和条件。
  2.支撑软件。我们常用的文本编辑器、绘图软件、数据库管理系统和CASE工具系统等都属于支撑软件。
  3.应用软件。比如,地理信息系统软件、航空售票软件、教务管理系统软件和信息管理系统等。
  按服务对象分:
  1.通用软件。由特定的软件开发机构开发,面向市场公开销售的独立运行的软件系统,如操作系统、文档处理系统和图片处理系统等
  2.定制软件。是面向特定的用户需求,由软件开发机构在合同的约束下开发的软件,如为企业定制的办公系统、交通管理系统和飞机导航系统等。
  按工作方式分:计算机软件还可以划分为实时软件、分时软件、交互式软件和批处理软件。
  按软件产品规模分:计算机软件还可以划分为小型软件、中型软件和大型软件。
  这么多的软件横空出世,那么他们都成功了吗?我们以怎样一个标准来衡量软件是否成功呢?
  软件成功的标准应当是用户在用,满足用户的需求,服务于社会。软件失败了也就意味着并没有满足用户的需求,在软件开发过程中出现了一系列的问题,我们把软件开发中出现的问题统称为软件危机,软件危机爆发于20世纪60年代中期。这里我们叙述两个经典案例。
  案例一:美国IBM公司在1963年至1966年开大的IBM360机的操作系统。公约100万条指令,花费了5000个人,经费达数亿美元,错误多达2000个以上,系统根本无法正常运行。
  这个项目的负责人F.D.Brooks事后总结了他在组织开发过程中的沉痛教训时说:“...正像一只逃亡的野兽落到泥潭中做垂死挣扎,越是挣扎,陷得越深。最后无法逃脱灭顶的灾难,......程序设计工作正像这样一个泥潭,......一批批程序员被迫在泥潭中拼命挣扎,......谁也没有料到竟会陷入这样的困境...”
  案例二:美国银行1982年进入信托商业领域,并规划发展信托软件系统。项目原定预算2千万美元,开发时程9个月,预计1984年12月31日以前完成,后来至1987年3月都未能完成该系统,期间已投入6千万美元。美国银行最终因为此系统不稳定而不得不放弃,并将340亿美元的信托账户转移出去,并失去了6亿美元的信托生意商机。
  可见软件危机的存在是极其重要的。那么软件危机有两个方面:第一如何开发软件,以满足不断增长,日趋复杂的需求。第二如何维护数量不断膨胀的软件产品。那么我们如何解决软件危机呢?人们逐渐认识到了软件的特性和软件产品开发的内在规律,并尝试用工程化的思想去指导软件开发,于是软件工程诞生了。
  软件工程一直以来都缺乏一个统一的定义。1968年首次提出软件工程的概念,并将其定义为“为了经济地获得可靠的和能在实际机器上高效运行的软件,而建立和使用的健全的工程规则”。这个定义肯定了工程化思想在软件工程中的重要性,但是并没有提到软件产品的特殊性。   IEEE在软件工程术语汇编中的定义:软件工程是1.将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上;2.对1中所述方法的研究。
  比较认可的一种定义为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件。以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
  软件工程的提出是为了解决软件危机所带来的各种弊端。那么软件工程是如何发展起来的呢?
  软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。
  程序设计阶段出现在1946年~1955年。这个阶段还没有软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工,程序设计追求节省空间和编程技巧,无文档资料,主要用于科学计算。
  软件设计阶段出现在1956年~1970年。这个时期硬件环境相对稳定,出现了“软件作坊”的开发组织形式。开始广泛使用产品软件,从而有了软件的概念。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增。但软件开发技术没有重大突破,软件产品的质量不高,生产效率比较低,从而导致了“软件危机”的产生。
  自1970年起,软件开发进入了软件工程阶段。由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件产生进入了软件工程时代。这个阶段硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用。
  接下来我们来了解一下软件工程的基本内容。软件工程有三个要素,即过程、方法和工具。
  软件工程过程是指为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动。它是使用适当的资源(包括人员,软硬件资源,时间等),为开发软件进行的一组开发活动,在活动结束时输入(即用户的需求)转化为输出(最终符合用户需求的软件产品)。软件的诞生和它的生命周期统称为软件过程。作为一种工业化的产品,软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,到最终该产品被市场淘汰的全过程。生命周期分为三个阶段:定义阶段:可行性研究初步项目计划、需求分析;开发阶段:概要设计、详细设计、实现、测试;运行和维护阶段:运行、维护、废弃。
  软件工程方法包含软件开发方法、软件度量方法、软件管理方法和軟件环境方法,但是通常把软件工程方法等同于软件开发方法,那么目前通常用的软件开发方法有面向过程的开发方法、面向对象的开发方法、面向数据的开发方法和形式化方法。
  软件工具是进行软件开发时必不可少的部分,是程序员在软件开发、测试、维护过程中所使用的辅助工具。软件工具的使用为软件项目的开发提供了自动化的支持,在很大的程度上提高软件的开发质量,降低了软件的成本,缩短了软件的开发时间。
  既然提出工程化的思想,那我们就该遵循一定的原则。
  著名软件工程专家B.W.Boehm提出了以下几项软件工程的基本原则:将软件的生命周期划分为多个阶段,对各个阶段实行严格的项目管理;坚持阶段评审制度,以确保软件产品的质量;实施严格的产品控制,以适应软件规格的变更;采用现代程序设计技术。这是提高软件开发和维护效率的关键;开发出来的软件产品应该能够清楚地被审查。虽然软件产品的可见性比较差,但是它的功能和质量应该能够被准确地审查和度量,这样才能有利于有效的项目管理;合理地安排软件开发小组的人员,并且开发小组的人员要少而精;不断地改进软件工程实践。
  那么软件工程要实现怎样的一个目标呢?
  软件工程的基本目标:
  1.达到要求的软件功能
  2.取得较好的软件性能
  3.开发出高质量的软件
  4.付出较低的开发成本
  5.需要较低的维护费用
  6.能按时完成开发工作,及时交付使用
  我们要运用工程化的思想达到软件工程的基本目标,开发出高质量的满足用户需求的有价值的软件产品。
  我们平常所说的计算机科学和软件工程有什么区别呢?
  科学是发现世界上已经存在的事物,回答“是什么”和“为什么”的问题。工程是创造世界上从未存在的事物,回答“做什么”和“怎么做”的问题。计算机科学研究构成计算机本身的理论和结构,诸如硬件设计或者算法的理论证明等。软件工程将计算机作为问题求解的工具,设计和实施尚未存在的方案用以服务社会。
  软件工程的就业前景不可限量。软件产业的发展已经关系到一个国家的政治和未来,软件产业将成为21世纪拥有最大产业规模和最广阔前景的新兴产业之一。软件领域是一个包括系统软件,中间软件,嵌入式软件,数据库软件,财务和企业管理软件,教育软件,游戏软件等。产品化程度高的公司主要集中在管理软件,金融行业软件,及聚焦于某个行业的软件公司。提升软件的产品化程度将非常有益于中国软件企业竞争力的提高。软件产业属于第三产业的服务业,具有高智力投入,高成长,低成本投入,服务性强,全球性强,与国民经济关系密切等特点,一个高质量的软件会给企业和社会带来很大的便利。所以软件行业是一个发展前景很好的第三产业。
其他文献
摘要:中国成为世界第二大经济体以来,经济越来越走向全球化,越来越多的企业走向国际贸易,这就需要会计制度给予相应的配合,所以会计制度国际趋同也就成为必要。本文通过阐明会计制度国际化的必要性和制约因素,并提出国际化进程的相关建议,以使得读者对于会计制度的国际趋同有更深的理解。  关键词:会计制度;国际趋同;影响因素  一、引言  会计制度作为一种行为准则和规范,受到各国经济体制、发展状态、历史文化和语
期刊
摘要:电费回收作为电力企业的盈利基础,也是促进电力企业获得持续发展的必要条件。科学技术水平的不断提升,传统较为模式已经无法满足人们的需求,也会降低电费回收工作的效率,因此使用网络缴费,可以将其中的多种问题解决,增强电费回收的工作效率与准确性。  关键词:电费回收;传统缴费方式;网络缴费;转变  电力作为人们日常生活、学习、工作不可或缺的重要部分,若失去电力将会对人们的生活造成极大影响。电费回收作为
期刊
摘要:时代的进步与发展,促进我国电力市场的竞争更加激烈。电力市场作为我国经济体制中的重要组成部分,电力市场中的交易形式有较多,如单一购买模式、电量竞价伤亡模式、双轨制竞价模式等。为了促进我国电力市场获得更加持续的发展,电力市场需要加大开发力度,才能加强电力市场的运行效果,将各项资源进行优化与合理配置。  关键词:电力市场;发展现状;展望;市场交易  从80年代末开始,英国就带领了世界进行电力工业管
期刊
摘要:驱动电机系统是电动汽车的关键技术之一。本文对电动汽车的几种典型驱动系统进行了定性分析,对它们的性能进行了比较,指出了它们各自的优缺点。  关键词:电动汽车;驱动电机;性能比较  人类与环境共存和全球经济的可持续发展使人们迫切希望寻求到一种低排放和有效利用资源的交通工具,使用电动汽车无疑是一种很有希望的方案。  現代电动汽车是融合了电力、电子、机械控制、材料科学以及化工技术等多种高新技术的综合
期刊
摘要:柔性薄膜太阳能电池由于其厚度薄、重量轻,不易破碎、可任意弯曲等优势,在地面和未来的空间应用中具有难以取代的地位,新的无机和有机太阳能吸收材料的研究、新型太阳能电池结构的探索、卷对卷的印刷生产工艺以及喷墨印刷为降低柔性薄膜太阳能电池成本提供了可能。本文通过对专利文献的整理,分析和梳理了目前相关技术的主要研究方向。  关键词:柔性;太阳能电池;光伏  太阳能发电是最重要的可再生能源利用方式之一,
期刊
摘要:本文从我国高校金工实训课程的教学现状出发,分析了存在的问题,分析了存在的优点和缺点,为适应现代化的经济要求,提出了对金工实训课程教学改革的一些建议。  关键词:金工实训;教学改革  金工实训在各工科院校作为一门独立的实践性课程,是各相关专业不可缺少的基础课,其教学目标就是通过实训,要求学生掌握从材料特性到各类机械加工的操作工艺知识,达到具备能独立的实践性操作的能力,为后续专业课程提供必要的基
期刊
摘要:近年来,人工智能技术的迅猛发展造就了一批语言翻译服务类产品的出现,无形中对翻译,尤其是口译行业带来了很大的冲击。本文旨在探讨在人工智能高速发展的背景下,如何借助这一契机,给原有的传统口译教学带来突破,以适应未来商业市场的挑战。  关键词:人工智能;口译教学;口译语料库  近年来,AI(Artificial Intelligence,人工智能)的快速发展为口译行业、口译教育乃至口译学习带来了新
期刊
摘要:汽车电子化的发展程度的高低反映了汽车水平的高低。现如今,电子技术的应用已经深入到汽车的全部系统,使汽车的技术性、经济性和舒适性都有了巨大的提高,而且电子点火系统的应用会更好的提高汽车的动力性、燃油经济性、降低大气污染。本文介绍了现代电子点火系统的发展历程、分类、构造、优点、工作原理,全面分析电子点火系统的常见故障,并且结合实例分析了典型故障产生的原因,从而给出了具体的故障排除方法。  关键词
期刊
摘要:2014年年初起,人民币开始了其贬值进程。人民币贬值是由其内因和外因共同导致的。人民币的贬值不仅给我国经济的发展带来了很大的影响,同时给国际经济的发展也带来了不小的冲击,人民币的贬值与中国经济的发展、以及中央银行、美国的政策等都有直接的关系,对人民币的国际化产生很大的影响。文章讨论人民币贬值的原因,以及人民币贬值对人民币国际化造成的影响,最后,在人民币贬值的背景下,为人民币国际化提出建议。 
期刊
摘要:在随着国家政治、经济和文化的不断发展,我国会计制度和税收法规也在不断完善。但是,由于二者之间的分离而引发的矛盾引起国内外学者的广泛关注。由于二者之间在目标、方向、对象、依据、指标等多方面存在的差异,以及日常处理等方面的矛盾和复杂性,给企业带来很多困难,也增加了管理成本,因此,如何处理二者之间的差异是本文研究的关键。  基于此,本文试图分析二者之间的主要矛盾,并从制度制定、工作流程等方面提出了
期刊