论文部分内容阅读
摘要:软件工程学是指导计算机应用专业学生进行软件设计的工具。针对专业学生的特点,从实际教学出发,在对多个小软件项目的研究基础上,提出首先结合小软件项目,以传统的结构化的方法为主线全面系统的进行教学设计,将软件工程思想贯穿于教学中,这样可以从综合的观点看待整个系统开发过程。然后以快速原型法、面向对象法为辅线扩展学生进行软件设计的思路,从而总体上提高学生进行软件设计、编写文档的能力。
关键词:软件工程;结构化方法;软件设计;文档
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)04-11143-01
1 引言
随着计算机应用领域的不断扩大,软件规模也越来越大,复杂程度不断增加,软件产品从数量和质量上已不能完全满足社会要求,从而导致了软件危机的产生。为了摆脱这一困境,北大西洋公约组织成员国软件工作者曾两次召开会议(NSTO会议),讨论摆脱软件危机的办法,提出了软件工程的概念。
人们发现将传统工程学科的原理、技术和方法应用于软件一样可以起到使软件生产规范化的作用,它有利于组织软件生产,提高开发质量,降低成本和控制进度。人们曾从不同的角度给软件工程下定义,但它们的核心内容都是以工程化的方式组成或组织软件的开发,其中涉及软件计划、开发和维护各个阶段。
自软件工程的概念形成以来,这一研究领域吸引了众多的科学技术人员,开展了大量理论和技术性的研究,从而形成了软件工程这一计算机科学中的分支。
2 结合小软件项目,以结构化的方法为主线全面系统的进行教学设计
2.1软件工程教学的目标
软件工程教学的目标是让学生采用软件工程的思想、方法、技术学会以较少的投资、获得易维护、可靠性高和易理解的软件产品。尤其对于计算机系的学生,一方面要求其掌握基本的知识、概念,更重要的是用软件工程的理论去指导其软件设计,在教学中,通过几个小软件项目的实例把软件开发方法中主要方法—结构化方法、快速原型法、面向对象法作为讲授的重点去指导学生。并让学生以小组形式去真正开发一个小软件项目,实际全面体会软件工程的思想,深刻理解所学知识对其在软件设计中的帮助及对今后毕业设计的指导作用。在开发的每个阶段,都要编写相关文档进行提交,课堂上随机抽取一至二名同学的报告,师生共同分析,最终确定下一阶段所依据的教学方式。
2.2小软件项目开发的管理
对于我校计算机专业的本、专科学生,今后大多面向中小公司的小工程项目,虽然小项目和大项目的方式不完全一样。但从另一个角度来看,项目的大与小并没有本质的区别,很多方法是共通的,一句话形容就是“麻雀虽小,五脏俱全”。而且对于小项目,人们更易犯一些诸如不进行可行性分析、不写部分相关文档或不经单元测试就系统测试等错误,对开发及日后的维护都会带来很大的麻烦,因此即使是小型项目的开发,仍然应该遵循软件开发的一般规律,必须的步骤不能省略。当然小项目有它自身的一些特点,比如项目功能相对较少 、开发周期较短、开发人员较少,实行起来可以相对灵活些。小项目的所有这些特点对于我校软件工程教学都非常适合,即在一学期内,几个小组成员共同开发一个功能相对简单的小软件项目。
2.3结构化方法实例教学——图书管理系统
为了让学生从整体理解软件工程的思想,教学中采用现代化的教学设备,充分利用教材、电子教案、相关的示范软件,按照软件设计文档需求,利用结构化方法的思想,完善各阶段文档要求,教学中从始至终贯彻SA、SD、SP的结构化设计思想。
2.3.1需求获取
在进入正式开发之前,必须先从用户处获取准确的需求。在这上面花费相当时间是很必要的。针对学生较熟悉的图书管理,要求学生事先去了解本院现行图书管理的某些缺陷、不足,例如,大量混乱的图书查询卡片,或者图书查询信息与实际不符,给管理人员和借阅者带来相当的不便,效率低下等不足,并由教师和学生共同提出界面、功能上的改进等具体方案,要求学生写出《系统目标与范围说明书》。
2.3.2可行性研究
在此阶段,根据图书管理系统应实现的主要功能,例:读者信息查询,书籍信息查询,借阅信息查询进书管理、图书资料管理、基本统计分析等,要求学生分组讨论系统的可行性、写出《可行性论证报告》并提交。通过实例理解这个阶段的任务不是具体解决某个问题,而是研究问题的范围,探索这个问题是否值得去解决,是否有可行的解决办法,并导出系统的高层逻辑模型。教师先充当分析员的角色在课上分析一份报告,估计系统的成本和效益,并且在此基础上更准确,更具体地确定工程规模和目标。
2.3.3需求分析
要求学生按图书管理系统的详细工作流程,运用数据流图,数据字典和简要的算法等工具,导出目标系统的逻辑模型,写出《需求规格说明书》。这个阶段的任务仍然不是具体地解决问题,而是准确地确定,为了解决这个问题,目标系统必须做什么,主要是确定目标系统必须具备哪些功能。学生系统分析员(学生)在这个阶段必须与用户(图书管理人员和部分学生)密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。
2.3.4总体设计
这个阶段回答的问题是:概括地说,应该如何解决这个问题?在充分权衡各种方案的利弊的基础上,拿出一个最佳方案后就是设计软件的结构,也就是确定程序由哪些模块组成以及模块间的结构,画出软件结构图(SC),并设计数据的逻辑结构。教师可以利用上课时间将目标系统的逻辑模型映射为软件初始结构。之后,要求学生根据启发式规则再对软件结构进行修改和优化,提交《概要设计说明书》。
2.3.5详细设计
根据上一步图书管理的SC,选择盒图、PAD图或其它工具详细设计每一个模块,并对数据的物理结构进行设计,将数据分配到各个模块,并提交《详细规格说明书》。
2.3.6编码
选择一种合适的语言,例如对于图书管理系统,用VF6.0较为适合,可以写出正确的、易理解的,容易维护的程序模型。
2.3.7测试
通过各种类型的测试使软件达到预定的要求,可以对图书管理中的部分模块精心设计一批测试用例进行单元测试,再进行集成测试和验收测试,系统地找出软件中潜在的各种错误和缺陷。
2.3.8运行维护
通过各种必要的维护活动使系统持久地满足用户的需要。让学生理解软件的环境的可变,以便进行适应性维护;软件在运行过程中出现错误后的改正性维护;若用户对软件有改进或扩充的要求的完善性维护;也要为软件将来的维护活动预先做准备的预防性维护。
在每一阶段教师将几种成型的方案进行比较,确定优劣,找到最佳方案,通过以上几个阶段的"实战演习",使学生理解了分析设计的思路,基本上保证了软件开发的质量。
3 以快速原型法、面向对象法为辅线扩展软件设计思路
3.1快速原型法教学设计——电子名片管理系统
快速原型法的主要思想是一个要求在短时间内完成一个基本原型,让用户实际看一看未来系统概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后反复改进原型达到最终用户要求的新系统。它适用于功能模糊或经常发生变动的中、小型软件的开发。
例:电子名片管理系统(ECMS)应便于对名片进行分类和管理,提高工作效率,便于操作,能有效地对数据进行更新、查询,并能在一定程度上实现自动化。
利用已学的知识(例如VF6.0)向导快速建立一个具有主要功能的系统(查询、修改、删除),在用户(教师)确定后,逐步增加系统设置、维护、报表、安全性等要求的功能,逐步完善。
3.2面向对象法教学设计——三维立体图
面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决向题的方法与过程,也使描述问题的问题空间与实现解法的解决空间在结构上尽可能一致。
例:鉴于学校平面设计图的单调,不直观,为此开发一个直观,形象,全面的学校三维立体图是十分有必要的。项目名称:石家庄学院三维立体图(软件工具:3DMAX),实现学院介绍自动化,形象化,立体化。本软件旨在为社会各阶层人士了解石家庄学院的全貌提供一个形象、全面的立体图,通过三维动画让人如亲临石家庄学院。本软件处理流程和人们思维方式一致,在重用性和可维护性上都体现了面向对象方法的优点。
处理流程:
(1)系统启动后直接进入开始界面;
(2)根据学校的主线路浏览校园。以三维立体的效果显示学校各楼层的分布,操场的位置,以及各事物;
(3)通过事件驱动机制激活各详细资料;
(4)由关闭系统事件激活关闭系统,退出系统。
4 结束语
软件工程作为软件开发工程化、规范化的具体实施方法,通过小项目的实例教学设计,在文档书写规范化方面以及学习内容链接成线,取得了很好的效果。教师在教学中不仅仅完成了一门课程的教学任务,也使学生对软件方面所学的知识进行了比较完整的概括与总结。
相信随着教师科研水平的提高和教学手段的改进,进一步改善软件工程教学设计的目标一定会达到。
参考文献:
[1]郑人杰,等.软件工程概论[M].清华大学出版社.
[2]张海藩.软件工程[M].人民邮电出版社,第2版,2006,P13-23,P139-240.
[3]齐志昌,谭庆平,宁洪.软件工程[M].高等教育出版社,1997, P302-316.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:软件工程;结构化方法;软件设计;文档
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)04-11143-01
1 引言
随着计算机应用领域的不断扩大,软件规模也越来越大,复杂程度不断增加,软件产品从数量和质量上已不能完全满足社会要求,从而导致了软件危机的产生。为了摆脱这一困境,北大西洋公约组织成员国软件工作者曾两次召开会议(NSTO会议),讨论摆脱软件危机的办法,提出了软件工程的概念。
人们发现将传统工程学科的原理、技术和方法应用于软件一样可以起到使软件生产规范化的作用,它有利于组织软件生产,提高开发质量,降低成本和控制进度。人们曾从不同的角度给软件工程下定义,但它们的核心内容都是以工程化的方式组成或组织软件的开发,其中涉及软件计划、开发和维护各个阶段。
自软件工程的概念形成以来,这一研究领域吸引了众多的科学技术人员,开展了大量理论和技术性的研究,从而形成了软件工程这一计算机科学中的分支。
2 结合小软件项目,以结构化的方法为主线全面系统的进行教学设计
2.1软件工程教学的目标
软件工程教学的目标是让学生采用软件工程的思想、方法、技术学会以较少的投资、获得易维护、可靠性高和易理解的软件产品。尤其对于计算机系的学生,一方面要求其掌握基本的知识、概念,更重要的是用软件工程的理论去指导其软件设计,在教学中,通过几个小软件项目的实例把软件开发方法中主要方法—结构化方法、快速原型法、面向对象法作为讲授的重点去指导学生。并让学生以小组形式去真正开发一个小软件项目,实际全面体会软件工程的思想,深刻理解所学知识对其在软件设计中的帮助及对今后毕业设计的指导作用。在开发的每个阶段,都要编写相关文档进行提交,课堂上随机抽取一至二名同学的报告,师生共同分析,最终确定下一阶段所依据的教学方式。
2.2小软件项目开发的管理
对于我校计算机专业的本、专科学生,今后大多面向中小公司的小工程项目,虽然小项目和大项目的方式不完全一样。但从另一个角度来看,项目的大与小并没有本质的区别,很多方法是共通的,一句话形容就是“麻雀虽小,五脏俱全”。而且对于小项目,人们更易犯一些诸如不进行可行性分析、不写部分相关文档或不经单元测试就系统测试等错误,对开发及日后的维护都会带来很大的麻烦,因此即使是小型项目的开发,仍然应该遵循软件开发的一般规律,必须的步骤不能省略。当然小项目有它自身的一些特点,比如项目功能相对较少 、开发周期较短、开发人员较少,实行起来可以相对灵活些。小项目的所有这些特点对于我校软件工程教学都非常适合,即在一学期内,几个小组成员共同开发一个功能相对简单的小软件项目。
2.3结构化方法实例教学——图书管理系统
为了让学生从整体理解软件工程的思想,教学中采用现代化的教学设备,充分利用教材、电子教案、相关的示范软件,按照软件设计文档需求,利用结构化方法的思想,完善各阶段文档要求,教学中从始至终贯彻SA、SD、SP的结构化设计思想。
2.3.1需求获取
在进入正式开发之前,必须先从用户处获取准确的需求。在这上面花费相当时间是很必要的。针对学生较熟悉的图书管理,要求学生事先去了解本院现行图书管理的某些缺陷、不足,例如,大量混乱的图书查询卡片,或者图书查询信息与实际不符,给管理人员和借阅者带来相当的不便,效率低下等不足,并由教师和学生共同提出界面、功能上的改进等具体方案,要求学生写出《系统目标与范围说明书》。
2.3.2可行性研究
在此阶段,根据图书管理系统应实现的主要功能,例:读者信息查询,书籍信息查询,借阅信息查询进书管理、图书资料管理、基本统计分析等,要求学生分组讨论系统的可行性、写出《可行性论证报告》并提交。通过实例理解这个阶段的任务不是具体解决某个问题,而是研究问题的范围,探索这个问题是否值得去解决,是否有可行的解决办法,并导出系统的高层逻辑模型。教师先充当分析员的角色在课上分析一份报告,估计系统的成本和效益,并且在此基础上更准确,更具体地确定工程规模和目标。
2.3.3需求分析
要求学生按图书管理系统的详细工作流程,运用数据流图,数据字典和简要的算法等工具,导出目标系统的逻辑模型,写出《需求规格说明书》。这个阶段的任务仍然不是具体地解决问题,而是准确地确定,为了解决这个问题,目标系统必须做什么,主要是确定目标系统必须具备哪些功能。学生系统分析员(学生)在这个阶段必须与用户(图书管理人员和部分学生)密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。
2.3.4总体设计
这个阶段回答的问题是:概括地说,应该如何解决这个问题?在充分权衡各种方案的利弊的基础上,拿出一个最佳方案后就是设计软件的结构,也就是确定程序由哪些模块组成以及模块间的结构,画出软件结构图(SC),并设计数据的逻辑结构。教师可以利用上课时间将目标系统的逻辑模型映射为软件初始结构。之后,要求学生根据启发式规则再对软件结构进行修改和优化,提交《概要设计说明书》。
2.3.5详细设计
根据上一步图书管理的SC,选择盒图、PAD图或其它工具详细设计每一个模块,并对数据的物理结构进行设计,将数据分配到各个模块,并提交《详细规格说明书》。
2.3.6编码
选择一种合适的语言,例如对于图书管理系统,用VF6.0较为适合,可以写出正确的、易理解的,容易维护的程序模型。
2.3.7测试
通过各种类型的测试使软件达到预定的要求,可以对图书管理中的部分模块精心设计一批测试用例进行单元测试,再进行集成测试和验收测试,系统地找出软件中潜在的各种错误和缺陷。
2.3.8运行维护
通过各种必要的维护活动使系统持久地满足用户的需要。让学生理解软件的环境的可变,以便进行适应性维护;软件在运行过程中出现错误后的改正性维护;若用户对软件有改进或扩充的要求的完善性维护;也要为软件将来的维护活动预先做准备的预防性维护。
在每一阶段教师将几种成型的方案进行比较,确定优劣,找到最佳方案,通过以上几个阶段的"实战演习",使学生理解了分析设计的思路,基本上保证了软件开发的质量。
3 以快速原型法、面向对象法为辅线扩展软件设计思路
3.1快速原型法教学设计——电子名片管理系统
快速原型法的主要思想是一个要求在短时间内完成一个基本原型,让用户实际看一看未来系统概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后反复改进原型达到最终用户要求的新系统。它适用于功能模糊或经常发生变动的中、小型软件的开发。
例:电子名片管理系统(ECMS)应便于对名片进行分类和管理,提高工作效率,便于操作,能有效地对数据进行更新、查询,并能在一定程度上实现自动化。
利用已学的知识(例如VF6.0)向导快速建立一个具有主要功能的系统(查询、修改、删除),在用户(教师)确定后,逐步增加系统设置、维护、报表、安全性等要求的功能,逐步完善。
3.2面向对象法教学设计——三维立体图
面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决向题的方法与过程,也使描述问题的问题空间与实现解法的解决空间在结构上尽可能一致。
例:鉴于学校平面设计图的单调,不直观,为此开发一个直观,形象,全面的学校三维立体图是十分有必要的。项目名称:石家庄学院三维立体图(软件工具:3DMAX),实现学院介绍自动化,形象化,立体化。本软件旨在为社会各阶层人士了解石家庄学院的全貌提供一个形象、全面的立体图,通过三维动画让人如亲临石家庄学院。本软件处理流程和人们思维方式一致,在重用性和可维护性上都体现了面向对象方法的优点。
处理流程:
(1)系统启动后直接进入开始界面;
(2)根据学校的主线路浏览校园。以三维立体的效果显示学校各楼层的分布,操场的位置,以及各事物;
(3)通过事件驱动机制激活各详细资料;
(4)由关闭系统事件激活关闭系统,退出系统。
4 结束语
软件工程作为软件开发工程化、规范化的具体实施方法,通过小项目的实例教学设计,在文档书写规范化方面以及学习内容链接成线,取得了很好的效果。教师在教学中不仅仅完成了一门课程的教学任务,也使学生对软件方面所学的知识进行了比较完整的概括与总结。
相信随着教师科研水平的提高和教学手段的改进,进一步改善软件工程教学设计的目标一定会达到。
参考文献:
[1]郑人杰,等.软件工程概论[M].清华大学出版社.
[2]张海藩.软件工程[M].人民邮电出版社,第2版,2006,P13-23,P139-240.
[3]齐志昌,谭庆平,宁洪.软件工程[M].高等教育出版社,1997, P302-316.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。