欢迎来到杂志之家!发表咨询:400-888-7501 订阅咨询:400-888-7502 股权代码 102064

软件工程实用13篇

软件工程
软件工程篇1

随着软件产业的不断发展,计算机应用逐步渗透到社会的各个角落,使各行各业都发生了很大的变化。传统的计算机学科逐步上升到计算科学。这同时也促使人们对软件的品种、数量、功能和质量等提出了越来越高的要求。软件的规模越大、越复杂,软件开发越显得力不从心。于是,业绩开始重视软件开发过程、方法、工具和环境的研究,软件工程应用而生。20世纪90年代以来,软件重用和软件构件技术成为研究热点,面向对象方法和技术成为软件开发的主流技术。软件工程知识为开发高品质的产品提供了理论和科学支撑,强调采用工程化的方式开发软件。这些知识支持以精确地方式描述软件工程产品,为产品及其相互关系的建模和推理提供了基础,并为可预测的设计过程提供了依据。

1 计算机软件

“软件”这个词汇于20世纪60年代被首次提出。一个完整的计算机系统由软件和硬件组成。它们相互依存,缺一不可。IEEE给软件定义为是计算机程序、规划以及运行计算机系统可能需要的相关文档和数据。其概念是随着计算机的发展而得出进一步完善的,最先人们认为软件就是程序,到了20世纪70年代,人们认为软件不仅包括程序,还包括开发、使用、维护这些程序所需要的文档。到了80年代,较为全面的软件的定义才出现,包括计算机程序、实现程序所使用的方法、规则、相关联的文档、运行所需的数据等都是程序。

计算机的应用和功能的正常使用离不开硬件和软件,只有硬件和软件得到很好的组合,计算机才能正常工作,完成相应的任务。在计算机的资源配置上,既要考虑硬件资源又要考虑软件资源。就软件资源来看,它包括系统软件和应用软件。系统软件的主要目的是实现对计算机的管理、监控和维护,包括自检程序、操作系统等等。而应用软件的主要目的是解决计算机当中的某些具体问题,实现对计算机的管理等功能,包括学习管理软件、人事管理软件等等。从软件功能的角度来看,我们可以认为,软件就是通过利用计算机本身提供的逻辑功能,合理组织计算机的工作,简化或者替代人们在使用计算机过程中的工作环境。因此,对于计算机的各种程序来说,不管是支持计算机工作的程序,还是支持用户使用的程序,它们都是软件,如职场生存攻略提高工作效率的一些必备软件:Photoshop、word、Excel、Dreamweaver等。

软件特点有:(1)复杂性;(2)一致性;(3)可变性;(4)不可见性。软件类型一是通用软件,另一是定制软件,是根据软件服务对象的范围,将其划分为两个类型。软件危机是:(1)软件维护费用急剧上升,直接威胁计算机应用的扩大;(2)软件生产技术进步缓慢,是加剧软件危机的重要原因。软件生存周期是指一个软件从提出需求开始直到该软件报废为止的整个时期,通常包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动,它们将以适当地方式分配到不同阶段去完成。

软件开发是一个过程,是指软件工程人员未获得软件产品在软件工具支持下实施的一系列软件工程活动。其开发过程包括获取过程、供应过程、开发过程、操作过程、维护过程、管理过程和支持过程。其开发模型有:(1)瀑布模型;(2)快速原型模型;(3)喷泉模型;(4)增量模型;(5)螺旋模型;(6)形式化方法模型;(7)基于构件的开发模型。其开发方式是一种使用定义好的技术集及符号表示组织软件生产的过程,包括:(1)结构化方式;(2)Jackson方法;(3)维也纳开发方法;(4)面向对象开发方法。其开发工具一般指为了支持软件人员开发和维护活动而使用的软件。有RUP、RequisitepRro、Rose及Robot。

2 软件工程

“软件工程”自1968年首次提出软件工程概念以来,已经40多年了。编程范型已经经历了三次演变,软件工程也从第一展到第三代。其概念提出那个年代就开发大型系统软件用手工方式进行,其生产效率低、出错率高。这种状态不能满足日益增长的软件生产的需要,产生以下四个方面的问题:(1)软件复杂性飞速增长;(2)软件成本高;(3)开发周期长;(4)维护工作量大。即出现了“软件危机”现象。软件工程定义为将系统性的、规范化的、可定量的方法应用于软件得开发、运行和维护,即将工程化应用到软件上。

其有一个相似的概念,出现上个世纪70年代,是开发和维护软件的规范化方法,其指导思想是以处理工程问题的方法处理软件生产的全过程。其发展大致经过三个阶段,包括程序设计时代、软件时代、软件工程时代。而软件开发也大体经过三个阶段,定义、开发、维护三个阶段。随着软件工程的发展,软件工程学出现,它是计算机科学、系统工程学、管理学、经济学等等,既是边缘学科,又是综合性学科。

软件工程目标有:(1)支付较低的开发成本;(2)达到要求的软件功能;(3)取较好的软件性能;(4)开发的软件易于移植;(5)需要较低的维护费用;(6)能按时完成开发任务,及时交付使用;(7)开发的软件可靠性高。其标准主要有三:一是FIPS 135是美国国家标准局的《软件文档管理指针》;二是NSAC--39是美国核子安全分析中心的《安全参数显示系统的验证与确认》;三是ISO 5807是国际标准化组织(现在已经成为中国国家标准)的《信息处理--数据流程图、程序流程图、程序网络图和系统资源图的文件编制符号及约定》。

其标准层次有五个,从顶层到低层依次是国际标准、国家标准、行业标准、企业规范及项目(课题)规范。其标准级别也是五个,即国际标准、国家标准、行业标准、企业(机构)标准和项目(课题)标准。这是根据软件工程,其标准制定的机构和标准适用的范围有所不同分出的级别。软件工程包括软件开发技术和软件工程项目管理两大部分。第三代软件工程:基于构件的软件工程是以软件服用为目标、领域工程为基础,其开发过程一般包括四个阶段,依次是领域分析和测试计划定制、领域设计、建立可复用构件库、按“构件集成模型”查找与集成构件。

今后,计算机软件工程的不断发展,给克服软件危机带来了希望。随着面向对象编程力度的增大,软件工程师技术再不断进步,特别是构件开发的规范化与市场化,已经把软件开发推进到一个新的阶段,出现了“开发伴随软件复用,开发为了软件复用”以及“软件就是服务”等新思想。这些突出的成绩,让我们对计算机软件方向的发展拭目以待。

参考文献:

[1]史济民,顾春华,郑红.软件工程--原理?方法与应用[M].北京:高等教育出版社出版社,2009.

[2]刘冰,赖涵,瞿中,等.软件工程实践教程[M].北京:机械工业出版社,2009.

[3]麦中凡.计算机软件技术基础[M].北京:高等教育出版社,1999.

软件工程篇2

主办单位:东北大学;计算机软件国家工程研究中心

出版周期:月刊

出版地址:辽宁省大连市

种:中文

本:大16开

国际刊号:1008-0775

国内刊号:21-1378/TP

邮发代号:8-198

发行范围:国内外统一发行

创刊时间:1994

期刊收录:

核心期刊:

期刊荣誉:

软件工程篇3

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。这一学科包括许多的内容,具体来讲有程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等。当今社会,网络化迅速发展,软件的应用领域越来越广。现在比较普遍的软件有电子邮件,人机界面,办公套件,操作系统,游戏等。目前,基本上每个行业都会某种程度的运用到计算机软件。这些应用对于推动经济和社会的发展起到了举足轻重的作用,提高了工作效率,改善了人们的生活质量。

我们究竟是将软件的开发看成一门科学,还是将其看成是一门工程,关于这个问题已经讨论了很长时间了。事实上,软件的开发具备这两者的特征。但是我们不能将二者混淆了。大多数人认为软件工程基于计算机科学和信息科学就像是传统意义上的工程学之于物理和化学。在世界各个国家,尤其是美国大约有40%的软件工程师都有计算机科学的学位。他们可能不经常运用到计算机科学上的知识,但是会经常运用到软件工程上的知识。许多应用都需要软件工程,在软件开发的许多程序中也需要软件工程。软件工程的主要作用就是指导软件项目的方方面面。在软件工程中,软件开发与各种市场活动紧密相连。软件工程的方法学认为程序员在开发软件的时候是处在一个团队中的,而且在编写程序时要符合软件的需求,设计,以及客户的利益。

伴随着开发技术的不断进步,软件开发过程也在不断的改进。从早期的瀑布式(Waterfall)的开发模型直到最近开始兴起的敏捷开发方法(Agile),表现出来的是随着时代的变化,软件产业对于开发过程的认识也在不断的变化,对于各种类型项目的理解方法也在发生着变化。在美国曾经有权威机构对软件组织的绩效做过评估,所得到结论是:软件工程的专业分工不足,是造成品质低落、时程延误、预算超支的最关键因素。2003年,The Standish Group年度报告指出,在他们调查的13522个专案中,有66%的软件专案失败、82%超出时程、48%推出时缺乏必需的功能,总计约550亿美元浪费在不良的计划、预算或软件估算上。

2 软件工程的需求分析

有一种观点认为软件工程是学习怎么做软件的,对吧?我认为,这种观点算对,但不是全对。得到一个软件产品,自然是软件工程的目的所在,但是软件工程所包含的却不仅仅是这些。就拿软件业界比较常见的例子来给大家讲一下,这个例子就是盖房子,我们盖房子,是不是就买块地,然后准备好建材,就哐当哐当地开始建房子了呢?大家明白不是这样,要建好一座房子,先要对土地进行测量勘察,确定可以在上面建房屋,之后还得先规划出整个房子的蓝图来,接下来才是对根据蓝图开始建房子。建好房子后,还得经过一些检测,比如甲醛有没有超标啊,包工头有没有偷工减料啊,这些都合格之后才能交付使用。于是有人入住了,住久了,发现浴室漏水,那就得修补一下。再住久了,住了几十年,房子旧得不成样子了,这时候它的寿命也到了终点了。

软件工程之所以叫软件工程,就是因为它使用了工程学方法来帮助软件开发,建筑也是一门工程学,所以它们之间是会有些共通之处的,不信?请看:首先,我们在对土地进行测量勘察的时候,是在确定它是否适宜建房子,在软件工程上来讲,这个术语叫“可行性分析”,可行性分析的任务就是确定开发这个软件是否在技术上可以做到,在资金上有充足支持,在市场上能够受欢迎,如果答案是肯定的,那么就可以继续下一步的开发步骤。规划出房子的蓝图,在软件工程上被分为两个过程:“需求分析”、“设计”。需求分析就是得到软件需要做什么,需要实现什么功能。而设计就是告诉开发人员怎么实现这些功能。也就是规划出软件的一个蓝图,在“编码”阶段再对其进行实现,这就对应着建房的关键阶段,就是按照蓝图盖好房子啦。房子在入住前需要检测是否合格,软件在交付给用户使用的时候自然也需要检测是否合格,这个阶段叫做“测试”。检测合格了,那就可以交付给用户使用,在市场上销售。软件不可能完美无缺,所以在使用过程中,一定会出现某些问题,这时候就要将问题提交给软件开发人员,修复问题,这个阶段就是软件过程中的“维护”阶段。过了一段时间,这段时间可能很长,也可能很短,这软件已经不适应生产力的发展了,那么就可以正式宣告这软件寿终正寝了,至此,软件的生命周期才正式结束。

我们还要注意,软件生命周期包括制定计划、需求分析和定义、软件设计、程序编码、软件测试、运行维护这六个阶段,是指一个计算机软件从功能确定、设计直到不再使用该软件的全过程。

软件工程篇4

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。这一学科包括许多的内容,具体来讲有程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等。当今社会,网络化迅速发展,软件的应用领域越来越广。现在比较普遍的软件有电子邮件,人机界面,办公套件,操作系统,游戏等。目前,基本上每个行业都会某种程度的运用到计算机软件。这些应用对于推动经济和社会的发展起到了举足轻重的作用,提高了工作效率,改善了人们的生活质量。

我们究竟是将软件的开发看成一门科学,还是将其看成是一门工程,关于这个问题已经讨论了很长时间了。事实上,软件的开发具备这两者的特征。但是我们不能将二者混淆了。大多数人认为软件工程基于计算机科学和信息科学就像是传统意义上的工程学之于物理和化学。在世界各个国家,尤其是美国大约有40%的软件工程师都有计算机科学的学位。他们可能不经常运用到计算机科学上的知识,但是会经常运用到软件工程上的知识。许多应用都需要软件工程,在软件开发的许多程序中也需要软件工程。软件工程的主要作用就是指导软件项目的方方面面。在软件工程中,软件开发与各种市场活动紧密相连。软件工程的方法学认为程序员在开发软件的时候是处在一个团队中的,而且在编写程序时要符合软件的需求,设计,以及客户的利益。

伴随着开发技术的不断进步,软件开发过程也在不断的改进。从早期的瀑布式(waterfall)的开发模型直到最近开始兴起的敏捷开发方法(agile),表现出来的是随着时代的变化,软件产业对于开发过程的认识也在不断的变化,对于各种类型项目的理解方法也在发生着变化。在美国曾经有权威机构对软件组织的绩效做过评估,所得到结论是:软件工程的专业分工不足,是造成品质低落、时程延误、预算超支的最关键因素。2003年,the standish group年度报告指出,在他们调查的13522个专案中,有66%的软件专案失败、82%超出时程、48%推出时缺乏必需的功能,总计约550亿美元浪费在不良的计划、预算或软件估算上。

2 软件工程的需求分析

有一种观点认为软件工程是学习怎么做软件的,对吧?我认为,这种观点算对,但不是全对。得到一个软件产品,自然是软件工程的目的所在,但是软件工程所包含的却不仅仅是这些。就拿软件业界比较常见的例子来给大家讲一下,这个例子就是盖房子,我们盖房子,是不是就买块地,然后准备好建材,就哐当哐当地开始建房子了呢?大家明白不是这样,要建好一座房子,先要对土地进行测量勘察,确定可以在上面建房屋,之后还得先规划出整个房子的蓝图来,接下来才是对根据蓝图开始建房子。建好房子后,还得经过一些检测,比如甲醛有没有超标啊,包工头有没有偷工减料啊,这些都合格之后才能交付使用。于是有人入住了,住久了,发现浴室漏水,那就得修补一下。再住久了,住了几十年,房子旧得不成样子了,这时候它的寿命也到了终点了。

软件工程之所以叫软件工程,就是因为它使用了工程学方法来帮助软件开发,建筑也是一门工程学,所以它们之间是会有些共通之处的,不信?请看:首先,我们在对土地进行测量勘察的时候,是在确定它是否适宜建房子,在软件工程上来讲,这个术语叫“可行性分析”,可行性分析的任务就是确定开发这个软件是否在技术上可以做到,在资金上有充足支持,在市场上能够受欢迎,如果答案是肯定的,那么就可以继续下一步的开发步骤。规划

房子的蓝图,在软件工程上被分为两个过程:“需求分析”、“设计”。需求分析就是得到软件需要做什么,需要实现什么功能。而设计就是告诉开发人员怎么实现这些功能。也就是规划出软件的一个蓝图,在“编码”阶段再对其进行实现,这就对应着建房的关键阶段,就是按照蓝图盖好房子啦。房子在入住前需要检测是否合格,软件在交付给用户使用的时候自然也需要检测是否合格,这个阶段叫做“测试”。检测合格了,那就可以交付给用户使用,在市场上销售。软件不可能完美无缺,所以在使用过程中,一定会出现某些问题,这时候就要将问题提交给软件开发人员,修复问题,这个阶段就是软件过程中的“维护”阶段。过了一段时间,这段时间可能很长,也可能很短,这软件已经不适应生产力的发展了,那么就可以正式宣告这软件寿终正寝了,至此,软件的生命周期才正式结束。

我们还要注意,软件生命周期包括制定计划、需求分析和定义、软件设计、程序编码、软件测试、运行维护这六个阶段,是指一个计算机软件从功能确定、设计直到不再使用该软件的全过程。

软件工程,正是贯穿在一个软件的整个生命周期中的。从开发某个软件的计划被提起或者立项,软件工程就开始发挥着作用,用自己的一套方法体系,来指导软件开发的整个过程。因此软件工程不等于编程,编程只是软件工程整个过程中的一个重要环节而已。据统计,在整个开发周期中,平均编码这个过程只占了整个周期的大约30%的时间。

3 软件工程原则

软件工程学主要是用来对软件开发和维护进行指导,是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完整的工程化原则。它充分的运用计算机科学、数学及管理科学等方面的知识,并借鉴传统工程的原则、方法来完成开发软件的任务,这样就能够最大限度的开发高质量的软件,并且能够减少成本。

boehm是一位知名的软件工程专家,在借鉴了许多的专家和学者的经验之后,再加上自己在开发软件方面的经验,在1983年总结出了软件工程的七条基本原理:

①用分阶段的生存周期计划严格管理;

②坚持进行阶段评审;

③对产品严格把关;

④在技术上运用现代程序设计;

⑤结果能清楚地审查;

⑥开发小组的人员不要太多,但是这些人员要有真才实学;

⑦不断对软件工程实践进行改进是很有必要的。

一般来说,一个软件方法往往规定了明确的工作步骤、具体的描述方式以及确定的评价标准。软件开发的基本方法包括结构化方法、面向对象方法等。

随着软件工程学的发展和软件开发的实践,软件开发模型依次被提出:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、形式化方法模型等。

目前,已经推出很多软件开发工具,如需求分析阶段的psl/psa系统;编码阶段的各种语言编译工具、编辑程序、连接程序等,都是软件编码阶段的软件工具;测试阶段的测试数据产生程序、动态分析程序、静态分析程序等软件自动测试工具;维护阶段的版本控制系统等。从广义上来讲,软件分析、设计阶段的各种图形工具,如数据流(dfd)等也可以称为软件开发工具。

从技术和管理上采取多项措施后,组织实施软件工程的最终目的是保证项目成功,即达到以下几个主要目标:

①使开发成本最少;

②达到预期的软件功能;

③软件性能更好;

④使软件易于移植;

⑤最大限度降低维护费用;

⑥按时完成开发任务,及时交付使用。

4 结束语

软件工程的方法的意义是非常广泛的。具体来讲包括项目管理,分析,设计,程序的编写,测试和质量控制。有些人认为人们要认真遵守这些方法进行软件开发,但是有些人还没有足够的能力实施这些方法。事实上,具体运用哪种方法开发软件是受很多方面因素的限制的。

参考文献:

[1]安红昌.信息化工程的全面监理体系研究[c]//第二届武汉电子商务国际会议论文集.北京:科学出版社,2002.

[2]冯玉林.软件工程方法工具和实践[m].合肥:中国科学技术大学出版社,1992.

软件工程篇5

(3)软件产品的质量往往靠不住。软件可靠性和质量保证的确切的定量概念刚刚出现不久,软件质量保证技术(审查、复审和测试)还没有坚持不懈地应用到软件开发的全过程中,这些都导致软件产品发生质量新问题。

(4)软件经常是不可维护的。很多程序中的错误是非常难改正垢,实际上不可能使这些程序适应新的硬件环境,也不能根据用户的需要在原有程序中增加一些新的功能。“可重用的软件”还是一个没有完全做到的、正在努力追求的目标,人们仍然在重复开发类似的或基本类似的软件。

(5)软件通常没有适当的文档资料。计算机软件不仅仅是程序,还应该有一整套文档资料。这些文档资料应该是在软件开发过程中产生出来的,而且应该是“最新式的”(即和程序代码完全一致的)。软件开发组织的管理人员可以使用这些文档资料作为“里程碑”,来管理和评价软件开发工程的进展状况;软件开发人员可以利用它们作为通信工具,在软件开发过程中准确地交流信息;对于软件维护人员而言,这些文档资料更是至关重要必不可少的。缺乏必要的文档资料或者文档资料不合格,必然给软件开发和维护带来许多严重的困难和新问题。

(6)软件成本在计算机系统总成本中所占的比例逐年上升。由于微电子学技术的进步和生产自动化程度不断提高,硬件成本逐年下降,然而软件开发需要大量人力,软件成本随着通货膨胀以及软件规模和数量的不断扩大而持续上升。美国在1985年软件成本大约已占计算机系统总成本的90。

(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋向。软件产品“供不应求”的现象使人类不能充分利用现代计算机硬件提供的巨大潜力。

软件工程的七条基本原理:1、用分阶段的生命周期计划严格管理有人经统计发现,在不成功的软件项目中有一半左右是由于计划不周造成的,可见把建立完善的计划作为第一条基本原理是吸取了前人的教训而提出来的。在软件开发和维护的漫长的生命周期中,需要完成许多性质各异的工作。这条基本原理意味着,应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发和维护工作进行管理。Boehm认为,在软件的整个生命周期中应该制定并严格执行六类计划,它们是项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划。不同层次的管理人员都必须严格按照计划各尽其职地管理软件开发和维护工作,绝不能受客户或上级人员的影响而擅自背离预定计划。2、坚持进行阶段评审当时已经熟悉到,软件的质量保证工作不能等到编码阶段结束之后再进行。这样说至少有两个理由:第一,大部分错误是在编码之前造成的,例如,根据Boehm等人的统计,设计错误占软件错误的63,编码仅占37;第二,错误发现和改正得越晚,所需付出的代价也越高。

因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。3、实行严格的产品控制在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价,但是,在软件开发过程中改变需求又是难免的,由于外部环境的变化,相应地改变用户需求是一种客观需要,显然不能硬性禁止客户提出改变需求的要求,而只能依靠科学的产品控制技术来顺应这种要求。也就是说,当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。所谓基准配置又称基线配置,它们是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。

基准配置管理也称为变动控制:一切有关修改软件的建议,非凡是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。绝对不能谁想修改软件(包括尚在开发过程中的软件),就随意进行修改。4、采用现代程序设计技术从提出软件工程的概念开始,人们一直把主要精力用于探究各种新的程序设计技术。60年代末提出的结构程序设计技术,已经成为绝大多数人公认的先进的程序设计技术。以后又进一步发展出各种结构分析(SA)和结构设计(SD)技术。实践表明,采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。5、结果应能清楚地审查软件产品不同于一般的物理产品,它是看不峥摸不着的逻辑产品。

软件开发人员(或开发小组)的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过程比一般产品的开发过程更难于评价和管理。为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。6、开发小组的人员应该少而精这条基本原理的含义是,软件开发小组的组成人员的素质应该好,而人数则不宜过多。

软件工程篇6

Software Engineering and Philosophy

Song Lianpeng

(Cangzhou Medical Insurance Management Center,Cangzhou061001,China)

Abstract:Although software engineering software to solve the crisis,Moreover,nearly three decades of development,software engineering has accumulated a considerable number of methods and experience,but these methods are not static and experience a panacea,only a constant practice of software engineers to choose the right method in order to develop good software.How to choose the appropriate method to do,important way is to use philosophy to software engineers through the whole process of software engineering development.

Keywords:Software engineering;Philosophy;Thinking methodology

软件工程是软件生产和软件管理的工程科学。是应用计算机科学、数学及管理科学原理来开发软件工程。发展到今天,软件智能程度越来越高,系统越来越复杂,怎样才能开发出好的软件工程?有些人可能认为只要学好计算机科学、数学等理工学科,就能做好软件开发。其实不然。笔者认为,用好哲学思想才是开发出高水平软件工程的关键。哲学对软件工程的开发具有指导作用。

一、软件工程分析中哲学思想

如果从哲学的角度去审视一个事物,那么就应该本着“跳出画外看画”的原则去把握它,真正的分析方法应该是从整体上去把握它,绝对不能形而上学。当拿到一项软件开发的任务时,首先,应该站在整体的角度,分清楚软件工程中的“元素”都有什么:比如从人的角度划分有业务方、实施方和监理方等,从流程的角度划分有立项、需求、设计、实现、确认和支持等。然后,你一定要本着辩证唯物主义的基本原则,来对这些元素进行分析,再结合一个特定的历史背景,得出一套整体的软件工程规划蓝图来。如果你仅仅从站在自己团队的角度去思考问题,那是不行的,真正的软件工程的哲学应该是把尽量多的系统以及客户需求等“元素”结合起来,运用辩证唯物主义方法进行分析,得出一个整体的、最优的软件系统结构模型。即“整体规划、分步实施”。

二、软件工程设计中哲学思想

在设计方案时,我们绝对不能用静止的眼光来看待客户需求,因为客户需求是变化的,不是一成不变的。一旦需求变更,就会导致大量的开发返工,所以说静止的方案绝对不是一个好方案。我们应该遵循一个前瞻性原则,那就是尽量考虑将来都会发生哪些事情,即遵循“架构设计可扩展”的原则,为许许多多将来可能的发生变化的需求或是新技术预留出接口来。当然,这种方案设计的思路会大大增加设计的难度和开发的工作量,但这是必须要做的事情,因为我们应该从整个软件工程发展的角度去思考问题,与时俱进,即我们经常说的“用户的需求总是在变化,做方案应该多为用户考虑,尽量降低需求变更对方案的冲击”。绝对不能用静止的眼光去看待用户的需求。

三、在软件测试中哲学思想

软件测试工作也是软件工程开发中比较重要的工作,虽然软件测试处于起步阶段。软件测试需要什么样的专业基础还没有定论,但哲学思想应该贯穿整个测试工作中,测试的目的是为了发现软件中尽可能多的缺陷,这里缺陷是一种泛称,它可能是功能的错误、性能低下、易用性差等等。测试总是先假设程序中存在缺陷,再通过执行程序来发现并最终改正缺陷。理解测试的目的是个很重要的意识问题,而这种意识恰恰是哲学思想。

四、开发团队中哲学思想

工作在第一线的软件开发人员是程序员和项目经理,他们决定着软件的命运。良好的程序员队伍和出色的管理是软件项目成功的必要条件。管理不是管制。管理的目的是让大家一起把工作做好,并且让各人获得各自的快乐和满足。在项目完成时,他们会自豪地说:“看看我们通过努力取得的成绩吧”。所以管理者不能老惦记着自己是一个官,而应时刻意识到自己是责任的主要承担者。作为软件工程的项目经理,让大家都能够有一个更高的站位,调动团队每个人的积极性,发挥每个人的想象力,不去计较某个项目组多做一点还是少做一点,。用历史唯物主义观点来发现软件开发中的矛盾点,用辩证唯物主义观点来解觉这些矛盾点。其实就这样做过一段时间之后,你会发现,遵循了这个原则的人,恰恰就是这个原则的最大受益者。

参考文献:

软件工程篇7

按照循序渐进,由浅入深,逐层推进的原则,盐城师范学院信息科学与技术学院将软件工程专业的实践教学体系分为四个层次:课程实验、课程设计、综合实训、毕业设计。其中,综合实训是以前期课程实验和课程设计为基础,综合运用多门相关课程(群)知识完成一个工程项目的实战训练,并作为后续毕业设计的预演,是整个实践教学体系中承上启下的关键环节。在软件工程领域,软件开发与软件测试是目前两个主流的就业方向,也是综合实训课程训练的重点。软件开发综合实训要求以软件生命周期为主线,综合运用程序设计、数据库应用、软件工程、软件项目管理等学科知识,严格遵守软件开发的流程与规范,完成一个软件项目的开发,最后提交软件产品和相关技术文档;软件测试综合实训要求学生以软件开发综合实训所完成的软件产品为被测对象,综合运用软件测试与质量保证、软件测试流程与方法、测试框架与自动化测试等学科知识,使用软件测试的方法与技术,设计测试用例和测试脚本,完成被测软件的功能测试与性能测试,生成测试报告,并对测试结果进行分析。综合实训的培养目标为:通过软件开发与软件测试项目的实战训练,全面提升学生综合运用所学知识与技术解决实际工程问题的素质与能力,进一步加深学生对工程化、系统化原则与方法的理解,为胜任现代软件工程环境下高质量软件的开发、测试和维护工作奠定坚实的基础。

3CDIO模式下课程改革与实践

根据综合实训课程的定位和培养目标,借鉴和吸收CDIO工程教育理念和标准,按照“以CDIO培养大纲为指南、以项目为载体任务为驱动、以工程能力培养为目标”的原则,对我们综合实训课程改革进行了探索与实践。

3.1全真模拟企业环境,实施一体化训练模式

软件开发和软件测试是综合实训的主体内容,传统的训练模式将二者割裂开来,分两个阶段分别完成实训项目,这种方式没有考虑软件开发与软件测试的内在关联与协同性,与企业真实环境也不相符合;并且由于两个实训阶段时间跨度较大,项目衔接性差,效率低下,实训效果也大打折扣;而在真实的企业环境中,软件开发小组和软件测试小组共同对同一个项目负责,各司其职,协同完成整个项目。鉴于此,我们采取“全真模拟、同步协作、角色互换”的策略,实施软件开发与软件测试一体化的训练模式。具体地说,整个实训过程完全模拟企业真实环境,将某个项目分配给由若干学生临时组成的项目组,该项目组又细分为开发小组和测试小组,分别负责软件的开发与测试工作;项目完成后,开发小组和测试小组角色互换,重做该项目。实践表明,一体化的训练模式能实现软件开发与软件测试的无缝衔接,学生能在更为真实的环境中参与整个项目过程,体验不同角色的职责范围,并通过不同的角色转换,使学生更深刻认识到开发人员与测试人员协同合作对完成整个软件项目的重要性。

3.2项目驱动,全面实践CDIO

CDIO的核心就是企业与社会环境下的构思、设计、实现和运作系统,它展示了一个产品或系统完整的开发过程,也体现了“做中学”和“基于项目的教育和学习”的精髓。从软件开发与软件测试的角度,无论是以软件生命周期为主线的开发过程,还是以测试流程为主线的测试过程,无不体现着软件产品从构思到运作的整个生产过程,与CDIO理念不谋而合。这里,我们以项目为载体、任务为驱动,以CDIO方法论为指导,严格按照“构思、设计、实现和运作”四个不同阶段来开展实训过程,以培养学生对产品、过程和系统的构建能力,增强学生的工程化意识。CDIO与软件开发、软件测试过程的对应关系

3.3分组互学互助,培养团队协作能力

团队能力是CDIO大纲要求工程毕业生必备的一种能力,也是软件企业非常看重的一种职业能力。在实际实训过程中,我们模拟企业真实环境,将所有学生分为若干项目组,每个项目组又细分为开发小组和测试小组,各小组由一名组长和若干名组员构成。根据任务分工不同,每名学生都被赋予一定的角色,组员在组长的指挥协调下通力合作,共同完成实训项目。实践表明,分组模式能较好地激发学生的学习热情,提高学习效率,而且也营造了良好的学习氛围,组员之间分工协作,互学互助,学生的沟通能力、协作精神和团队意识大为提升。

3.4面向全体,务实勿虚,促进共同进步

综合实训是一种典型的自主学习课程,学生在任务的驱动下以小组为单位协作完成实训项目,但由于任务分工不合理、学生自制力差等原因,容易导致小组内个别技术较好、自觉性高的学生承担大部分甚至全部工作,而部分学生却人浮于事,使团队分工协作流于形式,不利于全体学生的共同进步与提高。为避免此类现象的发生,我们考虑在角色分配和任务分工时,尽量使学生都能承担软件设计、编码、测试用例设计、脚本设计、测试实施等较为具体的工作,使学生通过具体的训练来提高专业技能,而对于需求分析、计划制定、总结报告等相对较“虚”的工作则由组长带领全体组员共同完成;同时,任务分工也充分考虑学生原有的技术基础、兴趣爱好和特长。这种分工方式在尊重学生个体意愿的基础上使得每个人都有具体明确而又力所能及的任务分工,能充分调动学生的学习积极性,激发学生的学习潜能,促进全体学生的共同进步与提高。

3.5实施多维度考评体系,注重过程考核和能力考核

考核是对学生学习成果的认定和评价,良好的考核机制能对学生的学习过程和学习动机产生正确的指引作用,促进培养目标的达成。在实训课程的考核上,我们以CDIO大纲要求的能力培养为导向,学习过程与学习结果并举,实施多维度的考评机制,每名学生的成绩由平时成绩、所在小组成绩和个人成绩三部分组成。其中,平时成绩主要考评学生的职业态度与能力,小组成绩主要考评学生所在小组的整体表现和工程实作能力,个人成绩主要考评学生个体所承担任务的完成质量,且每项成绩的考评方式也是多元的,力求做到公平、公正、合理。在小组内部,同组学生的小组成绩相同,但平时成绩和个人成绩各异,引导学生在努力完成各自任务的同时,重视组内的协作互助,并通过各个个体的高质量工作提高整个团队的工作质量。实践表明,该考评体系既重视最终学习成果的呈现也关注学生学习过程中的表现;既重视团队整体的工作效率也关注学生个体在团队中的价值;既强调学生专业技能的训练和工程能力的培养也关注学生职业素养和个人能力的提高,有效避免了传统评价方式只看结果不看过程、评价指标单一化、评价结果趋同化的弊端。

软件工程篇8

软件体系的结构有很多种不同描述方式的定义,现阶段比较认可的定义为软件的体系结构是:设计软件时的一种层次,其是计算过程之外的数据架构设计和算法设计。软件的体系结构主要处理以下几方面的问题,即对全局或者组织的有效性控制、数据的存取、同步、协议通信,以为设计元素提供特定化的性能,与设计方式,从而使得设计方案具有较高的功能与可选择性。

1.2软件体系结构的形成与发展

在初期,为满足较大规模主机的需求,软件采用的是mainframe类型的结构,此结构需要在主机上集中数据、程序与客户,GUI界面是非常少的,同时在访问远程数据库方面也是较为困难的。随着计算机科学技术的发展、个人电脑的迅速推广,这一结构在应用中也逐步被淘汰掉了。互联网的出现与发展深刻影响着应用软件传统的开放方式。以web与互联网为基础的应用与软件系统则需要更加灵活与开放的体系结构。伴随着日益增多的商业性系统在互联网架构上的应用,一种更为灵活、功能性更为丰富的结构日益为人们所熟知并使用起来,,即“三层或者多层计算”形式的结构。客户层:用户端请求与接口的生成地,为人师所熟知的应用包括胖客户等。服务器层:较为普遍使用的应用是业务代码运行应用服务器和web服务器。数据层:具有代表性的应用是关系式数据库与后端数据信息资源,如SAP\Oracle等。

1.3软件体系结构的发展趋势

(1)信息交换;现在的ADLS绝大一部分是和领域有一定关系的,因此并不利于说明不同类型的体系结构。但是这些不同领域的、具有针对性的ADLS在一些方面又存在的共通性与相似性,进而导致资源的重复冗余。实际上,大部分的ADLS都有着相同的概念。采取怎样的方式方法将各种语言以同一公共形式的方式综合起来,使得各类型的体系结构能够交换各自的描述信息,将会是未来软件系统结构实践与研究的一个重点。

(2)设计环境与工具;软件体系结构的研发设计工作是软件工程中相当重要的一部分,其计算机辅助设计手段是非常重要的。应开发出一些列的工具性软件以对体系结构进行更好地分析与描述,在开发阶段进行工具的转换,进而实现阶段性成果的自动化转换,比如,将需求规格的说明转化成构建等。到目前为止,很少在这一方面的进行较为深入细致地研究,尤其是可应用在实际开发项目中的环境与工具就更少了,因此这也将会是未来软件系统结构实践与研究的一个重点。

(3)体系结构的再次开发;当下,软件系统越来越具规模,结构也变得愈加复杂,但系统数量却没有明显增多,反而呈下降趋势,这样很多剩下的系统就被重复利用了。这种重复利用也就是软件体系结构的再次开发,其利用方式就是将软件系统的代码抽取出来,找出其中有用的结构信息,然后再经过一些必要处理方式,如实例化和统一描述处理,以此构建系统化的体系结构。通过这样的利用过程,软件体系结构的再次开发就显得尤为重要,因为这样可以将以往本应淘汰的系统结构升级过后搭建进化型的系统,再次开发过后的软件系统不仅使人们对原件的水平了有了更深层次的提高,而且也是目前软件体系结构的升级和进步。而这种软件的开发方式其目的就是在于为一些特定领域搭建需要的结构构件,比如当下比较流行的人机交互界面和机器人。正是如此,软件体系结构的开发就变得越来越重要,其应用也开始变得越来越广。

2组建软件工程

组建是有着一定的功能,可以独立地进行工作或者可以与其他的组建配合起来协同工作的程序体,组建使用的方式与组件的生产、开发并没有直接联系。若将软件系统看作为众多组件的集合,从外部形态看,构成系统的组件被分为下列类型:

(1)成熟且独立的组件。这种类型的组件隐藏了全部的接口,用户只要输入按照预先设定的命令便可进行使用。操作系统、DBMS等都属于这种类型的组件。

(2)有限制条件的组件。这种类型的组件可以提供结构,同时指出使用的前提与条件,其在装配的过程中,资源会产生覆盖、冲突等影响,在使用前应对其进行测试,比如各种数据库等。

(3)适应型组件。采用接口技术或者进行了包装,处理了资源冲突与不兼容性,可以直接地进行使用。

(4)装配型组件。在安装这一类型的组件时,已装配在信息系统、DBMS或者操作系统等不同的层次之上,使用胶水代码便可实现连接使用。当下,很多软件提供商所研发的软件就属于这一类型。

软件工程篇9

__依据甲方的需求,并本着平等互利的原则,甲乙双方经友好协商,就甲方的医院管理信息系统(以下简称_______系统)的应用软件工程签订本合同。

第一条 适用法律

1.1 本合同适用法律为:《中华人民共和国技术合同法》、《中华人民共和国著作权法》和《中华人民共和国计算机软件保护条例》及《中华人民共和国经济合同法》等有关国家法律法规。

1.2 上述文件时间有不一致时,以日期在后的文件为准。

第二条 合同范围

2.1 乙方负责完成甲方的_______软件系统。涵盖的范围_______系统软件安装、调试和对整个_______系统的技术支持、服务与培训等工作。

2.2 产品内容(价格见附页)

第三条 责任和义务

3.1 双方共同责任

严格根据本协议实施本项目的内容,并协商解决合作中出现的有争议的问题。

3.2 甲方的责任和义务

3.2.1 按本合同的付款条款支付所需款项。

3.2.2 负责项目中的领导、组织和协调工作。

3.2.3 提供场地、人员、相关设备、必要的文档资料和数据,协助乙方做好_______系统的实施工作,并且甲方运行用友医院管理信息系统的设备环境,应满足软件对运行环境的基本要求。

3.2.4 试运行结束后______天内,组织人员和乙方人员一起组成验收小组,并安排场地和设备,进行_______软件试运行的验收工作。

3.2.5

a.甲方定期做好系统数据备份,并对备份数据进行妥善保管。

b.甲方在应用过程中发现软件出现异常,应及时与乙方取得联系,并记录当前故障现象,便于乙方作出诊断。

c.甲方在乙方服务人员服务完成后,配合检查软件系统运行是否正常,并在现场服务请求单上签字确认。

3.3 乙方的责任和义务

3.3.1 按照本合同所规定的时间完成甲方相关人员的培训和_______系统软件安装、调试及数据初始化,并与甲方一起组成验收小组进行验收。

3.3.2 对甲方_______进行一年内免费的软件升级、服务、培训、技术支持。

3.3.3 无偿向甲方提供相应的软件使用文档,包括《操作手册》,并保证上述文档的清晰、完整和正确。

3.3.4 乙方对甲方在使用用友软件过程中,因设备故障、操作失误等造成的数据丢失、利润或营业额损失或费用增加,以及因不按正常操作规范使用软件或软件被盗、损失、损毁、误用所造成的损失不负责任。

第四条 版权

4.1 乙方拥有本_______系统软件的版权(即著作权)。

4.2 甲方拥有本_______系统软件在本医院(______________医院)内部的使用权。

4.3 甲方应尊重从乙方购置的应用软件的注册版权,遵守国家《计算机软件保护条例》有关规定,不得以任何形式再次转让、租赁该软件,并不得以任何形式或手段解密该软件。

第五条 技术指标

5.1 ___________信息管理软件______________。

5.2 本系统基于___________结构。

5.3 乙方向甲方提交的文档应齐全、正确和可读性强。

5.4 应用软件的联机帮助应清晰可读,系统错误信息应清晰明了,界面应友好,并易于操作和维护。

5.5 本系统应充分考虑到今后的扩充和升级,应具有良好的开放性和可扩充性。

5.6 本系统应具有可靠的安全和保密机制,以确保数据完整、安全和不被非法用户登录。

第六条 交付计划

6.1 软件培训___________天

6.2 系统安装____________天

6.3 软件调试_____________天

6.4 系统初始化__________天

第七条 费用及支付方式

7.1 费用

7.1.1 本合同所述价格均为人民币含税价。

7.1.2 本合同所述用友医院信息管理系统(_______)金额总计为人民币_________元。

7.1.3 乙方免费培训用户方人员,培训地点:甲方所在地。

7.1.4 自应用软件通过验收之日起,一年内乙方免费负责应用软件的升级、系统维护和技术支持。

7.2 支付方式

7.2.1 甲方将以转帐支票或信汇、电汇等银行托收的方式向乙方支付。

7.2.2 合同生效后,由乙方开始_______软件的实施工作,当乙方软件安装、调试完毕后,甲方于______年______月______日前一次性向乙方支付全部软件款, (人民币)______元。

第八条 服务与技术支持

8.1 操作人员培训

8.1.1 培训时间为______天。

8.1.2 培训地点:甲方所在地

8.1.3 培训内容:_______系统软件的使用。

8.2 系统实施

8.2.1 _______系统软件安装:指_______系统软件交付甲方后,软件的安装、调试及系统环境的设置等,包括:服务器

操作系统设置、网络环境设置、数据库系统环境设置、客户机操作系统设置、网络协议设置、应用程序的安装、调试及参数设置。 8.2.2 _______系统设置:包括应用项目、基础数据的设置(指导)。

8.2.3 初始数据录入:协助并规范甲方人员进行初始数据的录入和转入。

8.3 系统维护

8.3.1 乙方向甲方提供的为保证本系统正常运行的现场系统维护项目包括:

--应用软件在运行中的故障带来的排错工作。

--应用软件与系统软件及数据库系统适配带来的调整工作。

--甲方非正常操作带来的系统及数据的修复工作。

8.4 系统升级

8.4.1 系统升级指由乙方开发技术更新、应用系统升级或原有模块新功能的增加、补充带来的软件版本升级,由乙方免费向甲方提供。

8.4.2 系统如有重大变更由双方具体协商后另行签署协议。

8.5 技术支持及服务

8.5.1 一年免费服务期满后,乙方将向甲方收取服务费,收费标准为每年收取软件合同价的______%,或每次上门服务收取服务费______元人民币,又或甲方向乙方购买服务卡(金卡:______元/______次/______小时响应、银卡:______元/______次/______小时响应、铜卡:______元/______次/______小时响应)。甲方可根据具体情况选择适合的服务方式。

8.5.2 乙方通过以下方式为甲方提供技术支持及服务:

--热线电话:______、 传真:______

--乙方在internet站点的_www、 mail、ftp等服务,提供软件下载、热线响应等先进的网络支持。

8.5.3 乙方的服务承诺:

a.乙方接到甲方通过电话、信函、传真、电子邮件、网上提交等方式提出关于用友_______软件的服务请求后,在24小时内给予响应并提供服务。

b.乙方提供给甲方的服务,必须按照合同规定的服务内容进行。

8.5.4 如因乙方原因,单方解除上述条款,使甲方用友_______系统不能正常运行,应赔偿由此带来的一切损失。

8.5.5 系统升级及费用:若医院需要进行不同版本的系统升级,升级费用按软件合同价的20%收。_

第九条 保密原则

项目中所涉及的双方的内部资料、数据和其他商业信息,未经有关方许可,任何一方不得以任何形式用于合同之外的目的,不得以任何形式向其他方泄露。任何一方泄密,另一方有权追究泄密方的经济和法律责任。

第十条 转让

乙方不得将合同转让。

第十一条 违约责任

1)甲乙双方本着真诚合作、相互信赖的原则,根据国家相关的法律、法规,协商解决在本合同执行过程中可能出现的违约纠纷和违约责任。

2)甲方在规定时间内不配合乙方进行_______系统验收,视同验收通过。

3)以上应付合同款逾期一个月未付,乙方有权将软件收回。

4) 违约处理:

甲方没有按照合同要求履行甲方应承担的责任,甲方应该承担由此带来的相关结果。

5)乙方免责条款:

1.乙方对甲方在使用用友软件过程中,因设备故障、操作失误等造成的数据丢失、利润或营业额损失或费用增加,以及因不按正常操作规范使用软件或软件被盗、损失、损毁、误用所造成的损失不负责任。

2.乙方不承担因甲方人员进行非法操作、感染病毒、硬件出现故障导致的数据混乱、丢失责任。

3.乙方有权拒绝甲方提出的合同规定之外的服务请求。

第十二条 争议与仲裁

甲乙双方如对合同条款规定的理解有歧义,或者对与合同有关的事项发生争议,双方应本着友好合作的精神进行协商。协商不能解决时,依照《中华人民共和国经济合同法》,可向国家规定的仲裁机构申请调解或仲裁,任何一方可直接向人民法院。

第十三条 不可抗力

13.1 不可抗力的内容按我国有关规定条款执行

13.2 不可抗力对合同双方均适用。在合同生效后,如果发生不可抗力而不能履行合同时,则由事故发生一方,取得公证机关的不能履行或不能全部履行或延期履行本合同的证明,甲乙双方可凭此证明解除全部或部分相关责任。

第十四条 合同变更、补充及终止

14.1 本合同自双方签定之日起生效,如果双方均未发出书面终止通知,则合同自动延续。

14.2 本合同为双方的最终合同,未经双方书面同意,不得对此作任何修改。如有未尽事宜,经双方书面同意后,可签订书面补充协议。补充协议同本协议具有同等法律效力。

第十五条 合同效力

本合同一式叁份,甲方执贰份,乙方执壹份,每份具有同等法律效力。

第十六条 合同有效期和效用性

1.本合同须双方签字并加盖公章或合同章生效;本合同一式两份,双方各执壹份,具有同等法律效力。

2.本合同的有效性不因双方代表的职务变换、工作变更、工作调动等情况而受到任何影响;本合同的有效性不因双方法人的变更而受到任何影响;本合同的有效性不因双方单位名称的改变而受任何影响。

甲方:_____________________

地址:_____________________

甲方负责人:_______________

甲方代办人:_______________

甲方单位(盖章)___________

开户银行:_________________

乙方:_____________________

地址:_____________________

乙方负责人:_______________

乙方代办人:_______________

乙方单位(盖章)___________

开户银行:_________________

帐号:_____________________

软件工程篇10

开发管理为现阶段组件工程开发中的一项重要工作内容。在开发了组件化软件工程之后,使工业化的软件工程成为了现实,专业化的流水线分工用很少的组件开发岗位就能够予以实现,对专业编程岗位不用过多的选择应用。但是,系统分析员在当中是绝对不能缺少的,设计组件系统的工作人员和维护管理组件库的工作人员为软件工程管理中的基础岗位,因此,对于软件工程中所涉及到相关知识,他们必须要认真扎实的进行掌握,然而,随着组件工程的发展,就不再过多的需要那些大量的编程人员。为了能够协调的开展起各个岗位的工作,将工作效率提升上来,为软件工程进行开发时的一个重要环节。在开发组件软件工程的过程中,对于接口标准一定要予以符合,并且还要通过严格的测试,在对通用性、互操作性和重用性进行了综合的考虑之后,进而将可信任和可靠的商业化软件构建起来。

软件工程篇11

用软件工程的方法开发网络课件的科学性与必要性软件工程采用工程的概念、原理、技术和方法来开发和维护软件[2]。如果用软件工程的方法开发课件,可以提高成品率高,降低错误率,而且可以减少费用,并增加课件的可维护性。文中用软件工程中最经典的瀑布模型开发了网络课件。传统的瀑布模型如图1所示[2],相对应的课件流程如图2所示[3]。

第一,每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。完整准确的文档不仅是软件开发时期各类人员之间相互通信的媒介,也是运行时期对软件进行维护的重要依据。

第二,每个阶段结束前都要对完成的文档进行评审,以便尽早地发现问题改正错误。事实上,越是早期阶段犯下的错误,暴露出来的时间就越晚,排除故障改正错误所付出的代价也越高。因此,及时审查,是保证软件质量,降低软件成本的重要措施。

总体规划这一阶段要对该课件总体上进行分析,要对投入的人力资源、课件开发的成本、课件的开发时间、课件开发及运行的平台等提供书面的分析报告,并报有关部门(学校教务处)进行评审。本阶段要求用户(教务处)与开发商(计算机系)就课件功能达成一致,如有改正意见,则立即执行。尽量把所有的问题与分歧在这一阶段解决,如果将问题与疑虑带到下一阶段,将造成很多意想不到的麻烦。

教学设计这一阶段要求有一线教学的教师参加,由他们提出教学计划。本课件的制作采用的蓝本是由清华大学出版社出版的、谭浩强主编的《C程序设计》第二版[4]。课程主要教学内容以目录树形式按章、节、小节组织(如图3所示)。

点击网页左边相关章节,网页右边就显示出相应的章节内容,这样就可以非常方便地在课程结构中浏览课程的内容(如图4所示)。教学内容中的重点、难点和典型例题要配备程序流程的交互动画和程序执行的演示动画,以直图3课件总体设计观生动的形式加深学生对知识点的理解和掌握。在实验教学内容中,针对TC集成开发环境的一些常用菜单项和基本操作,要配备多媒体演示,便于学生跟踪学习,提高上机实践能力。还应提供丰富的程序设计课外读物,增加了学生学习高级语言程序设计的兴趣。以上内容从多角度、多方面引导学生主动、积极地学习。

采集素材素材不仅仅指教学所涉及的内容,还包括课件开发中所要用到的非文字和多媒体素材。其中教学内容可以自己进行输入,也可以利用现有的软件资料加以修改和编辑(如PDF格式的电子图书),变成符合自己要求的课件素材。而非文字素材除了和教学内容相关图片的资料外,还应包括制作网页过程中要用到的图片。多媒体素材大部分都需要自己制作,如FLASH动画演示,一般没有现成的,这需要开发人员必须对FLASH动画制作比较熟悉,又对教学内容比较熟悉(如图5所示)。素材的采集在整个开发环节中所占的时间至少三分之一,需要开发人员细心的工作。丰富的素材是一个课件成功的关键,不可偷工减料。确实因为疏忽而遗漏的素材可以在生成脚本的时候再补。

软件工程在网络课件开发过程中的应用图5多媒体演示过程。脚本的设计在课件的开发过程中占有举足轻重的作用,详实完备的脚本不仅仅可以充实课件内容,更可以提高课件的开发效率,提高课件的质量。在本实例中将素材进行了分门别类的整理,对于文字资料、图片资料、FLASH动画素材、网页制作素材和一些不能区分类别的素材都分别放在相应的文件夹,供制作时使用。

单元设计这一步是课件的具体制作过程。开发人员可以按照预先设计好的风格按顺序制作各个章节。而像FLASH动画和RM文件的制作,则由专人进行。这些文件制作好后可以分别插入到各个章节。单元设计实行做好一单元,检查一单元。尽量把所有的错误和增添在这一步完成,把课件的错误率降到最低,减轻课件的维护难度。

组装测试这一工作要求开发人员不仅有好的技术,还要有好的美术功底。一个课件的界面是否美观易用也直接影响到教学的效果。这一阶段主要完成各个章节和模块的连接,工作思路有两种,第一种是全部连接后集中测试,这种方法不是很理想,不容易发现错误,对错误也很难定位;在本课件中采用第二种思路:增殖测试法[2],即连接好一个模块便集中测试一次,及时发现错误并改正。最后组织一次专家评审,要求有成果鉴定书等书面报告。

软件工程篇12

工程教育认证;标准;华盛顿协议;软件工程;毕业要求

0引言

2016年6月2日在吉隆坡召开的国际联盟工程大会上,经过《华盛顿协议》组织的投票表决,我国正式成为《华盛顿协议》签约国。这是我国高等教育发展史上具有里程碑意义的一件大事,意味着我国工程教育实现国际多边互认,教育质量得到国际上的认可[1]。国内高校顺应形势,积极参与工程教育专业的认证工作。湖北工业大学机械设计制造及其自动化专业2016年顺利通过工程教育专业认证,这为我校其他工程专业申请认证提供重要参考和指导。在中国工程教育认证协会修订的《工程教育认证标准》中,对“毕业要求”提出12条要求[2]。针对这12条要求,结合软件工程课程教学内容,对软件工程课程的教学进行思考和探索,深刻理解标准的含义和意义,能更好地培养出符合《工程教育认证标准》的软件工程人才。

1工程教育认证标准

为了与《华盛顿协议》的标准实现实质等效,结合我国工程教育的事实与特点,中国工程教育认证协会修订了《工程教育认证标准》,对工程专业的学生、培养目标、毕业要求、持续改进、课程体系、师资队伍、支持条件7个方面规定了标准和要求[3]。其中,在毕业要求中,对工程知识、问题分析等12个方面提出了具体要求,符合工程教育认证以产出为导向的理念。

2软件工程课程教学内容

软件工程这一学科的产生源于软件危机。软件固有的成本高、逻辑复杂、风险大、维护困难等特点以及人们对软件的错误认识导致软件危机的产生。人们逐渐认识到必须使用规范的、工程化的方法开发软件,因此,软件工程应运而生。软件工程是应用了工程化思想的计算机领域的一门交叉学科,软件工程课程是软件工程专业学生必修的核心课程,其教学内容围绕软件生命周期的各个环节[4],讲授一个软件项目从立项到维护各个阶段的基本概念、相关技术、开发操作等。这门课程在整个本科4年的课程体系中起承上启下的作用,需要数据结构、数据库、面向对象语言与程序设计等前期课程知识的铺垫,不仅对后续软件需求工程、软件测试、软件项目管理、软件工程经济学等专业课程的学习有重要影响,还为学生以后的毕业实习、毕业设计和走上工作岗位所必需的工程实践能力奠定基础。

3认证标准的思考与探索

3.1认证标准要求与课程内容的对应关系

《工程教育认证标准》中明确指出工程专业学生毕业时必须达到12条要求,而软件工程课程大纲里面列出了学生学习这门课程应该掌握的所有知识和内容。通过对比,我们发现《工程教育认证标准》中的12条毕业要求与软件工程课程的章节内容有一定的对应关系,如图1所示。

3.2认证标准要求与课程内容对应关系的说明

R1工程知识:要求学生能够将数学、自然科学、工程基础和专业知识用于解决复杂工程问题。在软件工程的经济可行性分析中,需要用到数学和经济学的知识,以估算软件项目的成本、收益、投资回收期、投资回收率等指标,判断项目在经济上是否可行。在需求分析、软件概要设计、详细设计、软件开发等阶段,需要用到数据结构、数据库、算法、面向对象语言等各种数学、计算机专业知识,如图2所示。R2问题分析:要求能够应用数学、自然科学和工程科学的基本原理,识别、表达并通过文献研究分析复杂工程问题,以获得有效结论。在软件需求分析中,需要根据用户提出的软件需求,建立结构化或面向对象的需求模型。R3设计/开发解决方案:软件概要设计将软件系统设计为若干模块相互连接的关系;软件详细设计是为每一个模块设计详细的算法、数据结构等;软件开发将软件详细设计的结构转换为可运行的代码。R4研究:软件交付给用户使用之后,还需要一直对软件进行维护。维护过程中,为了分析研究软件工作的效率,需要对软件运行中的各种指标进行统计分析,计算出软件的可靠性、失效率等,为软件的改进提供数据支持。R5使用现代工具:在软件工具这一章节,介绍为了提高软件生产率和改进软件质量,辅助和支持软件开发和维护的各种工具,包括计划工具、分析工具、设计工具、测试工具等。学生应能了解多种工具以及它们之间的差异,熟悉和掌握某些常用工具,会根据具体情况选择合适的工具。R6工程与社会和R7环境与可持续发展:在软件立项之前,需要从各方面进行可行性分析,为项目是否能立项提供决策支撑。除了技术可行性和成本效益之外,政策可行性和市场可行性也是影响软件能否立项的重要因素。政策可行性考虑是否有政府的政策支持或限制该软件项目,软件项目是否危害健康、触犯法律、影响环境和社会的可持续发展等。市场可行性分析调查市场上同类产品的市场份额、市场成熟程度等。这些内容的学习能让学生有强烈的社会责任感,教育他们无论是软件开发员,还是项目的管理者,在软件立项之前,就应该预想软件项目对社会、健康、安全、法律以及文化的影响。R8职业规范、R9个人和团队、R10沟通和R12终身学习:在软件工程师道德规范这一章节中,ACM/IEEE给出软件工程师应该具备的职业道德准则,包括公众感、客户与雇主、产品、判断力、管理、专业、同事和自己;除此之外,还给出软件工程师的职业素质,包括团队合作能力、人际交往能力等[5]。这些内容与R8—R10和R12完全吻合。R11项目管理:无论是在软件项目立项时,还是在软件开发过程中,都需要对软件项目进行管理。在立项阶段需要立项管理,通过规范化的流程,判断并采纳符合企业根本目标的立项建议,提供合适的资金和资源,使立项建议成为正式的项目;或者拒绝不能给企业带来利益的立项建议,避免浪费人力资源、资金和时间。立项管理包括立项建议、立项评审和项目筹备。需求分析阶段需要进行需求管理,管理产品和产品构件的需求,识别需求与项目计划及工作产品的不一致,包括变更控制、版本控制、需求跟踪和需求状态跟踪。在软件概要设计、详细设计、开发阶段,同样需要随时跟进项目的进度,在每一阶段结束后召开评审会议,检查每一阶段的成果是否与相应文档相符合。

3.3教学改进措施

发现《工程专业认证标准》要求与软件工程课程内容之间的对应关系,能够帮助我们深刻理解认证标准蕴含的含义和意义。在软件工程课程的理论教学内容和实践环节中,着重强调与认证标准要求对应的教学内容,可以为学生日后从事不同工作和扮演不同角色做好准备。(1)研究者。加深学生对理论知识的理解,帮助学生达到对理论知识举一反三的水平,能将其他学科的理论应用到软件项目研究中。(2)开发者。提高学生的动手实践能力,强调上机、课程设计等实践环节的重要性,帮助学生在实践中掌握多种软件工具,能独立地分析和解决问题。(3)管理者。项目的管理对一个软件项目能否顺利完成起着举足轻重的作用。在教学中,平时容易被忽视的软件项目管理章节也应该被重视起来,为将学生培养为优秀的项目管理人员打下良好的基础。(4)无论是研究者、开发者,还是管理者,都应该遵循最基本的软件工程师道德规范,对社会和环境有强烈的责任感和主人翁意识。这需要我们教育工作者在对学生进行智育的同时,也不要忘了对学生的德育。

4结语

申请工程专业教育认证是高校教育工作者反思工作中的不足,进一步提高教学质量的契机。挖掘《工程教育认证标准》中毕业要求与软件工程课程教学内容的对应关系,为未来的教学工作提出一系列改进措施,为软件工程专业的工程认证提前做好准备,也为软件工程教学质量的提高提供理论支持。

参考文献:

[1]林健.如何理解和解决复杂工程问题:基于《华盛顿协议》的界定和要求[J].高等工程教育研究,2016(5):17-26.

[2]刘成林.工程教育认证背景下现代控制理论课程教学分析与改革[J].中国教育技术装备,2016(18):106-108.

[3]吕品,王淮亭,汪鑫.“对标国外大学,深度融合认证”的软件工程专业人才培养方案[J].计算机教育,2017(1):38-43.

软件工程篇13

性别:男

民族:汉

政治面目:团员

学历(学位):学士

专业:工业电器自动化

联系电话:12345678

手机:139000234

联系地址:北京市东城区XX大街10号

邮编:100007

Email Address:

呼机:66881122-1234

教育背景

毕业院校:北京工业大学 1993.9--1997.7 工业电器自动化专业

主修课程:自控原理,电力拖动,电子技术,自动测试系统,计算机组织与结构,计算机硬件及接口电路设计,汇编语言程序设计,C.C++程序设计,软件工程计算机网络原理等课程

另:其他培训情况

*微软认证系统工程师培训,培训科目:Windows NT Technology,Windows NT Enterprise,Networking with TCP/IP on Windows NT,ⅡS4.0 WindowsNT

*英语通过国家四级考试,阅读和翻译能力较强,曾多次为机械工业出版社翻译计算机书籍,并获出版。

工作经历

*1998年5月---至今 XX公司

网络系统工程师

Cisco、IBM网络产品的技术支持

网络系统方案(局域网和广域网)的设计和规划,解答用户的疑问,根 据用户需求提出最佳解决方案;Cisco、IBM网络产品的现场调试和系统维护

客户技术培训,及公司内部的技术交流与培训

网络基本原理及技术:LAN,WAN,TCP/IP,ATM等,以及Cisco、IBM 网络设备调试过程;讲解IBM AIX基本系统管理及高级系统管理、Netview、

NFS、HACMP等

曾经参与的项目

设计,安装,调试“吉林97工程”--吉林省电信综合管理系统ATM网络及主机系统,长沙卷烟厂,锦州合作银行,人民教育出版社信息系统;设计云南省邮电办公信息集成系统,济南广电ATM宽带综合业务网、陕西有线电视宽带网。

*1996年9月---1998年3月 XX公司

系统管理员/工程师

CHINAGBN Internet网络信息中心的系统管理

熟练掌握UNIX(SUN Solaris)操作系统、网络管理并参与组建了CHINAGBN Internet网络中心(包括网络设计,安装系统,联调,维护,网络编程)

CHINAGBN 金桥网六城市网络站点的建设

参与各站点Internet网络中心的总体规划和建设及其与卫星主干网的连接,对主干卫星网、X.25分组交换、Frame Relay、ISDN和DDN及其相关设备有所了解

CHINAGBN Internet网络中心Web系统管理员

个人简介

在线咨询
了解我们
获奖信息
挂牌上市
版权说明
在线咨询
杂志之家服务支持
发表咨询:400-888-7501
订阅咨询:400-888-7502
期刊咨询服务
服务流程
网站特色
常见问题
工作日 8:00-24:00
7x16小时支持
经营许可
出版物经营许可证
企业营业执照
银行开户许可证
增值电信业务经营许可证
其它
公文范文
期刊知识
期刊咨询
杂志订阅
支付方式
手机阅读