以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 软件工程论坛 』   (http://bbs.xml.org.cn/list.asp?boardid=48)
----  软件工程教育及教材中存在的问题及解决办法  (http://bbs.xml.org.cn/dispbbs.asp?boardid=48&rootid=&id=53730)


--  作者:zhaochilong
--  发布时间:10/13/2007 4:25:00 PM

--  软件工程教育及教材中存在的问题及解决办法
软件工程教育及教材中存在的问题及解决办法

赵池龙  

我国的软件产业落后于美国、印度、以色列,有各种各样的原因,本科软件工程教育及软件工程教材中的某些问题,不能不说是一个重要原因。作为一名在软件工程领域中从事几十年软件开发、管理、教学和教材编著的人,围绕我国高校本科在软件工程教育及教材中的问题,直截了当地发表一些意见及建议,或许对大家有些帮助与启迪,不妥之处,请批评指正。
 问题1:
软件工程是一门年轻的学科,它正处于青春发育期,许多内容与方法正在快速发展。因此,它必须抛弃那些过时的、不常用的陈旧东西,增加那些新鲜的、正在火热的东西。需要抛弃的陈旧东西有:面向数据流的变换分析法和事务分析法、Jackson方法、Booch方法、Coad方法、OMT方法、VDM方法,以及PAD图、原始E-R图(用一个气泡表示一个属性、用一个棱形表示一个关系)等等。需要增加的东西有:面向元数据的开发方法(作者在2003年提出的方法)、面向过程的管理方法,以及现代E-R图(用CASE工具绘制的E-R图)、软件建模等等。
元数据(Metadata)是关于数据的数据,组织数据的数据。面向元数据的方法,是建设信息系统数据库和数据仓库的基本方法,也是数据库服务器上软件设计、实现和维护的基本方法。
 问题2:
必须纠正“面向过程的方法是传统软件工程方法,面向对象的方法是现代软件工程方法”的片面观点。这种片面观点,在许多软件工程教材中流行。
当前,软件开发存在“面向过程、面向元数据和面向对象”三种方法。对于一个大型多层结构(如B/S)的应用系统,“面向元数据方法用在数据库服务器层次上系统的设计与实现,面向对象方法用在除数据库服务器层次之外的其他层次上系统的设计与实现,面向过程方法用在其他两种方法本身内部函数的设计与实现”。从这个结论出发,我们得出如下的推论:所谓“面向过程的方法是传统软件工程方法,面向对象的方法是现代软件工程方法”的观点是肤浅的。
由此可见,这三种方法不是互相孤立、毫无联系、彼此对立的,而是互相帮助、取长补短、彼此有关的。一般而言,对于一个大型信息系统的建设,由于其分析、设计、实现、测试、维护的重点是数据库服务器上的数据,所以在实施的过程中,在宏观上仍然要遵守“五个面向”的实施理论,即:“面向流程分析、面向元数据设计、面向对象实现、面向功能测试、面向过程管理”。
 问题3:
关于软件测试问题,软件工程教材与软件企业需求相差甚远。在大部分软件工程教材中,仍然以白盒子测试为主来讲解。什么分支覆盖法、什么判定覆盖法、什么语句覆盖法、什么条件覆盖法、什么判定条件覆盖法、什么路径覆盖法、什么条件组合覆盖法等等讲得很细,但在实际测试中,只是在测试核心程序与实时控制程序时使用这些方法,在其他程序的测试中却用得很少很少。
这是因为:在软件企业中,95%以上的测试人员采用黑盒子测试方法,而黑盒子测试方法的实质,就是软件系统(模块)之间的接口测试,这里的接口,应该理解为人与系统的接口、系统与系统的接口、模块与模块的接口。测试执行的方法,就是测试接口处的功能、性能、界面等是否达到设计指标(或用户验收指标)。恰恰在这个最重要的方面,大部分教材讲解得很少。
 问题4:
“软件建模”是软件工程中的一个重大问题,但是大部分教材却很少提及。建模就是建立模型,无论是需求分析、概要设计、详细设计和测试,都存在一个软件模型问题,都需要建模。在什么时候建模和建立什么模型,这是建模方法学问题。用什么工具建模和怎样建模,这是建模的具体操作问题。
Power Designer是数据库建模最好的工具,即面向元数据建模最好的CASE工具之一,计算机及软件专业方向的大学生、研究生和软件工程师必须学会它,掌握它,并用它来解决数据库建模的实际问题。
Rational Rose是面向对象分析与设计建模最好的工具之一,它的应用领域宽,应用时间长,也较为成熟,但是在国内普及面不广。当前,它是IT企业常用的CASE工具之一,计算机及软件专业方向的大学生、研究生和软件工程师必须学会它,掌握它,并用它来解决面向对象分析与设计建模的实际问题。Rational Rose的理论基础是统一建模语言UML,在学习Rational Rose之前,必须对UML有所了解。
“业务模型、功能模型、数据模型”这三个模型的建模思想与建模方法,以及这三个模型的描述方式与“用例图、时序图和类图”之间的关系,是整个建模工作的中心,软件工程的建模章节必须讲透它。
 问题5:
软件项目管理,是软件工程的基础。项目管理的主要途径,是实施CMM/CMMI阶段模型的第二级,即项目管理级,它是用模型的方法,使项目管理在软件企业内部规范化、文档化、制度化、法律化。这个“四化”是由软件项目管理的特殊性决定的,这一点被大多数软件工程教材疏忽了。
 问题6:
关于软件工程的定义,也必须与时俱进。
1993年,权威杂志IEEE对软件工程的定义是:“软件工程是将系统化的、严格约束的、可量化的方法,应用于软件开发、运行和维护中去。”
2001年,软件工程大师Roger S.Pressman 对软件工程的定义是:“软件工程是一个过程、一组方法和一系列工具。”
由于软件技术是飞速发展的,软件管理在软件企业越来越得到重视,所以软件工程的定义是与时俱进的。下面,根据当前软件技术的进展状况,作者2006年给出现代软件工程的最新定义:“软件工程是研究软件开发方法和软件管理技术的一门工程科学。”
这里一是强调开发方法(或者叫做研发/制造/生产),二是强调管理技术(或者叫做过程管理)。当然,开发中有管理,管理是为了更好地开发。所以开发和管理是一个问题的相辅相成的两个方面。许多软件项目的失败,不是在开发方法上出了问题,而是在管理过程上出了问题。所以在某种程度上说,对于一个软件企业,管理过程比开发方法更重要。只有将软件管理的内容也包括在软件工程的定义中,这个定义才全面而广泛。
鉴于上述原因,作者分别于去秋今春,在电子工业出版社出版了两本新书:《实用软件工程 (第2版) 》(赵池龙等编著,2006/09)和《软件工程实践教程》(赵池龙等编著,2007/01),试图在某种程度上解决上述问题,缓解软件工程教育与教材中存在的诸多矛盾。实践证明:北师大珠海分校信息技术与软件工程学院2006-2007年的600名应届本科毕业生,使用该套教材后,当年的就业率为98%,直接参加项目开发或管理的满意率达80%,当年有学生直接当上了项目经理。


--  作者:upczzl
--  发布时间:12/18/2007 3:28:00 PM

--  
虽然我还没毕业,但方向是软件工程的,支持楼主!
--  作者:水果柿子
--  发布时间:1/13/2008 7:07:00 PM

--  
我仔细拜读了<软件工程教育及教材中存在的问题及解决办法>这篇文章,分析的实在透彻,切合实际,可是针对当前大学里的教学情况,要想改变现状,存在的困难远比想象的要多!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
44.189ms