重构定位(共4篇)
重构定位 篇1
一、问题的提出
我国已经成为世界第二大经济体, G D P总量达到5.75万亿美元, 这是政府正确推行科教兴国、激励创新型人才的培养、鼓励推动自主研发和自有知识产权方针所取得的喜人成就。我国“十二五”发展规划明确提出, “坚持把科技进步和创新作为加快转变经济发展方式的重要支撑。深入实施科教兴国战略和人才强国战略, 充分发挥科技第一生产力和人才第一资源作用, 提高教育现代化水平, 增强自主创新能力, 壮大创新人才队伍, 推动发展向主要依靠科技进步、劳动者素质提高、管理创新转变, 加快建设创新型国家”。可见, 创新型人才对于国家发展战略有着举足轻重的作用, 是实现经济转型发展和推动社会建设发展的核心力量。研究表明, 高校教师的角色定位与教学观念决定了其服务的质量, 采取传统型的学生培养方案还是创新型的人才培养方案决定了学生的综合素质和创新能力, 进而决定了整个社会的人力资源存量与增量、产业竞争力和创新力, 而社会竞争力和创新力决定了国家整体经济效益和经济的发展力。当前, 尽管我国在自主创新和研发发展方面取得了较大的发展, 但仍存在科技创新能力不强、产业结构不合理、人才供给与市场需求不相匹配等问题。高校是国家培育战略型、创新型人才的“机器”和“工厂”。在培育创新型人才中, 高校教师作为高校培育人才的核心要素具有至关重要的作用, 高校教师的角色定位往往影响或决定了创新型人才价值理念、社会责任意识、知识基础和创新思维等的有效形成。本文将立足现实, 结合理论, 对传统的高校教师角色定位进行剖析, 针对传统教师的角色定位误区, 提出新时期下高校教师角色重构的路径, 改善创新型人才培育, 推动国家经济发展和社会建设。
二、高校教师角色定位的误区
误区一:教而不育, 功能性观点偏重。高校教师职能定位主要划分为两大块:教学职能 (育智) 和育人职能 (育德) , 即教书育人。但是高校教师在执行中普遍存在侧重于教学职能的完善, 忽略育人职能的实施。任课教师普遍讲求授课技术的进步, 而缺乏对培育人才的理念和知行合一的重视。按照功能主义的观点, 高校教师相当于生产车间上的流水线工人, “按照一定的工艺流程进行加工、组装和叠加, 在很大程度上是机械重复, 他们最关注的是具体方法和操作程序, 是学生这种商品的批量生产。”所以, 高校教师普遍缺乏对育德职责的重视, 忽视或缺乏激励导引学生形成正确的求知习惯和社会责任感。教师的大部分教学活动局限于课堂授课, “课堂上讲好书上的内容就行了”的思想广泛存在高校教师之中, 教师的这种角色定位或缺失导致学生缺乏对学术研究执著的精神和“经世致用”的社会责任感, 缺乏对社会问题的关注和尊重知识追求的热忱。虽然这种定位理念可培养出有知识和技术的人才, 但对培养研究型人才和创新型人才极其不利, 更不用说培养具有社会责任感的好公民了。
误区二:价值中立。在传统的高校教师角色定位中, 普遍认为教师教学过程中不应当带有主观个人情感和个人主张, 主张对知识进行客观、全面、系统的阐述和介绍。这一认识已经在教育家和教师观念中根深蒂固。然而教师作为社会中的个体, 有自己的价值判断和个人主观情感, 这一价值观和世界观, 一直处于被遏制的地位, 普遍认为带有主观情感的教师是不称职的。然而, 随着改革开放和我国经济的不断发展, 各种思想、主义、文化和价值观如凶猛的洪水, 涌入我国。拜金主义、享乐主义、自私自利、虐待动物、藐视生命等各种社会现象和思想不断地侵蚀和冲刷着年轻一代的精神世界和灵魂。同时, 新时期的人们生活越来越忙碌、面对的压力越来越大, 家庭教育功能和社会范式功能在不断弱化。而作为高校教师未能根据客观现实对自身角色定位进行及时的调整, 在传授知识的过程中, 缺乏自己的价值判断和责任意识, 难以起到价值观导引和社会责任教化的作用, 导致学生缺乏内在核心的正确价值取向和价值判断, 容易走上偏激而无知的道路。
误区三:远离政治或盲从政治。针对我国政治和政党的议题, 绝大多数高校教师采取避重就轻的态度, 对国家政策和政治问题缺乏自己的判断和解读。当教学内容涉及政治敏感话题, 往往避而不谈。由于教师视而不见、听而不闻的态度, 导致学生面对社会热点问题、政治时事问题难以形成负责任的判断。高校教师以教书育人为己任, 而育人是潜移默化、日积月累、层层深入的。避开政治、远离政治, 是不可取的态度。生活在社会主义民主社会, 没有一个人可以离开政治。而高校教师对政治明哲保身或盲从的态度, 政治立场的缺乏, 导致部分“有心之士”利用青年学生盲目的爱国主义情怀, 煽风点火, 误导新一代青年学生, 不利于学生正确政治观的树立和培养。同时, 教师这种远离政治的“示范”在潜移默化中造成学生对政治漠然的态度, 不利于学生政治参与热情的培养和政治见识的塑造, 更不利学生政治建设能力的培育。
三、高校教师角色重构
重构路径一:既传授知识与文化, 又创造知识与文化。在教师角色重构的过程中, 应当注意教师育人职能的重视和发展, 改革过往只注重教学技能导致的弊端, 充分关注学生个体的内在差异, 明确教师教学目标和育人目标的平衡。教师在教学过程中, 应当注意正确、健康价值理念的灌输, 将学生价值体系的培养和世界观的塑造提到日常工作来, 体现人文关怀和价值导向作用。近年来高校学生自杀率越来越高, 非精神类疾病自杀率占整体自杀率比重越来越大, 表明高校学生面对问题和现实的能力正在弱化。高校教师应当在社会和家庭功能受阻的时候, 及时进行职能补充, 消解社会冷漠和社会责任感缺失导致的社会问题。同时, 高校教师作为高人力资本的人才, 不应当仅仅局限于传授知识, 应当追求实现个人价值的社会效用最大化。著名教育家雅斯贝尔斯在《什么是教育》中认为, 最好的研究者才是最优良的教师, 只有这样的研究者才能带领人们接触真正的求知过程, 乃至于科学的精神。探索精神和研究精神是新时期高校教师角色定位重构中不可缺少的部分。高校教师应树立终生学习的理念, 走在学术的前沿, 了解学科发展的动态, 真正树立起“海纳百川”、“才高八斗”的研究型和创新型的学者形象, 以自己切实的行动给学生树立榜样和先锋模范作用, 以严谨、细致的态度引领学术研究。此外, 高校教师自身的质疑精神应当得到提高, 针对现有的理论和知识敢于怀疑, 并且引导学生对此进行论述和研究, 有助于学生创新精神的树立和我国创新型人才的培养。
重构路径二:价值社会责任化。社会意识和社会责任感是社会公民素质构建的核心内容。我国学者罗艺提出了“建导型教师”的教师角色定位。“建导”是一种先进的参与性领导技术, 意思是对群体进行建设性的引导与服务, 提供结构性的帮助, 按照专业化的程序和技术来引导群体的活动从而使之达到最佳效果。而绝大多数高校教师在传授知识的过程中, 忽略了自身对社会责任意识的建导作用。知识是需要回归生活、回归社会的, 它不是午夜的幽灵徘徊在半空之中, 而是需要脚踏实地的扎根于人民群众的土壤之中。而大多数高校教师认为, 对社会道德的建树和对社会责任的担当应当是初级教育和社会的职责。其实不然, 作为高校教师更应当担负起这一责任。高校教师对社会问题的价值观念引导和社会责任的承担, 有助于学生在迷失的现实中找到正确的定位和方向, 有助于学生思想品德的健康发展, 也有助于教师职能的全面体现。只有拥有健康的心灵才会有健康的未来, 才会有机会实现个人抱负和价值。需要强调的是, 教师应当是社会中社会责任的担当者和社会问题解决的先行者。通过高校教师树立起道德模范和行为准则模范, 引导学生树立起正确的荣辱观、价值观、世界观和人生观。
重构路径三:人才培养体系和知识体系的参与创造者。作为一名高校教师, 不应当是游离于课程体系设计和知识体系设计之外, 应当参与人才培养的全过程, 包括专业课程的设计和知识的整体架构。传统的观念认为, 专业整体的课程设置和知识体系架构是专业负责人的职责所在。这一认识是明显存在缺陷的。美国课程论专家小威廉姆斯·E·多尔在《后现代课程论》中认为, 教师的作用主要表现在导向、组织、促进、激励、协调和服务等。无论是教学的设计还是执行, 每个教师可以说主动或者被动的牵涉其中。在教学计划的执行过程中, 教师充当教学计划的具体操作者, 应当对整个教学计划有总体的认识和理解, 对教学目的和具体规划有大致的了解和把握, 针对课程设置和课程基础要求应当及时向教学计划制订组提供参考意见, 以便整体教学计划和目标更加科学和可行。
不同学科之间的建设和发展是有一定的逻辑顺序和内在联系, 尊重和按照这种内在联系, 有助于学生整体知识水平和整体能力的培养, 有助于各教师教学课程的开展。要确保这一过程的顺利实现, 高校教师的参与意识、反馈意识和协调意识应当得到提高。只有信息在培养计划制订小组和课程教师之间畅通无阻的传达, 才能使培养计划和培养目标的科学性得到保证。教师不应当是被动的培养计划执行者, 被动的角色定位不利于培养计划的开展和教育过程的实施, 不利于学生对知识的把握和学生创新能力的培养。各方积极主动的沟通和交流, 才有助于各方信息的融合, 高校教师参与人才培养计划的制订和学科建设知识框架的构建有利于学科的科学性和连贯性。
参考文献
[1]李香玲, 万艳玲.新时期高校教师角色定位[J].黑龙江教育, 2009, (4) .
[2]肖帆.新时期高校教师角色定位与素质发展[J].教育与职业, 2009, (8) .
[3]孙冬梅, 梅红娟.从“学者”到“创业者”——论学术资本主义背景下高校教师角色的转变[J].江苏高教, 2010, (2) .
[4]张宇.研究性教学中高校教师角色定位探析[J].扬州大学学报 (高教研究版) , 2008, (12) .
[5]杨穗红.浅析信息社会教师定位和转化[J].学习月刊, 2009, (18) .
实现小说教学内容重构的关系定位 篇2
总的来说,重构小说教学内容,必须明确把握课标对教学的指导关系,定位准确。《义务教育语文课程标准》从目标、内容、方法等层面为文学作品教学也为小说教学的内容确定和具体实施作了规范和指导。《课标》“教学建议”强调,阅读教学是学生、教师、教科书编者、文本之间对话的过程,是学生的个性化行为。“建议”要求“应引导学生钻研文本,在主动积极的思维和情感活动中,加深理解和体验,有所感悟和思考,受到情感熏陶,获得思想启迪,享受审美乐趣。”教师组织小说教学,进行目标定位和内容选择,也即内容重构,是确保内容的针对性、方法的科学性、操作的有效性的前提。小说教学内容重构的目标基本定位是新课标中对文学作品教学提出的“区分”“了解”“欣赏”三个层次的要求。
“区分”这一要求相对简单,学生只要对“写实”与“虚构”有基本的感性认识就能达到。“了解”,则要求学生了解小说体裁的基本特征和主要表现手法。“欣赏”则从情感体验、领悟内涵、获得有益启示方面提出具体要求,并且要求学生能对作品中感人的情境和形象说出体验,品味富于表现力的语言。“欣赏”要求涵盖了“区分”和“了解”,更从知识层面提升到能力、方法和情感层面。因而,小说教学内容确定的主要行动依据在“欣赏”。重构小说教学内容,必须依文本的特质,要依据一篇小说在内容方面的特点,如环境、情节、人物、主题等,以及其形式上的特点如结构、线索、手法、语言、风格等,整体分析,综合把握,根据课文特质提炼出最初的生长点,立好教学内容呈现方式的出发点。
具体来说,教学内容的重构需要因文而异,因生而异,因课程而异,依据文本,多层面多角度辩证地处理好教学过程中的以教学内容为核心的各种关系,重构小说教学文本,实现小说教学内容的准确定位,提高小说教学质量。
一、透视小说场景与背景的关系
小说场景依据其时代的符号性可分为典型的时代性场景和非典型时代性场景。如《最后一课》《芦花荡》《故乡》《孔乙己》《范进中举》《变色龙》等,小说场景具有鲜明的时代性,小说的主旨教学必然要和时代背景紧密联系起来。《芦花荡》作为抗战内容的诗体小说,情节简单,教学重点,一个是从叙事方法的角度体味老头子的英雄性格和传奇色彩,一个是景物描写赏析。无论是人物的传奇色彩还是孙犁“白洋淀”式的描写,都应当放在中华民族抗日战争这个大的时代背景下来设计和安排。而两个教学重点中,更值得关注的是小说《芦花荡》如诗如画的场景描写与现实背景的残酷所达成的艺术的对立与协调。小说教学设计时就应当关注小说场景和时代背景的联系,关注作者“白洋淀”式的描写的艺术魅力,“说一说文中哪些描写表现了战争的残酷,作者又是如何写出芦花荡的美的”,这一个问题的设置,这一个环节的安排,小说教学内里的筋骨与外在的丰满就都有了。
而非典型时代性场景小说如《台阶》《斑羚飞渡》《羚羊木雕》《孤独之旅》《爸爸的花儿落了》等,这类小说教学内容重心则不必努力寻找小说场景与时代背景的契合点,更多关注文本内涵本身,侧重于学生的自主阅读和主观体验,实现近似于的“裸读”,重视文本的纯叙事价值。短篇小说《羚羊木雕》编在七年级上册以家庭亲情为主题的第五单元,小说场景不具有典型的时代特征,这篇小说内容设计应倾向一般叙事作品的主题把握和叙事方法的学习运用,体会人物思想感情,学习一般的叙事方法,小说文体特征性在此文教学中是不必强调的。《爸爸的花儿落了》一文选自林海音的《城南旧事》,《城南旧事》整部小说是有背景的,但是就选文《爸爸的花儿落了》来说,背景的符号性是不强的,文章教学只需围绕情感体验和叙事方法学习来展开,不必多在意小说场景、情节和背景的关系。
二、把握小说人物与作者的关系
小说人物与作者的生活轨迹存在某种交集与重叠,如《社戏》《故乡》,小说生活场景某种意义上说就是作者某个生活片段的还原,小说里的人物生活与作者的经历存在交集和重叠。这样的小说文本教学,既要尊重小说教学的一般规律,又要求教师在教学过程中,引导学生做散文化理解,立足于作者视野里的人物和场景分析,关注小说人物思想情感性格,重视作者的情感体验和表达。在《社戏》《故乡》两篇小说中,“我”都或多或少有作者的影子,作者生活的轨迹与“我”有重叠的地方,把握好文中的“我”及“我”的视野便重要起来。小说的材料组织,小说的主题表达都是要和“我”联系起来,和作者的生活、情感、思想经历联系起来。而且这样的小说,作者的主体意识会更强烈,情感表达与叙事语言就有别于一般,这当然是教师重构小说教学内容过程当中尤其值得关注和精心设计的。在《社戏》教学中设计“品味语言,领略文中描写的风景美、人情美”“在欢快活泼的写人、叙事、绘景中领悟作者对童年农村生活的热爱与赞美,对精神故乡永久的眷恋”,将小说的叙事语言、生活场景、人物情感、作者意图确定为小说的主要教学内容,充分尊重了作者意图、文本特点与学生需要,教学内容简明充实,教学过程简洁流畅。
而当小说作者的叙事角度完全处在旁观者的立场的小说文本,如《变色龙》《孤独之旅》等,教学内容的确定则不必将重点放在对作者写作意图的过度揣度和解读上,更多的是通过小说人物和场景分析以及语言本身,引导学生习得。
三、通览小说文本与编者的关系
小说教学内容的重构,要尊重教材,也尊重并慎重对待编者的编写意图,才能把握内容重构的系统性,避免盲目和无效。从人教版初中语文教材小说文本的编排来看,七八年级基本是按主题编排,不强调小说的特征性,而是突出文本的思想性和一般叙事性教学。如《芦花荡》就被编在以战争为主题的八年级上册第一单元,编者通过战争题材的文本阅读学习让学生看到正义与罪恶、真善美与假恶丑的较量,培养学生正义感、价值观、审美意识和爱国情怀的意图十分明显,所以,进行这篇小说教学,抗日的“英雄”内涵必须得到彰显,才能实现单元教学目的。《台阶》一文以“儿子”的视角讲述了一位普通的农民父亲为盖新屋而耗尽了一生心血的故事,表现了像“父亲”一样的普通人在艰苦的生存状态下为改变现状而不懈努力的故事。“父亲”的形象具有典型性代表性,父亲形象分析与把握自然是此文学习的重点。但是,纵观此文所编入的八年级上册第二单元,编者是把“爱”作为了编排主线,单元意图在突出“爱”。而文本中的“我”与父亲的“关系”显然不是教学重点,重点在突出父亲可敬也令人沉重的顽强精神。所以在教学中,一是要尊重文本,重点分析、突出人物的典型性——“农民”,而不能草率的将教学内容定位在“父子情感”这一编者设计的单元显性要求的层面上;一是在把握“父亲”形象典型性的同时,尊重编者的设想,唤醒学生对“父亲”该有的崇敬,体会作品字里行间流露出的对“父亲”的悲悯情怀。
九年级教材,编者对小说的编排则按照体例进行,同时兼顾内容的特性,专门编有三个小说单元,重视小说特征教学。例如九年级下册第二单元,所选小说文本皆以刻画人物为主,内容选择除了兼顾小说构成各要素,重心当然要落在学习欣赏人物形象,把握人物性格上。既很好贯彻编者的编辑意图,也利于有效开展比较阅读教学,丰富学生人物表现的知识方法,提高表现人物的技能和自觉。九年级上册则安排了两个单元进行小说教学,第三单元《故乡》《孤独之旅》《我的叔叔于勒》《心声》以少年生活为题材,关注小说人物思想、心理、性格的发展之外,移情入文的方法引导和精练准确的言语叙事必然进入到教师的内容规划中。第五单元则分别撷取了我国古典名著中“智取生辰纲”“杨修之死”“范进中举”“香菱学诗”等四个片段,将小说最有特质的引人入胜的情节和个性鲜明的人物带入到学生的学习视野里。
四、紧扣小说叙事与学生的关系
小说教学,小说的叙事方式是学生基于学习的需要而最需要辨识的知识。小说内容重构,小说的叙事方式、语言特色和艺术风格必然是教学内容重构的重点因素。《芦花荡》长于描写,小说人物的描写形象鲜明,富有传奇的情趣;环境的描写富有诗情画意,雅致隽永。这样的叙事,是八年级学生难以理解和把握的,却恰恰是学生阅读过程中容易忽略的且最珍贵的那部分。要让学生欣赏到只属于孙犁的小说魅力,除了老头的英雄形象和抗日爱国主题的理解,从语文能力增长的角度来说,小说的叙事语言则更是此课教学的重点与难点,也是学生语文能力最重要的培育点。《蒲柳人家》运用中国古典小说许多的表现技巧和艺术手法,“乡土”味儿是其最具特色的部分,文本中充溢的牧歌情调、字里行间流动的喜剧色彩、画面中形绘的诗情画意无疑成为学生体验、欣赏的最重要的部分。《社戏》是将人物融入到诗情画意的童年风景中,写意的笔法就是叙事,自然的格调就是人情,品味景物描写的优美、人景相映的和谐、心理描写的细腻,其实就能经济而有效的将学生带进“平桥村”,带进鲁迅先生丰富真挚的语言世界。所以说,学生只有专注地走进这样纯粹的语言世界,才能真正领略乡土文学的风采。否则,撇开这些或者一笔带过,只在人物与情节上来回打转,误把小说当故事,“故事”也许很精彩,但对学生而言,却少了对于语文能力提升的实际价值。所以,领着学生玩味小说中特别的叙事方式、特有的语言味道,才是九年级学生更需要的。纵观初中三年六册教材所收录的二十余篇古今小说课文,由低年级到高年级,随着学生语文知识水平和能力的不断积累和提升,编者编排小说有着由淡化文体重视单纯的叙事到突出小说文体特点强调小说的叙事张力的合规律的设计。这样的安排,颇费匠心。在小说特有的叙事情境里,引导学生对小说由感性认知到理性趋同,实现对小说艺术式样的阅读审美经验的积累,终能达到提升语文综合素养的目的。
五、倚重小说解读与教者的关系
小说教学内容的重构,实施者是教师。小说教学的成败关键,也在教师。小说教学内容是蕴涵于小说教材内容之中的,需要语文教师对小说文本作出合理而富有创造性的教学化处理。在确定教学内容时,语文教师要充分挖掘自己的潜能,以自己的教情、自己学生的学情为前提、以专业的眼光敬业的态度对小说文本的教学价值进行有效重构,使小说文本中蕴含的有用的教学内容在教学过程中转化为教学价值。小说文本内容更接近学生需要的解读,是小说教学内容重构的关键,这是单纯的教材文本、编者、教参或者学生自己都无法做到和不可替代的。正因为如此,小说教学内容的准确定位,最需要教师准确提取文本中最有教学价值的那些,发挥自身教学特长,综合教学实际重构教学内容,呈现给学生课堂以“适合”的价值取向的内容,确定课堂教什么,明确学生学什么,实现课堂教学效益最大化。
教学是动态的过程,内容可以预设,而过程无法预定。从学生的需要出发,提高教师的教学自觉,语文的精彩会愈加的丰富。
重构定位 篇3
程序重构 (program refactoring) 是在保持程序外部可观察行为不变情况下, 对程序代码或模型的内部结构进行重新改造和组织的技术[1]。通过调整程序改善软件的质量、性能, 使其程序的设计结构和架构更趋合理。有效的重构操作, 可以让系统对于需求的变更始终具有较强的适应能力。不断地进行重构可以持续纠正和改进程序设计结构的稳定性、扩展性和可维护性等关键质量属性, 重构因此成为提高软件质量的关键技术之一。鉴于程序重构的复杂性, 人们通常需要借助工具才能顺利完成重构操作任务。重构工具能够自动检测重构安全性约束条件并在修改代码的同时修改所有引用该代码的地方, 以保证程序原有可观察行为和功能的不变性。
重构操作实现的前提是需要寻找和确定重构的位置以及选择适当的重构方法。传统靠人工完成重构定位的方法不仅耗时费力, 而且严重依赖程序设计人员对程序“坏味道[1]”的经验直觉和对代码及其质量的操控能力, 其不可靠和水平差异的人为因素成为重构技术广泛应用的难点和首要障碍。因此, 程序重构定位分析的自动化技术与方法的研究对重构应用显得极其重要。
自动化的程序分析是实现自动重构的先决条件和基本方法。程序自动分析是通过计算机对程序属性和特征进行自动化分析度量, 以验证、发现或者确认程序性质 (或约束、规约) 的过程或活动。程序重构定位自动分析是指用计算机对程序的不规范性和“坏味道”等重构属性和特征进行自动化分析度量, 以发现和确定程序重构位置, 验证重构安全性约束条件并建议实施何种重构操作的过程或活动。与人工分析方法相比, 自动化分析方法无疑是一种高效解决重构定位问题的有效方法。
1 程序重构定位分析的基本方法
1.1 程序分析技术的分类
程序分析是解决重构定位问题的前提和依据。按照程序分析过程“是否依赖于程序运行”的准则, 可以把程序分析技术分为静态和动态两大类[2]。静态分析技术主要通过度量程序复杂度, 分析程序是否满足一定的规则或标准, 分析程序模块中的结构, 并发现是否有结构性的错误。动态分析技术是在程序运行的过程中, 分析程序的运行机制以及收集到的信息, 得出程序的某些特性的方法。动态分析具有灵活性, 较适用于某些采用了同步、异步或者多线程运行机制的程序。而静态分析更加直观快捷, 更适于对程序内容的分析。
由于重构操作对象为静态的程序代码或模型[3,4,5,6]。因此, 静态分析也是最适合解决重构定位问题的主流方法和研究热点。静态分析主要使用符号评估、线性求解以及基于规则的校验等手段[7]。这些技术尽管为特性检测和测试研究奠定了一定基础, 但由于没有考虑复杂性和可处理的程序类型等因素而有一定的局限性[8,9]。
不同的程序语言有不同的语法。对于特定编程语言, 可根据其编码规范、程序建模原则和“坏味道”的分析检测或度量方法来完成重构定位的工作。
1.2 基于度量的分析方法
Frank Simon[10]等人提出的程序重构定位分析方法采用软件度量方法来检测程序代码中出现的“坏味道”。他们开发的工具VRML-Worid Browse虽然操作方便简单, 但由于缺乏对程序重构分析的形式化定义, 自动化程度不高, 重构速度不快, 另外不支持Undo操作。另外, 由于度量结果采用三维空间形式表达, 显示的结果不易理解。
文[11]提出一种基于平均测距的程序重构定位方法, 给出类成员与类之间的平均距离及平均距离差公式, 通过阐述测距原理和计算实例展示了平均测距度量方法在实际系统程序重构定位过程中的具体应用方法。
文[7]中对程序分析技术进行了详细的论述与总结, 并对静态分析技术和动态分析技术在重构定位中的应用进行分析和比较。
1.3 基于规则的分析检测方法
PMD[14,15]是分析程序代码错误和不规范性的最流行的开源工具, 也是目前基于规则程序分析检测方法实现工具的典型代表, 功能强大。与其它分析工具不同的是, PMD可以通过程序静态分析获知代码错误的信息。也就是在不运行程序的情况下, 可以报告程序的错误和不规范性。PMD本身内置了许多可以直接使用的规则, 利用这些规则可检测出程序的许多错误和不合规问题。如: (1) 潜在的BUG:try/catch/switch/finally空语句 (2) 未使用的代码:未使用的参数、局部变量、私有方法等 (3) 可选的代码:String/String Buffer的滥用 (4) 复杂的表达式:不必须的if语句、可以使用while循环完成的for循环 (5) 重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs (6) 循环体创建新对象:尽量不要在for或while循环体内实例化一个新对象 (7) 资源关闭:Con-nect, Result, Statement等使用之后确保关闭掉。此外, 用户还可以定制规则, 检查程序代码是否符合某些特定的编码规范。例如, 用户可以编写一个规则, 要求PMD找出所有创建线程和套接字对象的操作。
通过程序静态分析技术和内建规则检测技术, PMD可以获知程序代码中的许多缺陷和错误, 其分析检测能力取决于构建规则的规模和检测规则配置文件的实现质量[12,13]。基于这种机制, 可将PMD应用于“坏味道”的检测、重构定位以及确定相应重构操作。需要完成的主要工作是根据重构定位需求定制相关的规则并开发对应的检测配置文件来实现扩展PMD重构定位分析的功能。
2 PMD程序重构定位分析过程及其定制规则
2.1 PMD代码重构定位分析过程
PMD是一种基于抽象语法树AST (Abstract Syntax Tree) 和内建规则的代码静态分析检测工具。当使用PMD规则分析Java源码时, PMD首先利用Java CC和EBNF (Extended Barcus Normal Form) 文法[16]产生一个语法分析器, 用来分析普通文本形式的Java代码, 产生符合特定语法结构的扫描器, 同时在Java CC基础上添加语义概念的JJTree, 通过JJTree的一次转换, 将Java代码转换成一个AST。AST是Java符号流之上的语义层, PMD把其处理成一个符号表。然后依次检测PMD规则。每个PMD规则可被看作是一个访问者, 通过遍历AST找出多个对象之间的一种特定模式, 即代码所存在的问题[17]。最后, 将输出报告输出。具体分析流程如图1 所示:
首先通过命令行向PMD传递参数。参数包括源文件所在目录、报告输出格式、所使用的规则名称、使用的编码等。然后PMD将文件流传递给Java CC解析器, 结合EBNF文法进行语法分析, 每个文件经过JJTree的一次转换, 生成对应的AST, PMD再将AST处理成一个符号表, 其中包含一些有用的信息。之后依次对每个PMD规则遍历整个AST, 匹配特定模式, 找出代码的问题。最后, PMD按照传递参数配置生成重构定位分析结果报告。报告中详细给出被检测程序中哪些地方违反了哪些规则, 以及需要执行怎样的重构操作的建议。
2.2 PMD程序重构定位分析的定制规则
PMD的最大优点在于支持灵活扩展, 可以针对不同的语言和需求定制不同的分析规则。针对代码重构定位问题, 首先要解决的就是自定义一套能解决java程序重构定位问题的分析规则。
参考PMD内置规则、Java编程规范和风格、以及福勒提出的程序“坏味道”及重构操作, 我们为PMD自定义扩充定制了33 条Java程序重构定位分析规则及其推荐的重构操作。根据规则的性质, 将它们分为基本、风格、设计、空代码、命名和无用代码6 个类别。表1 给出其中的基本类别的规则列表。
2.3 定制规则的配置方法
当定制的规则较多时, 可将它们分类, 然后为每个类别配置一个独立的xml规则文件。这样, 每个规则文件不至于太过复杂, 利于管理并提高检测效率。另外需要定义一个索引文件PMDModel Ruleset.xml, 其中加入对应类别的xml规则文件的引用, 便于以后规则的扩展。图2 给出我们定制的6 类规则文件在索引文件中的配置形式。
3 定制规则的实现方法
PMD通过配置相关文件实现规则集中每条规则的分析检测。对于PMD扩展定制的程序重构定位分析规则, 我们采用自定义Java类和XPath两种策略开发部署了相应的分析检测程序和配置文件。
对简单规则, 使用x Path表达式进行查询。对复杂规则, 则通过重定义Java分析类来分析源码。二种实现策略均能定位代码中的坏味道, 最终以文本报告的形式输出分析结果, 并针对每条规则给出建议的重构操作。
3.1 Java类实现方法
java类实现方法是在项目存放PMD规则实现类的包com.cm.pmd.rules中新建实现相应规则的类, 并在该类中写入实现代码。然后再在所属类别规则文件中配置对应规则, 有以下元素和属性节点:
name:自定义规则的名字;
language:要检查的语言
message:该规则被触发时, 给出的消息提示;
class:规则使用类的全类名;
description:规则的描述信息;
priority: 优先级别, 从高到低依次是1-Blocker, 2-Critical, 3-Urgent, 4-important, 5-Warning;
example:在CDATA标签中书写一个该规则对应的实例。
上述工作完成后, 就可对java程序代码进行重构分析。使用该规则进行检测可发现违反该规则的程序代码, 实现“违规代码”的定位发现。
图3是While Loops Must Use Braces Rule规则的实现类代码:
其中has Block As First Child方法判别AST中某节点的第一个孩子节点是否是Block节点, 在visit方法中遍历整个AST来判断while节点后是否存在{ }。
While Loops Must Use Braces Rule类在所属基本类别规则文件Basic.xml中对应的规则配置项如图4 所示:
3.2 XPath实现方法
自定义XPath方法依赖PMD的一个内置类net.sourceforge.pmd.lang.rule. XPath Rule来实现。该类使用XPath表达式对已经解析的AST进行查询, 查询到违反规则的节点并输出报告。在所属类别规则文件中配置一条规则, 其元素、属性节点与自定义Java类的配置中的name, language, message, description, priority, example的含义相同, 不同点体现在如下二个方面:
(1) class:x Path规则统一配置为net.sourceforge.pmd.lang.rule. XPath Rule;
(2) properties:这个是xpath必须配置的, 其子节点proper-ty, value值使用CDATA标签配置对应的xpath表达式的形式, 可以有多个property。
例如, 在Basic.xml中使用XPath方式配置While Loops Mus-t Use Braces Rule规则的形式如图5 所示:
自定义java类和XPath配置文件都可准确地对java程序进行重构分析与定位。前者通过抽象语法树更加清晰的呈现出代码违反规则的原因, 后者实现直接检验, 可以更快的实现程序代码错误的定位并以多种方式进行结果展示, 便于理解。我们通过这样的实现机制改进和拓展了PMD的原有功能, 让它适应多样化的程序重构分析需求。
4 实验验证
为了实验的验证, 我们对《java课程设计案例精编》书上的上百个案例进行了实验, 并验证自定义规则的实效性。在实验的过程中, 事实证明基于PMD的规则分析实现重构定位不仅在小规模项目可以正确运行, 而且对于Open CSM这样的大规模文本项目也同样具备有效性。文章篇幅有限, 下面对以一个简单实例阐述其有效性。
4.1 PDM命令行配置参数的扩展与验证
为方便定制规则的实验验证和工具的使用, 我们对PMD的命令行参数进行了扩展改进, 通过传输不同main参数的方式, 获取需要分析的目录、使用的定制规则等相关输入信息。具体配置了如下8 个参数, 它们分别是:
* args[0]: -dir或者-d ;
*args[1]:要分析的.java源码所在目录, 如:C:Sourcepmd;
*args[2]:-format或者-f;
* args[3]: 报告输出格式的类型, 默认为text, 可选有xml、html、csv等;
* args[4]: -rulesets或者 ╞R;
* args[5]: 自定义规则名称列表, 多个规则名称使用逗号分隔, 如a.xml, b.xml;
* args[6]: -encoding, -e;
* args[7]: 指定PMD要读取的java源码文件的字符集, 默认为UTF-8。
运用扩展后的参数和为每条定制规则设计的测试用例程序, 我们分别完成了对所有定制规则的分析检测实验, 得到预期结果, 验证了方法的有效性。
4.2 分析检测实例
下面以检测 “ 缺少大括号的while循环” 规则While Loops Must Use Braces为例, 简要给出利用该规则进行重构定位分析的主要操作与结果。分析的实例程序代码如图6 所示:
首先使用上述8 个配置参数, 调用PMD对图5 所示的实例代码进行输入扫描。具体参数为:-dir C:Sourcepmd -f text -rulesets java-basic, java-design -encoding UTF-8。
然后使用PMD的Design工具对实例程序源码进行语法分析, 将图5 中A、B对应的代码分别生成的对应的AST, 可视化展示的结果如图6 所示。
从图7 中可看出while后是否有{ }的区别:有{}while循环的AST比没有{}while循环的AST多出了矩形标注部分。
最后, PMD读取自定义JAVA类或XPath的配置文件进行程序分析, 检测结束后, 将默认送到系统输出的分析处理输出结果重定向到HTML文件中, 得到表2 所示的程序重构分析定位报告。
5 结束语
软件工程领域中, 程序重构的相关研究一直备受关注。本文在基于PMD开源工具的基础上, 通过实验, 自己定制程序重构定位分析规则, 及实现Java类和x Path两种不同的检测配置策略和方法, 且通过改进PMD的参数传递内容与方式, 获取准确的定位分析结果和明确建议采取的合适重构操作, 拓展了PMD的分析功能和应用范围, 这是不仅是本文的创新点, 也是文章的主要工作内容。后续将继续开展已定位重构的操作实现, 以及过程模式自动识别和重构变换技术的研究工作。
摘要:PMD是最流行的开源程序静态分析工具。基于PMD的抽象语法树分析与内建规则检测机制, 通过定制PMD程序重构分析规则, 采用Java类和x Path配置文件的自定义构造策略与方法, 成功实现JAVA程序的重构定位分析, 产生准确的分析检测报告, 扩展了PMD的重构定位分析功能。文中详细给出PMD重构定位分析规则及其分析检测配置文件实现方法的具体过程、技术细节和分析检测实例。实验研究表明该方法高效快捷, 结果准确。
重构定位 篇4
一、定位:政府社会管理职能的内涵
社会管理是对社会公共事务的管理,是任何时代任何国家的任何政府都必须履行的基本职能。在2005年3月十届人大三次会议的《政府工作报告》中,温家宝总理指出:“社会管理职能,主要包括政府承担的管理和规范社会组织、协调社会矛盾、保证社会公正、维护社会秩序和稳定、保障人民群众生命财产安全等方面的职能。要进一步完善社会管理体制,建立健全处理新形势下人民内部矛盾和各种社会矛盾的有效机制、社会治安综合治理机制、城乡社区管理机制等,加强社会事务管理”。
从总体上说,社会管理职能可以理解为:政府通过制定专门的、系统的、规范的社会政策和法规,管理和规范社会组织,培育合理的现代社会结构,调整社会利益关系,回应社会诉求,化解社会矛盾,维护社会公正、社会秩序和社会稳定,孕育理性、宽容、和谐、文明的社会氛围,建设经济、社会和自然协调发展的社会环境。
二、缺失:政府社会管理在履行中存在的问题
(一)政府社会管理理念和方式落后
在目前的行政文化中,传统“官本位”、“权利本位”、“政府本位”的思想仍然占据着很大的市场。这种“官本位”意识使政府习惯于凌驾于社会之上、企业之上、个人之上,而难以把自己摆到“服务者”、“合作者”的位置。“官本位”思想对社会的消极影响。企业和老百姓受传统“官本位”文化的影响,也习惯于事事依靠政府,存在着“等、靠、要”的依赖心理。这种状况不仅助长了企业、公民的“懒汉”思想,同时也严重制约了社会自主管理能力的提高,抑制了公民社会的成长和壮大。
在管理方式上,大多数政府仍沿袭传统的管理方式,还没有普及电子政务,信息技术并没有得到充分利用,有关社会管理的发达网络还没有建立起来,信息收集落后,很多基层的意见不能及时反映上来,难免会使政府决策失误,企业公民也没有便捷的渠道获得对自己有利的信息。
(二)在政府职能转移过程中,政府社会管理范围过大,没有恰当解决调整后的政府职能社会接管问题
改革开放20多年来我国各级政府职能转变取得了很大成就。但是与党的十六大提出我国全面建设小康社会宏伟目标的要求相比,政府职能转变远远没有到位,仍摆脱不了计划经济体制下形成的全能型政府模式,忽视了在市场经济条件下各级政府应该扮演什么角色的问题,“该不该管、要不要管、哪些该管、哪些不该管”的衡量标准没有确定。许多本应由企业、市场及社会承担的事务,政府并没有放权下来,导致政府社会管理部门权力高度集中。政府职能定位不清、角色不明己成为政府职能转变的阻碍,政府职能不清就必然导致政府管理上的“越位”、“缺位”、“错位”,角色不明就使得政府职能转变不可能根本“到位”。中国政府职能越位、错位使得在政府不该干预的领域,却进行了过多的干预。从而导致政府机构臃肿,效能低下,消耗了大量的公共资源。正如温家宝总理在2008年政府工作报告中指出的那样:政府职能转变还不到位,社会管理和公共服务比较薄弱;一些部门职责交叉、权责脱节,相互推诿,办事效率低下;一些政府工作人员服务意识不强,素质不高;对权力的监督和约束机制不健全,形式主义、官僚主义问题比较突出,弄虚作假、奢侈浪费和腐败现象比较严重。
(三)我国社会管理体制改革滞后,政府构建和谐社会的能力还不强,忽视了相关职能的强化
改革开放20多年来,政府在经济调节和市场监管方面的职能调整相对受到更多的重视,政府在退出经营性、竞争性投资与服务领域,将其还归企业和市场方面取得了一定的成效,而对应当强化的职能关注仍然不够。由于消除政府对市场的不当干预、发挥市场力量是当前构建社会主义市场经济的主导任务,弱化政府职能更为政府和官员所重视、所强调,却在一定程度上忽视了政府在社会管理和公共服务方面职能的强化。在注重发挥市场作用的浪潮中,一些政府及部门有意或无意地淡化了政府的管理,甚至把社会管理和公共服务职能不当、不合时宜地推向市场,导致社会的失序和混乱。
随着我国体制转轨的进一步深入,隐含的各种社会问题越来越凸显出来。在我国现阶段,社会中介组织或第三部门还未真正成为政府职能转移的载体,公民社会的发育仍显迟缓,社会的自主性及自我组织能力不够强,各级官员的新的治理观念还未树立、建设和谐社会的领导能力与行政能力不强。传统类型的社会问题如传染病、自然灾害等依然对人民生活和社会安全构成威胁,而在以工业化、城镇化为标志的现代化进程中,还不断涌现和加剧一些需要面对的失业、贫富分化、生产事故、劳资冲突和刑事犯罪等社会问题。同时,在我国的社会转型还没有结束之时,旧的社会资源分配体系、控制机制、整合机制正在趋于解体,而新的体系和机制尚未完善并充分发挥作用,所以诱发和加剧了一些特殊类型的风险:如贫富差距过大、社会越轨乃至犯罪激增、信任危机和市场失灵等。这些社会问题和社会矛盾给政府的社会管理职能提出了新的挑战和更高的要求。
三、重构:加强我国政府社会管理职能的路径选择
(一)转变思想观念,树立全新的服务理念
由于受中国传统文化消极面的影响,有些政府部门和官员在履行社会管理职能时,其价值取向不是从“公民本位”、“社会本位”、“权益本位”的理念出发,而是“官本位”、“国家本位”和与此相对应的“政府本位”,不是从如何更好地服务公民社会出发,而是从服务政府内部管理、方便官员自上而下的内部控制出发,这对履行政府社会管理职能是很大的障碍。因此,政府的管理理念要由传统经济条件下的监督者、控制者转变为为公民、国家和社会提供公共产品、保障公共安全、保护公共利益和维护社会公平的服务者。
市场经济是开放性的经济,是依靠契约的遵守维系的法制化经济,它要求参与者在地位平等的基础上参与公平竞争。因此,它需要规范化的市场规则和公平、公正地维护这一规则的仲裁人。政府承担这一角色就需要按照市场经济的管理规律为市场经济的公平竞争和公平交易创造良好的外部环境。在市场经济条件下,政府应该树立顾客意识,政府官员应该把公民视为顾客,从而按照顾客的要求高效地提供优质的服务。同时,就政府职能转变来说,这种意识也将直接关系到政府职能的科学定位,政府职能的重要方面就是为公民提供优质的公共服务。
(二)完善公民社会,培育发达的社会公共组织,创造公民社会载体
公民是公民社会的主体,公民社会的形成以现代公民的社会参与为基本前提。如果不能大幅度地提高公民的社会参与程度,公民社会就是无源之水,政府的社会管理就无从谈起。
在现阶段,我国的社会公共组织还不发达,没有巨大的社会公共组织网络,公民社会就无所依托。社会公共组织的发展,是对长期困扰人们的“市场失灵”和“政府失灵”两难问题作出的回应。大力发展社会组织是转变政府职能的关键。社会组织在社会体系中处于一种桥梁的位置,政府向社会分化职能需要社会组织这样的载体和媒介来承担。
(三)完善社会管理体系,创新社会管理和公共服务机制,提高政府能力
“经济繁荣并不必然或自动导致社会稳定。从我国历史来看,严重的社会危机往往发生在经济繁荣期;从许多发展中国家的经验看,不公平、不公正的增长可能因为社会危机而停滞、衰退甚至崩溃。”提高政府社会管理效率和公共服务质量,这要求从政府自身做起。只有建立起与社会主义经济、政治、文化体制相适应的社会体制,才能形成与社会主义经济、政治、文化秩序相协调的社会秩序。因此,完善政府社会管理职能,要与推进政治体制和经济体制改革配套进行,作为深化行政管理体制改革的重要内容,总体考虑,统筹安排。要善于把加强社会建设和管理同推进经济社会协调发展紧密结合起来,同满足群众多样化的生活需要紧密结合起来,同推进基层民主建设紧密结合起来,同加强党的执政能力建设紧密结合起来,把社会建设和管理提高到一个新的水平。
(四)制定和完善经济社会运行规则,激发创造活力,促进经济社会健康发展
制度的有效实施不仅仅取决于制度本身,还取决制度存在的土壤。从制度经济学的角度讲,如果一个社会的基本价值得到坚定而一贯的公认,且如果必要,会得到坚决的维护,它们就构成了该社会的制度支柱,并由此而增加社会有序化的可能性。政府从事社会管理的着力点之一,应当站在全局的高度,创造依规依法有序运行的经济和社会环境。要深入研究社会管理规律,加强社会管理体制的建设和创新,完善社会管理体系和政策法规,整合社会管理资源,建立健全党委领导、政府负责、社会协同、公众参与的社会管理格局。要通过制定和完善市场运行规则,加强市场监管,打击商业欺诈活动,打破行业垄断和地区封锁,使各行各业有序发展。同时要尊重和保护自主创新,利用知识产权保护的规则,使自主创新的成果不被他人侵犯。要通过制定和完善经济社会运行规则,使广大社会成员依规依法积极创造社会财富,实现各尽所能、各得其利、和谐相处的局面。
参考文献
[1]中国行政管理学会.加快我国社会管理和公共服务改革的研究报告[J].中国行政管理,2005,(2).