基于UML的OOAD课程知识体系构建研究

2021-05-23 08:44石凤贵
电脑知识与技术 2021年11期
关键词:设计模式软件工程面向对象

石凤贵

摘要:面向对象分析与设计(OOAD)课程是软件工程专业一门专业必修课,培养学生面向对象思想,培养应用型软件人才。分析课程主要知识,包括面向对象分析、面向对象设计、UML。以培养技能应用型为目标,构建课程知识体系,包括面向对象技术、UML软件建模、系统设计、设计模式,通过思维导图呈现。设计一个贴近学生学习与生活的完整案例贯穿整个课程。

关键词:面向对象;课程知识体系;UML;设计模式;软件工程

中图分类号:G642;TP311      文献标识码:A

文章编号:1009-3044(2021)11-0122-04

Research on the Construction of OOAD Course Knowledge System Based on UML

SHI Feng-gui

(Department of Software Engineering, Ma'anshan Normal College, Ma'anshan 243041, China)

Abstract: Oriented-Object Analysis and design (OOAD) is a required course for software engineering major. It trains students' oriented-object thinking and oriented- application software talents. The main knowledge of analysis course includes oriented-object analysis, oriented-object design and UML. With the goal of training oriented-application skills, the course knowledge system is constructed, including oriented- object technology, UML software modeling, system design and design pattern, which are presented by mind map. Design a complete case close to students' study and life throughout the course.

Key words: oriented- object; course knowledge system; UML; design pattern; software engineering

OOAD(Oriented-Object Analysis and Design,簡称OOAD)为面向对象分析与设计,已成为现代软件工程领域系统分析与设计方法,以对象为核心。面向对象在软件系统设计与开发方面已具有良好的性能,主要体现在代码复用、系统维护和系统扩展方面。面向对象分析与设计课程以UML为建模工具建立系统模型,包括面向对象技术知识、UML知识、设计模式,操作性较强,为软件工程课程的后续课程。学生具备了软件工程基础知识,面向对象分析与设计课程在此基础上培养学生软件系统的分析与设计能力,掌握UML绘制系统模型。面向对象分析与设计课程作为后续课程,要与软件工程课程有机衔接,同时对软件工程知识进行扩展,将软件工程知识应用在软件项目开发上。面向对象分析与设计直接关乎软件系统最终的质量和性能,体现软件工程专业应用型人才的培养[1]。

1 面向对象分析与设计课程

专业人才的培养质量取决于专业课程体系的构建,专业课程由不同课程组成。课程知识体系的构建直接影响人才培养质量。面向对象分析与设计课程是软件工程专业核心课程。面向对象分析与设计涵盖了面向对象分析(Oriented-Object Analysis,OOA)和面向对象设计(Oriented-Object Design,OOD)及UML(Unified Modeling Language,简称UML,统一建模语言)。课程的核心是采用OOA和OOD技术,使用UML对系统建模,构建软件系统蓝图。课程主要目标是掌握OOA和OOD技术;UML建模技术;具备系统分析、设计及系统架构能力;熟悉使用流行的系统构建工具[2]。

低成本、开发周期短、高性能等是开发一个软件系统的目标。为保障软件系统符合目标要求,软件工程引入了工程化思想。随着面向对象的发展,面向对象已形成了一套完整的思想和方法体系,广泛应用于计算机的各个领域。

2 软件系统

2.1 软件发展

伴随着信息技术的发展,软件规模越来越大,而且快速发展。如波音型飞机涉及400万行代码,航天飞机涉及4000行代码,宇宙飞船涉及2000万行代码,国际空间站涉及10亿行代码。新的计算和业务需求以及架构需求对软件的发展提出了新要求。不断优化、改善、扩展和重构软件以适应新的计算环境、业务需求以及操作使用环境。应用软件系统也越来越复杂,规模迅速增长,动辄数百万行代码已是常见现象,如谷歌浏览器涉及20亿行代码。

1968年NATO会议提出“软件危机”,主要体现在项目超出预算、超过计划完成时间、运行效率低、质量差、不符合要求,难以管理并且代码难以维护、不能交付。如1961-964年IBM公司的OS/360,1996年阿丽亚娜火箭爆炸,1982-1987年Therac-25软件漏洞造成至少5人死亡,2007年北京机场信息系统瘫痪至少造成84个航班延误。

2.2 软件生命周期

软件从孕育、诞生、成长、成熟、衰亡的生存过程,即一个软件产品从被提出开始研制到软件最终被废弃不再使用为止的全过程,类似于人的一生,如图1所示[2]。犹如设备的生产过程,如图2所示[3]。软件生命周期如图3所示。

3 面向对象方法学

3.1 面向对象思想

面向对象是一种使用人类思考问题的方式来思考客观世界问题,将客观问题抽象为计算机对象。在软件系统分析与设计中应使用这种面向对象思想,学生应掌握并灵活使用这种思想。如果程序员不懂面向对象,那么真的可能被人认为是“程序猿”,像“猿”一样原始和稀少。“面向对象”的思想起源于计算机界一位天才级人物、Smalltalk语言之父“艾伦.C.凯”,他创造性地提出了“面向对象编程思想”,2003年获得图灵奖。

3.2 面向对象方法

对象可以是物理实体,也可以是事物。以认识、理解和描述客观世界的事物的思维方式来分析设计软件系统,这里的事物就是对象。面向对象的核心是类和对象,对象之间通过消息相互通信建立联系,抽象、封装、继承、多态是面向对象的特性。

面向对象方法以对象为核心,包括OOA、OOD、OOP(Oriented-Object Programming,面向对象编程)、OOSM(Object-Oriented Software Maintenance,面向对象软件维护)[4]。面向对象软件开发的基本思路是将客观问题抽象为对象,然后将对象抽象为类,接着对类进行详细设计。因此,客观问题变成了对象的集合,对问题的分析变成对对象的分析。面向对象分析就是从问题域中识别、筛选、确定类的过程,面向对象设计就是给出系统的解决方案。

过去几十年软件发展的四个重大变化,是促进面向对象分析与设计方法迅速发展的重要因素。面向对象分析与设计就是使用UML对系统进行建模,绘制软件蓝图,不考虑软件系统的实现,其本质是一种软件建模技术。面向对象软件系统就是以类为基本单元,通过类进行系统分解,以人类思维方式建立能真实反映现实世界的模型,从而实现模块化、可复用和易维护的软件系统。

4 UML

4.1 UML的诞生

20世纪90年代,Jim Rumbaugh的对象建模技术(Object Modeling Technology,OMT)、Ivar Jacobson的面向软件工程方法(Object-Oriented Software Engineering,OOSE)和Grady Booch的Booch方法3种面向对象建模方法占据了统治地位。

1994年,原Rational公司合并OMT和Booch方法。1995年,提出第一个建议方案即UML0.8,Jackson加入,至此面向对象领域三巨头聚集,共同研究UML。James Rumbaugh、Ivar Jacobson和Grady Booch是UML的主要创始人,结束了“方法大战”,强强联合创造了一种开放的标准。2005年,UML1.4成为ISO国际标准,同年发布UML2.0。2012年,UML2.4.1成为ISO国际标准 [5]。

4.2 UML表示法

UML采用统一规范的符号来表示不同的模型元素,建模时需要遵循UML符号规则。系统的分析、设计、配置、维护等都可以使用UML完成。UML为面向对象分析与设计提供一种统一标准,作为使用人(客户)、需求分析员、系统设计人员、程序员等之间交流沟通的通用语言。

4.3 UML组成结构

UML由视图、通用机制、模型元素三部分构成,组成结构如图5所示。

5 OOAD课程知识体系

课程知识体系直接关乎人才培养质量和能力的培养,课程知识应紧密结合行业要求,为社会培养合格专业人才。面向对象分析与设计课程是高校软件工程专业开设的一门专业必修课,课程名称一般有面向对象分析与设计、面向对象技术、面向对象方法学、软件建模技术等,培养学生软件系统分析、设计及建模能力。

5.1 人才培养目标

习近平曾说过:“网络空间的竞争,归根结底是人才的竞争,建设网络强国,没有一支优秀的人才队伍,没有人才创造力迸发、活力涌流,是难成功的”。这是国家对软件人才的呼唤。高校承担人才的培养,应当以卓越软件人才为目标。卓越软件人才如图5所示。

5.2 课程知識体系

课程以培养应用型人才为最终目标,以应用型软件工程专业学生为培养对象,以应用型和技能型为驱动构建课程知识体系,如图6所示[6]。

5.3 案例选择与设计

面向对象分析与设计课程教学中广泛使用案例教学,也是行之有效的教学模式。针对当前高校开设的面向对象分析与设计课程教学大纲和教材进行调查分析,发现存在一些问题需要去解决。构建一体化案例贯穿整个课程教学和实训。

1)案例选择存在的问题

面向对象分析与设计课程或所使用的教材使用的案例需要具备相关领域的专业知识,然而学生缺乏社会经历和专业知识,不熟悉业务和业务流程,因此学生对所学知识不易理解。另外,大多教材不同章节采用不同案例,案例之间缺乏关联性。如需求分析时使用“网上商城”,系统分析阶段使用“图书管理系统”。无论是需求分析还是系统分析,首先都需要熟悉业务流程。这样学生需要花时间和精力去熟悉业务需求,各章节知识不能前后融会贯通,因此也就导致了学生不能将面向对象技术应用到一个具体的案例中,不能真正体会完整的软件系统开发过程。而且课后实训(作业)是另外一个项目。

2)构建完整案例贯穿整个课程

案例的选择相当关键,案例是否合适,将直接影响课程教学效果。因此,面向对象分析与设计课程选择的案例应当具有较强的实践性,系统业务学生有所接触和体会,最好能贴近学生学习和生活,这样学生更加熟悉系统业务流程,激发学习兴趣,有利于项目的进行,同时有利于培养学生的创新能力[7]。选择的案例要难度适中,要结合专业课程教学体系,符合学生专业知识状况。若知识面过宽或难度大,会打消学生的积极性,降低学生的参与度。应选择一个完整的案例,贯穿整个课程教学,包括课堂演示、课堂实训,课后实训任务,按照软件开发过程将面向对象分析与设计知识串联起来。

因此,可以选取学生比较熟悉的领域案例,如“高校图书管理系统”“网上购物商城”“高校学生住宿管理系统”等。这些系统均比较贴近学生的学习和生活,学生对其中的业务流程比较熟悉。选取的案例应进行适当的处理,更符合用于教学,确保学生容易掌握、理解。

6 结束语

面向对象分析与设计以对象为核心,以面向对象分析、面向对象设计为技术,采用UML对软件系统进行建模。面向对象分析与设计课程以软件工程课程为先导课程,围绕OOA、OOD、UML、软件体系结构构件课程知识,以培养应用型人才为最终目标。课程教学以案例教学为驱动,选择、设计一个贴近学生生活和学习的完整案例贯穿整个课程教学。

参考文献:

[1] 陈丽萍.地方应用型高校《UML面向对象分析与设计》课程案例教学法优化研究与实践[J].忻州师范学院学报,2019,35(5):17-21.

[2] 吴含前,吉逸.《面向对象技术&UML》教学改革与实践[J].计算机工程与科学,2011,33(A1):23-26.

[3] 马丽,单冬红,张国平,等.软件工程[EB/OL].[2020-05-25].https://www.icourse163.org/learn/PDSU-1002125020?tid=1206 863205#/learn/announce.

[4] 刘敏.热轧买验轧机过程控制系统的研究[D].沈阳:东北大学,2014.

[5] 崔小丹.基于UML的软件模型检测方法研究与应用[D].西安:西安理工大学,2015.

[6] 杨少波,卢苇.J2EE项目实训——UML及设计模式[M].北京:清华大学出版社,2008.

[7] 李太平,戴迎峰,黄富琨.案例教学困境及其超越的文化思考[J].高等工程教育研究,2017(4):165-168,191.

【通联编辑:谢媛媛】

猜你喜欢
设计模式软件工程面向对象
“1+1”作业设计模式的实践探索
三维协同设计模式下的航天项目管理实践与展望
交通机电工程设计模式创新探讨
面向对象的计算机网络设计软件系统的开发
面向对象的数据交换协议研究与应用
关于如何创新和完善计算机软件工程管理的探讨
面向对象Web开发编程语言的的评估方法
面向对象信息提取中影像分割参数的选择
互动式设计模式研究