过程塑造(三)代码是最终目的

合集下载

流程再造

流程再造

流程再造——管理的第三次革命本讲重点流程再造(BPR)的概念与产生背景流程再造的意义流程再造的基本原则1、概念20世纪90年代,美国麻省理工学院迈克·哈默(Michael Hammer)教授和CSC管理顾问公司的董事长詹姆斯·钱皮(James Champy)提出了管理流程再造(BPR,即Business Process Reengineering)的概念,即对企业的业务流程进行根本性的再思考和彻底性的再设计,从而使企业在成本、质量、服务和速度等方面获得进一步的改善。

企业流程再造由曾任美国麻省理工学院计算机教授的迈克·哈默博士在1990发表于《哈佛商业评论》的《再造不是自动化,而是重新开始》一文中首次提出。

(Reengineering the Corporation)随后他与詹姆·钱皮于1993年合着《再造公司》一书,并以“管理革命的宣言”作为副标题,从而掀起了世界性的BPR研究浪潮。

哈默本人被《商业周刊》(Business Week)列为20世纪90年代最卓越的管理大师之一,并与钱皮一起被誉为BPR的先驱和权威。

如果进一步扩大企业流程再造的概念,就不仅仅是对流程进行再造,而是要将以职能为核心的传统企业改造成以流程为核心的新型企业。

规范化企业一定要有非常规矩的管理原则,大家都要执行原则。

管理规则最重要的就是它的流程,流程表示企业的工作程序,流程被规范化以后,在一段时间内是固定不变的。

管理的三次革命:当前企业面临的“三C”挑战(因为顾客、竞争和变化这三个词的英文字头都是C,所以我们叫做“三C”挑战):顾客越来越精明,要求也越来越高,他们需要个性化的服务,因此要求企业研发个性化的产品,满足不同层次的客户需求。

中国加入WTO给企业带来非常严峻的挑战。

企业要不停地围绕降低成本和提高经济效益与同行企业进行竞争。

世界经济形势和竞争规则不断变化,科技高速发展,企业要及时调整发展战略,增强竞争优势。

行为养成技术

行为养成技术

第六章行为养成技术本章将详细介绍三种用于发展个体新行为的技术:塑造、渐隐与链锁。

前面几章中我们介绍了正强化、负强化以及间歇强化的技术,这些技术主要用于如何加强和维持个体已有的行为,但是如果所期望的行为在个体身上从未出现过,那么,干预者就需要一些特殊的方法来帮助个体掌握。

本章所介绍的塑造、渐隐和链锁可以用来培养和发展个体的新行为。

第一节塑造一、塑造的概念所谓塑造(shaping),指的是通过对连续趋近于目标行为的行为进行系统的有区别的强化,并最终帮助个体学会新的目标行为的过程,这个过程是个体从不会到一步步学会某个新行为的过程。

在日常生活中,塑造常常被有意或无意地用来培养和发展个体的新行为。

比如,儿童咿咿呀呀学会说正确单词的过程,就是一个塑造的过程。

对于咿呀学语的孩子来说,在他们刚刚学习说话的时候,发音总是含糊不清的,但是父母总会将孩子所发出的声音与某些语言的音联系起来,并为之感到兴奋,不断鼓励孩子继续发出这些音,甚至模仿孩子的发音,当孩子发出这些声音的机会增加的时候,父母会对这些声音加以引导,让孩子所发的声音更加接近正确的语音,当孩子能够发出这些声音的时候,父母又会感到高兴、兴奋,慢慢地,孩子就能够说出正确的单词了。

从这一过程,我们可以看到,塑造一个新行为,就好比一个雕塑家做一个雕塑作品,最初只是一个模糊的大概的产品,然后一点点在陶胚上打磨,最终才显示出雕塑家独特的设计。

雕塑家的每一次打磨,都会让手中的陶胚更接近于最终的作品。

塑造即是如此,要让个体从不会到逐渐学会一个新的行为,需要对个体原有的行为进行仔细的打磨,而这个仔细的打磨就是对不断趋近目标的行为进行有技巧的强化。

在塑造的过程中,有两个非常关键的内容,一是行为目标的逐渐趋近,二是对不断变化的行为的区别强化。

1、逐渐趋近在塑造过程中,个体总是通过某种方式对与最终目标行为非常类似的行为进行区别强化。

因此,个体形成新行为的过程是一个逐渐趋近(successive approximation)的过程。

六年级上册劳动与技术教案

六年级上册劳动与技术教案

劳动与技术教案六年级1、奇妙的针法教学目标:了解钩针技术在日常生活中的使用和装饰价值,掌握持针、绕线的方法,认识几种常见的编织记号,学会其编织的技巧。

课前准备:准备工具,并向女性家长请教,以促进孩子们编织技能的掌握。

教学过程一、学习材料的选择材料的选择上除了教材上运用的,还可以选择其它的线材,如彩带、开司米线、马海毛线等等,工具更是型号多样,棒针的型号从大到小有十几个品种,要求学生按线的粗细合理选择,棒针可以选用铝质或竹制的,钩针也有两种不同的式样,一般来说,教材中的较适合学生使用。

二、汇报课前的学习体会三、自学书上的制作步骤四、互帮互助可以发动男女学生之间互帮,开阔学生的设计思路,同时让对编织内容感兴趣的学生走得更快。

五、课外延伸学习其他的针法。

六、评价:编织是否仔细;技术设计是否有创意;活动中是否积极投入;学习兴趣是否浓厚。

2、美丽的钩针花样教学目标:1.学会欣赏各种形状的钩针编织图案,了解其针法及组合的方式。

2掌握三种针法的编织方法,熟练进行编织,并能对它们进行组合,完成一种简单花样的编织。

教学时间:一课时教学重点和难点;1.教学的重点是掌握锁针、短针、长针的编织方法,并能够将它们组合,编织出一种简单的花样。

2.教学的难点是熟练地运用钩针的三种基本针法。

教学过程:1、谈话引入:先复习钩针起针方法及三种基本针法的编织图示符号及方法;然后分小组讨论“看看想想”中的三种花样分别使用的针法类型及组合方式。

小组派代表汇报讨论结果,然后教师进行总结。

2动手编织:动手编织前,教师要组织他们仔细阅读环状花样的编制说明,交流质疑,然后教师对技术难点进行示范讲解,最后分组练习,互帮互学。

评比;学生将自己的成果拿出来展示,老师评比。

3、香皂结教学目标:1.探究中国结香皂的编织技术,感受它的工艺性与实用性结合的特点。

2.学会中国结香皂的编织方法,编制一份独特的中国结香皂礼物。

3.通过实践深入理解中华民族文化的价值。

《领导学原理-科学与艺术》

《领导学原理-科学与艺术》
可见领导不仅是在正式结构中进行的一种规范化 、科学化的活动, 而且也是在非正式结构中得以施展 领导者影响力的一种艺术化活动。
有必要将职位领导或强制性领导与凝聚性领导区分开 来。领导学把仅仅依靠职权推行领导活动的现象称之为 “Headship”我们可以将这一类型的领导界定为“职位 领导”或“强制性领导”;而把Leadership“界定为“ 凝聚性领导”。基布把“Leadership ”和 “Headship”作为两种相互对立的领导类型进行了严格 的区分。我们从这一区分中就可以深刻地领会领导这一概 念的完整含义。
领导之所以不同于其他的社会活动, 就在于 这是一种必须依靠下属才能将决策方案转化为现 实成果的社会活动。
三、领导的含义
西方学术界至少是从四个不同的角度去界定 领导这一概念的。
第一, 领导者中心说。第二, 互动说。第三, 结构说。第四, 目标说。
领导就是在社会共同活动中, 具有影响力的 个人或集体, 在特定的结构中通过示范、说服、 命令等途径, 动员下属实现群体目标的过程。这 一界定涉及领导活动的前提、主体、结构、手段 与目标五个环节。
最后, 领导与管理的根本区别体现为它们各自 的功用不同, 领导能带来有用的变革, 而管理则是 为了维持秩序。
管理主要处理复杂的问题,优秀的管理者通过 制定正式计划、设计规范的组织结构以及监督计划 实施的结果而达到有序一致的状态。领导主要处理 变化的问题,领导者通过开发未来前景而确定前进 的方向。要达到组织的最佳效果,领导与管理具有 同等的重要性,两者不可或缺。但是大多数组织总 是过于强调管理而忽视了领导的重要性。
(二)咨询从决策中独立出来
决策活动要涉及到多重变量。决策工作对 知 识结构、人员素质、技术水平等要素的 要求相当 高。正是在这一状况下, 咨询业 从决策中分化出 来, 成为一种专业性的工 作。形式多样的知囊团 成为领导活动中一 道独特的景观。从此以后, 领 导者在决策 过程中的功能主要体现为抉择, 而智 囊团 的作用主要致力于对备选方案的提供与论 证。

早期丹佛模式介绍(附计划和步骤)

早期丹佛模式介绍(附计划和步骤)

各位家长,这是我看了早期丹佛模式创始人Sally J. Rogers写的2本书(英文版,一本是写给专业人员的《Early Start Denver Model for Young Children with Autism》,一本是写给家长的《Early Start for Your Child with Autism》。

)以后翻译的部分内容,因为觉得全部翻译出来太慢,就只翻了一部分,有的地方用词不一定准确,估计不会影响理解,写出来的这些应该已经能反映早期丹佛模式的理念和基本操作的方法了,个人认为这两本书写得非常好,能给孤独症儿童的家长特别是小龄儿童的家长很大帮助,如果有家长觉得对孩子无从下手的,建议可以买那本写给家长的书看一遍。

下面我把早期丹佛模式的做法概括地说一下吧:1. 早期丹佛模式是针对小龄儿童的,个人认为如果年龄大的儿童程度还不太好的话也可以参考使用。

早期丹佛模式不排斥其他的理论和方法,实际上它综合了很多理论和方法,比如ABA、地板时光、RDI、PCI。

家庭生活的几乎所有场景都可以用来做教学,要充分利用日常生活中的机会。

2. 早期丹佛模式把儿童的早期发展分为8个领域:接受型沟通、表达型沟通、社交技能、玩的技能、认知技能、精细运动技能、大运动技能、自理技能。

每个领域都分4个技能级别,分别大概对应于发展年龄阶段:12-18个月、18-24个月、24-36个月、36-48个月。

每个领域的每个级别有若干个目标,这些目标从易到难顺序排列,达到这些目标的绝大多数或者全部就代表孩子已经在这个领域达到这个级别的水平了。

(四个级别的不同领域要达到的目标清单请看附件:ESDMscore - (第一级)、ESDMscore - (第二级)、ESDMscore - (第三级)、ESDMscore - (第四级)) 这8个领域应该同步提升,不能偏废。

3. 先评估孩子在这8个领域都通过了哪个级别的哪几个目标,评估孩子在8个领域分别达到了哪个级别,一般来说多数会落在同一个级别上。

企业管理理念·三大管理模式概述

企业管理理念·三大管理模式概述

三大管理模式概述不断变革的管理思想全面创新的管理模式职能管理模式流程管理模式集成管理模式俞章全二〇一二年七月八日提要:如何才能实现全面提高企业整体竞争力,关键是什么?笔者认为,关键是转变观念,吸收国际上最先进的企业管理思想,在企业的管理模式上进行全面的创新,只有管理思想、管理模式的全面创新和变革才能对企业竞争力的全面提高提供根本的保证。

职能化管理模式形成的管理体系是一套金字塔型的层级命令控制体系,而流程化管理模式形成的是一套以流程目标为导向的扁平化的网络状组织机构体系,所谓的集成管理就是一种效率和效果并重的管理模式,它突出了一体化的整合思想,管理对象的重点由传统的人、财、物等资源转变为以科学技术、信息、人才等为主的智力资源,提高企业的知识含量,激发知识的潜在效力成为集成管理的主要任务。

集成管理是一种全新的管理理念及方法,其核心就是强调运用集成的思想和理念指导企业的管理行为实践。

也就是说传统管理模式是以分工理论为基础,而集成管理则突出了一体化的整合思想,集成并不是一种单个元素的简单相加——“1+1=2”。

集成与集合的主要区别在于集成中的各个元素互相渗透互相吸纳而成的一种新的“有机体”。

马克思谈到管理时就指出,管理不仅提高了个人能力,而且还通过管理把许多单个独立的劳动整合起来,从而融合成一股新的力量,而且这股新的力量的效力要远远大于元素个体的简单相加,即“1+1>2”。

流程化管理模式就是以流程为导向,从企业战略和顾客需求的角度出发,以创造更大的价值和更多的顾客满意度为最终目标的改造流程以提高企业竞争力为目的变革。

换言之,流程化管理模式是一种基于业务流程进行管理、控制的管理模式,代表着一种对新的企业组织工作模式的追求,有人把它看成是继“全面品质管理”(TQM)之后的第二次企业管理变革运动,也有人预言它将会成为未来企业管理的主流。

流程管理模式所强调的管理对象是业务流程,所谓流程是一系列相互关联的行为,这些行为可以共同将企业输入转化为输出,并共同为顾客创造价值。

《语文课程与教学论》课后习题答案

绪论一、名词解释1、课程——(1)《中国大百科全书·教育》中对课程的定义是:“课业及其进程。

”广义指所有学科的总和,狭义指一门学科。

(2)一般说来课程至少有两层含义:在广义上,课程指的是一切有规定数量和内容的工作或学习进程;而在狭义上课程则专指学校课程,其基本含义是学校教学的科目及其进程.【常见的课程定义有六种类型:教学科目、教学活动、预期学习结果、社会文化再生产、社会改造、学习经验】2、教学-—教学是一种动态的活动过程;教学是以课程为中介,教师与学生相互作用或交往的过程;教学将促进教师、学生的共同发展.3、语文课程与教学论——语文课程与教学论,作为一门独立的学科,有其特定的研究对象和任务。

语文课程与教学论是一门以研究语文课程与教学问题的学科.语文课程与教学问题是指反映到语文教育工作者大脑中的、需要探明和解决的语文课程与教学的实际矛盾和理论疑难。

语文课程与教学论的研究任务是:认识语文课程与教学现象,揭示语文课程与教学规律,指导语文课程与教学实践.语文课程与教学论研究在完成认识对象、揭示规律和指导实践的任务过程中,实现改进课程质量、促进有效教学和提升学习结果,使学生获得幸福的学习生活和健康发展的目标。

二、试论述语文课程与教学论的研究对象语文课程与教学论是一门研究语文课程与教学问题的学科.它的发展,始于语文课程与教学问题,终于语文课程与教学问题,它以语文课程与教学问题作为自己的研究对象。

具体阐述如下:1.语文课程与教学问题,是指反映到语文教育工作者大脑中的、需要探明和解决的语文课程与教学的实际矛盾和理论疑难.2。

语文课程与教学问题,根据问题的归属分类:(1)有语文课程方面的问题,如:语文课程标准、语文课程内容、语文课程资源,等等;(2)有语文教学方面的问题,如:识字写字教学、阅读教学、写作教学、口语交际教学,等等;(3)有侧重理论方面的问题,如:语文课程的性质、语文课程的目标、语文课程的基本理念,等等;(4)有侧重实践方面的问题,如:语文教学设计的优化、语文教学方法的选择、语文学习方法的指导,等等。

材料与加工工艺之陶艺技法 (1)

表面柔软,质感丰富,显现手工痕迹,有种亲切感。因用手拍击泥团力量有限,不 宜制作太大的泥板。(图160)
3.擀压法 利用特制圆形木棒或钢管擀压泥团,泥团容易成板状。还可用不同厚 薄的术条做泥板厚薄标尺,使泥板的厚度均匀。因擀压祛压力大,面也宽,可制作 较大的泥块。泥板擀压好后,可在表面放置麻布.纤维网,树叶等材料.能在泥板 表面产生不同的肌理效果。(图161)
图177B 用手指夹住边缘,便捏 塑边转动
图177C 对雏形进行调整
第三节 捏塑成型
图177D 直至捏塑完成
图177E 烧制后的捏塑成型作品
第三节 捏塑成型
2.捏塑黏结成型 将复杂的陶艺造型分解成若干小段来捏塑,并相互黏结。首先 用手将立体部分的泥团捏塑成筒形,再捏塑出第二段,迅速与第一段黏结。每黏结一 段,要及时对造型进行调整,依此类推。黏结好大的形体后,表面可作一些点缀装饰, 达到设计的要求,直至作品完成。(图l78A-D)
第一节 现代陶艺的泥条盘筑成型
二、泥条盘筑成型的制作手法 泥条盘筑成型的制作步骤相对严谨,大致包括以下过程: 首先,在转盘上放置木板,木板上放一张报纸,以防止作品底部与木板黏结,
也可以防止作品在干燥过程中底部收缩开裂。 其次 ,将泥料搓成圆条,圆条的粗细由作品的大小决定,一般直径在0.5-
1.5cm左右。先用泥条在报纸上摆放出作品的底部外形,然后层层向内叠加,盘卷 成圆饼状,并将泥条之间用手抹平,使其相互结合紧密,再用手拍打成需要的底部 厚度。在已完成的底部边缘用泥条层层向上盘筑,每盘筑一层需用手扶住外形。
2. 线形装饰:在泥条盘筑的过程中,根据作品外观效果的需要,泥条可上可下, 可长可短、可粗可细、可横可竖、可宽可窄,从而使不同的盘筑手法筑出的线型变 化产生不同的装饰效果。(图157)

什么是少儿编程?

什么是少儿编程?少儿编程一般针对的是小学及以下幼儿设计的编程模式,把原来复杂的英文代码编程语言转换成图形化的,以指令化,模块化方式让游戏,情景动画,积木构件的形式呈现。

旨在孩子九大能力的培养:观察力,想象力,创造力,逻辑思维力,问题解决,空间思维,判断性思维,序列与条件,调试操作能力。

目前最常用的少儿编程软件就是Scratch软件,Scratch是麻省理工媒体实验室终身幼儿园组开发的一套电脑程序开发平台,旨在让程序设计语言初学者不需先学习语言语法便能设计产品。

那孩子为什么要学编程?“在未来,如果你的孩子懂编程,他就是未来世界的创造者;如果他不懂,他只是使用者。

少儿编程并不是为了让小孩子从小开始培养编程以便未来从事程序员相关的工作,而是为了培养孩子的思维能力,解决问题的方式方法,知其然又知其所以然。

学编程最大的好处其实是可以对人的思维方式进行训练。

它是一个对思维完整性和逻辑性进行训练的过程,而在这个过程中我们可以培养一种新的看待问题和处理问题的方式。

在日新月异的时代发展中,随着人工智能的普及,大数据,物联网的大规模使用,我们的生活方式发生了深刻的变革,了解编程,就是了解下一代技术发展的原理。

所以您最好准备着让您的孩子开始接受编程教育,以便迎接未来的挑战。

steam创客教育是什么STEAM教育理念最早是美国政府提出的教育倡议,为加强美国K12关于科学、技术、工程、艺术以及数学的教育。

所谓STEAM课程,是指由科学(Science)技术(Technology)工程(Engineering)艺术(Art)数学(Mathematics)等学科共同构成的跨学科课程。

它强调知识跨界、场景多元、问题生成、批判建构、创新驱动,既体现出课程综合化、实践化、活动化的诸多特征,又反映了课程回归生活、回归社会、回归自然的本质诉求。

STEAM教育在美国的重要性不亚于中国的素质教育,在美国大部分中小学都设有STEAM教育的经费开支,而STEAM也被老师、校长、教育家们时时挂在嘴边。

“格局与过程耦合”思想及其在高考试题中的考查视角与教学启示

格局是认识世界的表观,过程是理解事物变化的机理,耦合格局与过程是理解和研究地表过程的重要方法,是地理学综合研究的有效途径。

[1]同时,“格局与过程耦合”对广泛的地理事象具有解释力,具有很高的抽象与概括程度,可以视为组织整合地理学科许多一般概念、原理和理论的大概念。

“学生发展核心素养—学科核心素养—大概念—具体知识与技能”是从大到小逐渐具体化的关系,大概念是落实学科核心素养的重要手段。

然而,目前中学地理教师对“格局与过程耦合”的认识尚且不足,该思想在中学地理教学的体现还比较薄弱。

高考试题对中学教育教学有着举足轻重的引领作用,研究和揭示地理高考试题中蕴含的“格局与过程耦合”思想,有利于广大中学地理教师重视“格局与过程耦合”的教学价值。

对中学生而言,领悟和运用“格局与过程耦合”思想,有助于提升其从该视角洞察和理解地理事象的能力,提高分析和解决地理问题的思维品质,进而促进地理学科核心素养的达成。

一、地理学科中“格局”与“过程”的内涵解析目前,地理学界对“格局”与“过程”的概念界定尚未形成统一的认识。

格局作为景观生态学的核心概念,通常指的是空间格局。

不同学者对格局有着不同的理解,例如王云才认为格局指的是斑—廊—基的数量、大小、类型、形状等及其在空间上的组合形式;[2]余晓新认为空间格局是景观要素在空间上分散或聚集的展布,它是景观组分的空间分布和组合特征的表现。

[3]总的来看,空间格局主要包括两方面涵义,一是要素在空间上的形态,包括大小、形状、数量等;二是多要素在空间上的分布和排列组合。

因此,笔者从所涉及的地理事象数量以及空间状态对“格局”进行地理学意义上的内涵界定,认为格局指的是地理事象的空间格局,既包括了某一地理事象的空间分布(即地理分布),也包括了不同地理事象在同一空间内的空间排列组织状况,可通过方位、距离、大小、形状、数量、类型及空间组合进行描述,例如气压带和风带、自然带、聚落这些概念中都有着格局的涵义。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

过程塑造: (三)代码是最终目的2003 年 4 月 01 日林星 (iamlinx@)项目经理过程的最终目的是代码,开发过程中的所有活动都围绕着这一目的而展开。

如果没有最后的用于交付的代码,软件就无法成为软件。

因此,必须保证过程能够产出代码,而且是优秀的代码。

意图无论哪一种过程,其最终目的都是为了产生出可执行、并且可用的软件。

因此软件过程中的各种活动应该围绕着快速、准确的实现这一目的而展开的。

示例维力亚软件公司是一家合资公司,由于有外资背景,公司内部很早就引入了软件工程,并严格的对人员角色进行分工。

包括领域建模人员、架构设计师、高级程序员、程序员、界面设计师等等多种角色。

每个人各司其职,充分发挥出了分工的特点。

但是随着公司开发项目的逐渐增多,这种方式也显露出其弊端来。

每个人的主要目标都是为了通过评审,而有时候,就算是通过评审的工件,依然可能存在问题。

但这时候扯皮就出现了。

项目中存在的一些中空地带。

以及交错地带,常常发生无人问津的情况。

开发过程的效率开始下降,开发成本开始上升。

问题虽然不是一下子出现的,但是已经逐渐变得严重起来了。

上下文我们在进行过程设计,或引入一个过程理论的时候,有没有思考过该过程的每一个阶段、每一个活动的目的是什么,它们对生成最后的软件有什么样的帮助,这些帮助对于我们所在的组织有意义吗。

很多情况下,我们并没有这么做,或者随着软件过程的定型,就不再思考这类的问题。

一开始并没有什么了不起的,但是当软件过程演变成了一种政治体系的时候,那么问题就会慢慢严重起来。

问题如何让过程围绕着产出软件的核心目标而不断演进?方法从上一篇介绍的内容中,我们知道软件过程的每一个阶段都是知识转换的过程,知识转换的终点就是软件。

问题在于,我们如何保证这种转换的效率呢?现代软件的发展的趋势是重用。

我们开发一个软件已经很少会从最底层开始编写了。

我们使用各种各样的技术和平台。

包括数据库、分布式体系、UI机制、业务元素等等。

因此现在的软件编写往developerWorks®/developerWorks/cn/往都是站在巨人的肩膀上开始的。

不同的软件组织,肩膀的高低也不一样。

比如有的软件组织使用J2EE平台,有的软件组织则使用.NET平台。

但是可以肯定的一点是,每个软件组织都或多或少的拥有自己的平台体系开发经验。

这些经验的表现形式也不尽相同,可能是保存在某些高级技术人员的脑中,也可能是保存为文档、模型或代码的形式。

对于单个的项目而言,其过程一定是从需求开始,以部署(以及后续维护)为终结的。

但是对于长时间存在的软件组织而言,更重要的是项目经验、技术经验、管理经验的积累。

这样说可能过于抽象,我们举一个具体的例子。

在完成了一个库存管理项目之后,我们把库存管理的领域知识制作为商业组件的形式,而把项目中学习到的一些编码的技巧整理为模式的形式,并把项目过程中积累的过程方法添加到现有的软件过程中。

这些经验的堆积就是在一开始我们提出的可重用框架。

对一个软件团队的来说,它的所有软件项目都应该是围绕着这一个可重用框架而展开的。

迄今为止,我们见过的大多数的可重用框架表现形式都可以总结为:以开发平台为基础,积累自己的商业组件,并以此为中心订立开发活动。

这种形式是不是最好并没有定论,但我们是抱着学习的态度来研究它的。

以开发平台为基础的意思是软件组织必须有自己所熟悉的开发平台,其大部分的项目都是在此基础上进行的。

目前最流行的两种软件开发平台是J2EE和.NET,但是就算是同一个平台,不同的软件组织对平台内部的侧重也是不同的(同样对于J2EE技术,有的软件组织可能把JSP和Servlet作为核心选择,而另一些软件组织则把重点放在EJB上)。

选择一种广泛应用的、具有生命力的平台技术是非常重要的。

因为你的框架将会以此为基础进行,而框架的转移成本是非常之高的。

虽然我们在一开始介绍的MDA思路为我们绘制了一副平台无关设计的美好愿景,但是在目前阶段,我们仍然要面对不同软件平台造成的严重隔阂。

必须指出的是,我们上面提到的开发平台指的是在操作系统这个层次之上的平台,也就是俗称的中间件平台。

但是从中间件到最终的产品之间有没有过渡的平台呢。

其实可重用框架就扮演了这一角色。

软件市场上已经出现了商业化的可重用框架了。

IBM的SanFrancisco框架就是这种概念的代表。

平台技术仅仅只是提供了一个技术,而软件组织要生存和发展,还需要积累和发展自己的商业组件。

并将商业组件发展成为可重用框架。

商业组件的好坏,直接和软件组织的能力、经验,以及平台技术相关。

商业组件可能直接表现为代码的形式(Bean、类、COM组件等),也可能只是描述性的记录(文档)。

商业组件是经验积累而成的。

请注意,商业组件的设计并不完全等同于面向对象开发,因为面向对象只是一种技术手段,但是商业组件设计的优劣,更重要的是对业务的理解程度。

举一个最浅显的例子,一个精通面向对象开发、面向组件开发的设计师,让他介入他完全不了解的行业组件设计,他的表现将会大打折扣。

到目前为之,大家所认识的框架仍然是技术型的框架。

但事实并非如此,框架还包括了外延的一系列软件活动。

这才是一个完整的框架。

结合之前我们讨论的软件交付为开发目标。

我们把这种开发方式称为以可重用框架为核心,以交付为目标的软件开发。

这其实并不是什么了不起的概念,大部分的软件组织都已经这么做了,只是没有意识到自己的方式而已。

了解这一点,能够帮助软件组织有效的改进自身的构架。

平台技术和组件开发并不是本文的重点,因此我们在肯定了两者的重要性之后,把精力转移到软件活动上。

/developerWorks/cn/developerWorks®在拥有一个框架核心(平台和商业组件)之后,框架需要包含这样的活动(或活动集):收集项目需求,并将需求映射到核心构架上来。

这其实就是需求阶段到设计阶段要做的事情。

但是由于我们的活动是以软件交付为目标的,因此我们需要明确的指出活动中的注意事项。

• 为映射工作设计需求描述规格。

需求并不是一件容易的事。

最难的莫过于尺度的把握了,例如需求要多详细。

使用现成的技术来定义需求描述规格,并根据核心框架的特点进行必要的扩展。

例如,我们使用成熟的用例技术来描述需求,同时我们要求需求按照不同类的商业组件进行分类索引。

用例技术的推荐读物是Alistair Cockburn的Writing Effective Use Cases一书,该书目前已有英文影印版。

• 保证需求规格能够被项目成员所理解。

这里的项目成员包括客户、领域专家、需求调研者、分析模型设计师。

只有他们了解需求,才能够保证信息的正确的传递。

(参见 知识接力模式)。

• 为实现需求制定分析(设计)规则和指南 。

这是把需求映射到核心构架上的重要步骤。

制定规则是必要的,但要小心,不要让规则限制住开发人员的创造力(参见 活跃和混乱、严谨和死板模式)。

规则的形式可能是设计规范、分析模式、类库、组件重用等等。

在指南中提供示例,描述如何将需求转换为设计模型是一种不错的做法。

同样好的做法还包括了模式指南。

• 确保测试贯穿了需求模型和设计模型。

我们终于提到了测试。

测试在软件过程中扮演着重要的角色。

但遗憾的是在本文中直接提到的机会并不多,从某个角度上看。

知识接力模式中提到的复审其实也算是一种测试。

测试的信息都包含在需求模型和设计模型之中,例如前置条件和后置条件。

在完成需求模型和设计模型时同步完成测试用例是一种非常好的做法(我们的团队正是采用这种做法),但是需要小心文档一致性(参见 一致性的思考模式)的所需要付出的额外成本。

• 如同在 知识接力模式中提到的那样,让领域专家、架构师和高级开发人员对需求模型和设计模型进行复审。

原型方法能够有效的帮助最终软件的成功。

所谓原型方法,就是选取系统的某个部分(最直接或风险最高的部分,通常是界面原型), 实现并呈现给用户,以获得反馈,为后续的活动提供指导。

原型方法最大的好处是能够帮助用户认识软件,消除用户的疑虑,并发掘潜藏的需求。

围绕着是否抛弃原型这一根本问题,原型方法可以分为渐进原型方法和舍弃型原型方法。

前者是在一个软件原型的基础上不断的演进,并最终发展为可用的软件,后者则是在开发出原型之后就将它舍弃。

渐进原型方法充分利用了原型,但是由于缺乏前期设计,可能会导致最终产品存在性能或设计问题。

舍弃型原型克服了这个问题,但是它浪费了原型开发的那段时间。

不论采用何种方法,最重要的是在项目一开始就决定采用哪一种原型方法。

模棱两可的使用两种方法是兵家大忌。

最终你无法利用任何一种方法的优点,而所有的缺点都将降临到你身上。

相较而言,渐进型原型方法更适合于应用在小型项目上,因为项目并不复杂的话,设计的改进比较容易。

对于一个拥有构架的团队而言,把原型方法纳入构架之中是很有意义的。

如果构架足够成数,迅速开发出一个原型并不是什么很困难的事情。

这样就可以在投入最小化的情况下获得原型方法的优势。

如果情况是这样的话,舍弃型原型方法似乎更适合一些。

在 知识接力模式中,我们简要的提到了设计模型信息和代码信息的转换问题。

使用建模工具来自动从设计模型抽取信息,并生成项目的代码。

这种方法能够大幅度的提高软件开发效率,并对软件的最终交付有很大的帮助。

同样,将代码中的信息转回到设计模型中(属于反向工程的一部分)也是有意义的。

如果缺少这样的工具,那么请人为的保证信息的同步,当然,并没有必要保持实时的同步(参见 一致性的思考模式)。

软件的成功和测试活动是无法区分的。

我们前面简单的讨论过测试信息是来源于需求的。

测试信息随着需求模型的生成而生成,并通过设计模型进行转换,在软件过程进入到实现阶段时,测试信息developerWorks®/developerWorks/cn/最终被转变为单元测试用例的形式。

单元测试用例可能是针对单个方法的单个用例,也可能是针对某个开发包的几组用例。

我们需要注意两点,首先是在软件过程中保证这个流程的顺畅和正确。

就像在 知识接力模式中讨论的那样,正确、完整的信息传递保证了最终软件的成功出产,测试信息的成功传递保证了最终软件的可用性。

测试是软件的保证。

因此,我们需要几个活动来保证测试信息的成功:• 从需求模型中生成接受测试。

该活动把需求映射到测试上。

在这个活动中,不但要注意功能性需求(如完成的功能),还需要注意非功能性需求(性能要求)。

同样的,接受测试也需要接受复审。

可以按照需求的组织方式来组织接受测试。

• 设计模型完成之后,接受测试已经细化到模型的各个元素上了(例如包、类)。

该项活动和将需求映射到设计的活动是同步进行的。

因为它们处理的信息是非常类似的。

和接受测试一样,这两个活动都需要由团队来保证。

• 在进入编码阶段之后,开发人员根据接受测试和设计模型,将会为自己负责的部分设计编写单元测试。

相关文档
最新文档