关注点分离在计算思维和软件工程中的方法论意义(1)
本文关键词:关注点分离在计算思维和软件工程中的方法论意义,,由笔耕文化传播整理发布。
关注点分离可追溯到柏拉图对整体与部分关系的思考。作为基本的系统化计算思维原则, 关注点分离体现 在问题求解、算法设计、软件设计、软件架构描述、软件开发过程等诸多方面。简要归纳了软件和计算的本质特点; 重 点分析关注点分离作为重要的方法论原则在软件工程中的主要作用和体现形式; 介绍了近期有关关注点高级分离的 研究, 包括关注点的多维分离和面向方面软件开发; 最后阐述了关注点分离原则与具体问题具体分析策略相结合
第36卷 第4期计算机科学Vol.36No.4关注点分离在计算思维和软件工程中的方法论意义
何明昕
(暨南大学计算机科学系 广州510632)
摘 要 关注点分离可追溯到柏拉图对整体与部分关系的思考。作为基本的系统化计算思维原则,关注点分离体现在问题求解、算法设计、软件设计、软件架构描述、软件开发过程等诸多方面。简要归纳了软件和计算的本质特点;重点分析关注点分离作为重要的方法论原则在软件工程中的主要作用和体现形式;介绍了近期有关关注点高级分离的研究,包括关注点的多维分离和面向方面软件开发;最后阐述了关注点分离原则与具体问题具体分析策略相结合的实践意义。
关键词 关注点分离,计算思维,软件工程,方法论中图法分类号 TP301 文献标识码 A
Separation of concernsasaMethodologicalPrincipleinComputationalThinkingandSoftwareEngineering
HEMing xin
(DepartmentofComputerScience,JinanUniversity,Guangzhou510632,China)
Abstract Theideaofseparation of concerns(SoC)canbetracedbacktoPlato'sthinkingontherelationshipbetween
theuniverseanditselements.Asafundamentalsystematicprincipleincomputationalthinking,itisincarnatedinmanyaspectssuchasproblemsolving,algorithmdesign,softwaredesign,softwarearchitecturesdocumentinganddevelopmentprocesses.Theessentialcharacteristicsofsoftwareandcomputingweresummarized.ThesignificanceandembodimentsofSoCasamethodologicalprincipleinsoftwareengineeringwereanalyzed.TherecentresearchesonadvancedSoC,in cludingmultidimensionalSoCandaspect orientedsoftwaredevelopment(AOSD)wereintroduced.Thepragmaticsig nificanceofcombiningseparation of concernsprinciplewithconcrete problem with concrete analysisstrategywerestressedtosolveacomplexproblem.
Keywords Separationofconcerns(SoC),Computationalthinking,Softwareengineering,Methodology
计等设计方法中,同时也体现在软件开发过程、软件项目管理
[5]
以及软件开发方法学等诸多方面。在某种意义上,正是对软件开发不同关注点的分离视角和关注重点的差别,导致了软件开发技术和开发方法的演变和发展[7]。
因此,从方法论角度,研究关注点分离在计算科学和软件工程中的作用,对相关教学和实践都有重要的现实意义。本文简要归纳了软件和计算的本质特性;重点讨论了关注点分离作为方法论原则在软件工程中的主要作用和体现形式;最后介绍了近期关于关注点高级分离的研究,包括多维关注点分离[8]和面向方面软件开发(AOSD,Aspect OrientedSoftwareDevelopment)[9]。这些创新的思想涉及专门编程技术和整体开发方法,被认为是继结构化开发范型(Paradigm)及面向对象开发范型之后最重要的新的软件开发范型。
1 引言
关注点分离(SeparationofConcerns,SoC)是日常生活和生产中广泛使用的解决复杂问题的一种系统思维方法。大体思路是,先将复杂问题做合理的分解,再分别仔细研究问题的不同侧面(关注点),最后综合各方面的结果,合成整体的解决方案。
在概念上分割整体以使实体个体化的观点可以追溯到柏拉图[1]。柏拉图把探究自然比作在关节处切割自然,窍门在于要找到关节,不要像生疏的屠夫那样把关节切得粉碎。庄子在!庖丁解牛 寓言中也阐释了类似的真知灼见。
作为最重要的计算思维[2]原则之一,关注点分离是计算科学和软件工程在长期实践中确立的一项方法论原则[3]。此原则在业界更多的时候以 分而治之 (Divide and Conquer)的面目出现,即将整体看成为部分的组合体并对各部分分别加以处理[4]。模块化(Modularity)是其中最有代表性的具体设计原则之一[2,5,6]。
关注点分离原则不仅体现在问题求解、算法设计、软件设
2 软件和计算的本质特性
软件(系统)作为软件工程的产品,和其他工程活动的产
品一样,是一种人工制品(artifact,artificial)[10]。作为人工系统的软件,有它特定的结构(Structures),能表现特定的内部
到稿日期:2008 10 30 本文得到广东省自然科学基金(编号5006061)资助。
何明昕(1963-),男,副教授,博士研究生,主要从事软件工程、并行分布式网络计算、电子商务方面的研究,E mail:mx.he@。本文为作者在2008年全国 计算思维与计算机导论 专题学术研讨会上所作的大会报告。
本文关键词:关注点分离在计算思维和软件工程中的方法论意义,由笔耕文化传播整理发布。
本文编号:190216
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/190216.html