前沿讲座心得体会

时间:2024.4.21

北京邮电大学软件学院

前沿课题讲座心得体会

报告人: 学号:

导师:

(日期:2015 年 1月20日)

在北京邮电大学软件学院学习期间,我积极参加学校组织的前沿课题讲座和各大企业举办的新技术讲座,下边分几个方面谈一谈对敏捷开发、自动化测试、大数据讲座的体会:

一、敏捷开发 最近一段时间以来,很多人开始谈论敏捷开发、研究敏捷开发,那么究竟什么才是敏捷开发呢?

简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 敏捷开发是由一些业界专家针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则,并于2001初成立了敏捷联盟。他们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。

敏捷开发(agile development)概念从20xx年初开始广为流行。Bailar非常支持这一理论,他采取了"敏捷方式"组建团队:Capital One的"敏捷团队"包括3名业务人员、两名操作人员和5~7名IT人员,其中包括1个业务信息指导(实际上是业务部门和IT部门之间的"翻译者");另外,还有一个由项目经理和至少80名开发人员组成的团队。这些开发人员都曾被Bailar送去参加过"敏捷开发"的培训,具备相关的技能。

每个团队都有自己的敏捷指导(Bailar聘用了20个敏捷指导),他的工作是关注流程并提供建议和支持。最初提出的需求被归纳成一个目标、一堆记录详细需要的卡片及一些供参考的原型和模板。在整个项目阶段,团队人员密切合作,开发有规律地停顿--在9周开发过程中停顿3~4次,以评估过程及决定需求变更是否必要。在Capital One,大的IT项目会被拆分成多个子项目,安排给各"敏捷团队",这种方式在"敏捷开发"中叫"蜂巢式(swarming)",所有过程由一名项目经理控制。

为了检验这个系统的效果,Bailar将项目拆分,从旧的"瀑布式"开发转变为"并列式"开发,形成了"敏捷开发"所倡导的精干而灵活的开发团队,并将开发阶 1

段分成30天一个周期,进行"冲刺"--每个冲刺始于一个启动会议,到下个冲刺前结束。

在Bailar将其与传统的开发方式做了对比后,他感到非常兴奋--"敏捷开发"使开发时间减少了30%~40%,有时甚至接近50%,提高了交付产品的质量。"不过,有些需求不能用敏捷开发来处理。" Bailar承认,"敏捷开发"也有局限性,比如对那些不明确、优先权不清楚的需求或处于"较快、较便宜、较优"的三角架构中却不能排列出三者优先级的需求。此外,他觉得大型项目或有特殊规则的需求的项目,更适宜采用传统的开发方式。尽管描述需求一直是件困难的事,但经过阵痛之后,需求处理流程会让CIO受益匪浅。

二、敏捷开发模式内容

Test-Driven Development,测试驱动开发,它是敏捷开发的最重要的部分。在ThoughtWorks,实现任何一个功能都是从测试开始,首先对业务需求进行分析,分解为一个一个的Story,记录在Story Card上。然后两个人同时坐在电脑前面,一个人依照Story,从业务需求的角度来编写测试代码,另一个人看着他并且进行思考,如果有不同的意见就会提出来进行讨论,直到达成共识,这样写出来的测试代码就真实反映了业务功能需求。接着由另一个人控制键盘,编写该测试代码的实现。如果没有测试代码,就不能编写功能的实现代码。先写测试代码,能够让开发人员明确目标,就是让测试通过。

Continuous Integration,持续集成。在以往的软件开发过程中,集成是一件很痛苦的事情,通常很长时间才会做一次集成,这样的话,会引发很多问题,比如build未通过或者单元测试失败。敏捷开发中提倡持续集成,一天之内集成十几次甚至几十次,如此频繁的集成能尽量减少冲突,由于集成很频繁,每一次集成的改变也很少,即使集成失败也容易定位错误。一次集成要做哪些事情呢?它至少包括:获得所有源代码;编译源代码;运行所有测试,包括单元测试、功能测试等;确认编译和测试是否通过,最后发送报告。当然也会做一些其它的任务,比如说代码分析、测试覆盖率分析等等。 在我们公司里,开发人员的桌上有一个火山灯用来标志集成的状态,如果是黄灯,表示正在集成;如果是绿灯,表示上一次集成通过,开发人员在这时候获得的代码是可用而可靠的;如果显示为红灯,就要小心了,上一次集成未通过,需要尽快定位失败原因从而让灯变绿。

有很多很多的书用来介绍重构,最著名的是Martin的《重构》,Joshua的《从重构到模式》等。重构是在不改变系统外部行为下,对内部结构进行整理优化,使得代码尽量简单、优美、可扩展。在以往开发中,通常是在有需求过来,现在的系统架构不容易实现,从而对原有系统进行重构;或者在开发过程中有剩余时间了,对现在代码进行重构整理。但是在敏捷开发中,重构贯穿于整个开发流程, 2

每一次开发者check in代码之前,都要对所写代码进行重构,让代码达到clean code that works。值得注意的是,在重构时,每一次改变要尽可能小,用单元测试来保证重构是否引起冲突,并且不只是对实现代码进行重构,如果测试代码中有重复,也要对它进行重构。

Pair-Programming,结对编程。在敏捷开发中,做任何事情都是Pair的,包括分析、写测试、写实现代码或者重构。Pair做事有很多好处,两个人在一起探讨很容易产生思想的火花,也不容易走上偏路。

Stand up,站立会议。每天早上,项目组的所有成员都会站立进行一次会议,由于是站立的,所以时间不会很长,一般来说是15-20分钟。会议的内容并不是需求分析、任务分配等,而是每个人都回答三个问题:1. 你昨天做了什么?2. 你今天要做什么? 3. 你遇到了哪些困难?站立会议让团队进行交流,彼此相互熟悉工作内容,如果有人曾经遇到过和你类似的问题,那么在站立会议后,他就会和你进行讨论。

Frequent Releases,小版本发布。在敏捷开发中,不会出现这种情况,拿到需求以后就闭门造车,直到最后才将产品交付给客户,而是尽量多的产品发布,一般以周、月为单位。这样,客户每隔一段时间就会拿到发布的产品进行试用,而我们可以从客户那得到更多的反馈来改进产品。正因为发布频繁,每一个版本新增的功能简单,不需要复杂的设计,这样文档和设计就在很大程度上简化了。又因为简单设计,没有复杂的架构,所以客户有新的需求或者需求进行变动,也能很快的适应。

Minimal Documentation,较少的文档。其实敏捷开发中并不是没有文档,而是有大量的文档,即测试。这些测试代码真实的反应了客户的需求以及系统API的用法,如果有新人加入团队,最快的熟悉项目的方法就是给他看测试代码,而比一边看着文档一边进行debug要高效。如果用书面文档或者注释,某天代码变化了,需要对这些文档进行更新。一旦忘记更新文档,就会出现代码和文档不匹配的情况,这更加会让人迷惑。而在敏捷中并不会出现,因为只有测试变化了,代码才会变化,测试是真实反应代码的。 这时有人会问:代码不写注释行吗?一般来说好的代码不是需要大量的注释吗?其实简单可读的代码才是好的代码,既然简单可读了,别人一看就能够看懂,这时候根本不需要对代码进行任何注释。若你觉得这段代码不加注释的话别人可能看不懂,就表示设计还不够简单,需要对它进行重构。

Collaborative Focus,以合作为中心,表现为代码共享。在敏捷开发中,代码是归团队所有而不是哪些模块的代码属于哪些人,每个人都有权利获得系统任何 3

一部分的代码然后修改它,每个人都能够对这部分代码重构而不需要征求代码作者的同意。这样每个人都能熟悉系统的代码,即使团队的人员变动,也没有风险。

Customer Engagement ,现场客户。敏捷开发中,客户是与开发团队一起工作的,团队到客户现场进行开发或者邀请客户到团队公司里来开发。如果开发过程中有什么问题或者产品经过一个迭代后,能够以最快速度得到客户的反馈。

敏捷开发过程与传统的开发过程有很大不同,在这过程中,团队是有激情有活力的,能够适应更大的变化,做出更高质量的软件。

三、自动化测试

Automated Testing ,自动化测试。为了减小人力或者重复劳动,所有的测试包括单元测试、功能测试或集成测试等都是自动化的,这对QA人员提出了更高的要求。他们要熟悉开发语言、自动化测试工具,能够编写自动化测试脚本或者用工具录制。

在自动化测试过程中,UI的自动化测试实施难度比后台程序的自动化要大,那么UI自动化测试是怎么做的呢?首先需要用一个持续集成的工具hudson作为一个颗粒度比较粗的测试用例管理工具,hudson作为自动化测试的主心骨,QA们可以在hudson上触发自动化测试的运行,运行完了以后可以看到测试结果,并且,利用了hudson的分布式结构,由多个测试机来执行测试,达到了很好的资源调配。对浏览器的控制方面,用了Selenium,会上没有问UI是否利用了Selenium的多浏览器支持,从演示上来看应该只做的Firefox的。他们的分工很明确,分了专门做功能测试的QA和专门做自动化测试工具开发的SDET,SDET主要是负责写RUBY代码,封装并且暴露了一些通用的方法给QA使用,并且同时使用了Cucumber作为一个DSL,QA是用Cucumber来做自动化测试的一些描述,Cucumber的作用就是对功能测试的QA屏蔽了底层RUBY脚本,对上就是“翻译”功能测试QA的意图,“翻译”成RUBY。优点在于:分开了自动化测试工具开发和自动化测试实施;使用了大量开源工具,提高效率;在测试过程中我将这个方式加以运用,提高了测试技术。

自动化测试是软件测试发展的一个方向。很多人都认为做测试,懂得自动化测试是很重要的。我之前用QTP的时候,给自己最大的感触就是录制脚本和调试脚本的时间太长了。通过一些讲座和交流,我对自动化测试和脚本的录制修改技巧慢慢熟知,大大提高了自动化测试设计的效率。测试是一个思考的过程,自动化测试是测试发展的必然趋势,所以在自动化测试的运用之中我还是有很多需要学习的内容。

四、大数据

4

现在,当数据的积累量足够大的时候,量变引起了质变,“大数据”通过对海量数据有针对性的分析,赋予了互联网“智商”,这使得互联网的作用,从简单的数据交流和信息传递,上升到基于海量数据的分析,一句话“他开始思考了”。简言之,大数据就是将碎片化的海量数据在一定的时间内完成筛选、分析,并整理成为有用的资讯,帮助用户完成决策。借助大数据企业的决策者可以迅速感知市场需求变化,从而促使他们作出对企业更有利的决策,使得这些企业拥有更强的创新力和竞争力。这是继云计算、物联网之后IT产业又一次颠覆性的技术变革,对国家治理模式、对企业的决策、组织和业务流程、对个人生活方式都将产生巨大的影响。后工业社会时代,随着新兴技术的发展与互联网底层技术的革新,数据正在呈指数级增长,所有数据的产生形式,都是数字化。如何收集、管理和分析海量数据对于企业从事的一切商业活动都显得尤为重要。

大数据时代是信息化社会发展必然趋势,我们只有紧紧跟随时代发展的潮流,在技术上、制度上、价值观念上做出迅速调整并牢牢跟进,才能在接下来新一轮的竞争中摆脱受制于人的弱势境地,才能把握发展的方向。

5


第二篇:前沿讲座心得


前沿讲座心得体会

学 号: 1021170283

姓 名: 张 帆

年 级: 20xx年春

指导教师: 张晨曦

所属学院: 同济大学软件工程学院

近年来,对等网络引起了信息产业界的极大关注,20xx年8月成立了P2P工作组,成员包括Intel、IBM和HP公司等。发展对等网络的其他主要障碍还有版权问题、网络带宽问题、管理问题和安全问题等。如何连接电话、手机和家电、工业设备等,也是对等网络需要解决的问题。国内对等网络市场从20xx年开始启动。国内的应用主要有2个方向:文件共享及协同工作。在文件共享方面,国内已经有多家公司推出了自己的产品,目前主要的中文对等网络软件有Workslink、Ezpeer、Jelawat、Kuro和Toperson等,还有PASP_E-school实时交互多媒体在线课堂教学软件。在未来,企业对等网络应用将是热点,主要将解决企业内部事务处理的协同、企业门户、企业虚拟专网(VPN)、远程互动和宽带应用等。国内基于对等网络技术的企业应用产品有KM-Server中小企业知识管理软件等。云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,

也可是其他服务。它意味着计算能力也可作为一种商品通过互联网进行流通。

这学期学院开设的前沿讲座的课程,很有幸听到了张晨曦教授对于自己在计算机前沿方面研究的讲座,让我对这些知识有了深入浅出的理解,受益匪浅。

3月24号,张晨曦教授在讲座的最开始,对计算机前沿的知识做了简要的说明,然后张教授从对等网络、SOA简介、超级计算机、超级计算、云计算等几个方面进行了讲授。 由于时间短暂,打算介绍大量的专业的知识是不太现实的。张教授授课的过程中都考虑到了时间限制以及我们有限的知识水平,从大处着眼,为我们大概介绍他们研究方向和内容,同时还会简单向我们介绍这些研究将来的实际意义,以及和我们软件工程专业的联系。总的来说,也许理论上逻辑上的很专业的知识,我们并没有学到多少,但张教授利用紧张的时间,就基本上将一个新的领域在我们的脑海中勾勒了出来,使我们这些死啃书本的学生也有机会现实了一把,真正了解到与生活有直接联系的科学研究。

张教授不仅在学术领域给我们打开了新的窗户,使我们眼前一亮,也为我们介绍他们在工作学习中切身的体会及经验,提前向我们预警就业道路及工作生涯可能遇到的问题。 计算机前沿类讲座旨在帮助大家了解相关领域的学科

前沿知识,更好地学习、思考。张教授以自己的学识和阅历向同学们展现了当今IT业发展的现状以及存在的问题,引导同学们积极思考,使其收获颇多。

这就是我的心得体会,听完这个课,我感到责任重大,即使是一个点,也还有很多方面值得拓展和探索,作为研究生,研究是我们主要的工作,想要取得满意的结果和优异的成绩,我们所要做的就是倍加努力,汲取现有的知识,在新的领域开拓新的研究道路,积极探索,永不止步。

更多相关推荐:
专业前沿讲座心得体会

专业前沿讲座心得体会以前去上学院的选修课总是抱着些应付的心态,然而这次的不同,我很喜欢听我们的这些优秀教授们讲授专业前沿上的东西,他们,金教授,郭教授,赵教授,官教授,高教授,周教授...在每次短短的两小节课中…

专业知识前沿讲座心得

专业知识前沿讲座心得这一学期伊始,学校就在每周六开设了专业知识前沿讲座,请校内校外各种信息产业的精英来帮我们了解当今世界信息产业的发展。在上这门课的过程中我也是收益匪浅。每次讲座的教授都是业界的精英,有我们信息…

学科前沿讲座的心得与体会

学科前沿讲座的心得与体会0911370137俞白兮本学期共有五位赫赫有名的教育学者给我们进行了六次学科前沿讲座让我受益匪浅感受良多第一场报告人南京理工大学理学院副院长章定国老师时间20xx年3月28日星期三晚上...

学科前沿讲座心得体会

学科前沿讲座心得体会朱真才,肖兴明,刘同冈和李威四位教授讲了机械工程学科的现状及前沿发展,学科研究方向,重大项目研究方向,中国矿业大学机电学院的学科科研现状。通过听他们的讲座,我对我们机械工程专业的研究方向及未…

商务前沿讲座心得体会

商务前沿讲座心得体会京瓷创始人稻盛和夫说“成功=信念X努力X能力。”这是今天商务前沿讲座主讲老师提到最多的一句话,也是我今天记忆最深的一句。在围绕“职业,我们从何开始?”这一主题,老师从三方面进行了详细深入的讲…

信息管理专业前沿讲座心得体会

信息管理专业前沿讲座心得体会这学期学院开设的前沿讲座的课程很有幸听到了几位老师对于自己在信息管理前沿方面研究的讲座让我对这些知识有了深入浅出的理解受益匪浅由于课时的限制老师们都从大处着眼为我们大概介绍了他们的研...

《化学专业前沿讲座》心得体会

“绿色化学”——化学的未来——《化学专业前沿讲座》心得体会为期八周的《化学专业前沿讲座》课程已经接近尾声,在课程学习过程中,各位任课老师都自己研究方向的最前沿成就,可谓是“八仙过海,各显神通”呀!这门课程给我影…

学科前沿讲座心得体会报告

学科前沿讲座心得体会学院:矿业学院专业:矿物资源工程班级:矿资111学号:XX学生姓名:XX指导教师:XX20xx年9月13日贵州大学矿业学院学科前沿讲座报告心得体会我有幸聆听了院里张覃院长、张杰教授、杨博士、…

科技技术前沿讲座心得体会

浅谈车联网行业的发展我从事于上海博泰悦臻电子设备有限公司工作任务是车载娱乐终端的软件功能评测在20xx年我公司为上汽集团推出全时在线inkanet系统除了传统车机的导航娱乐功能还增加了实时路况一键通导航并能通过...

物流发展学科前沿讲座心得

南京理工大学泰州科技学院学科前沿讲座心得体会学号0906620xx0姓名韩健美指导教师钱敏专业名称市场营销所属学院商学院成绩随着我国经济体制改革的深入经济全球化合我国日益融入WTO体系物流业作为现代服务经济的重...

市场营销前沿讲座学习体会

市场营销前沿讲座学习体会市场营销11级双学位20xx00210089于淑艳通过这几天对市场营销前沿的学习我们主要了解了市场营销与社会发展关系营销的理论与应用和中国营销的新发展三大部分对于每一部分老师都做了很深入...

控制科学前沿讲座心得

控制科学前沿讲座心得自控0805李昌辉学号20xx41172本学期学院为我们开设了科技前沿讲座主讲老师也是大家莫名已久的四位老师总的来说通过对这门课或者说是讲座的学习我对自动化这对个专业的一些问题有了更深的了解...

前沿讲座心得体会(16篇)