计算机见习内容演讲

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

赵欣,2001年毕业于昆明理工大学,华南理工大学在职工程硕士。十一年软件项目管理、分析、设计、开发和实施经验。从事过银行、电信、烟草等企业的软件开发,主要参与的项目包括深圳快付通移动支付便易平台、广东发展银行中间业务平台系统、广东电信IDC综合管理系统、红云红河集团曲靖卷烟厂ERP系统。工作主要包括工作任务分配、项目管控、客户沟通、分析设计、系统集成验收、质量跟踪、成本分析等。所开发的项目都获得用户认可和满意。2008年6月获得美国PMP认证。11.应该掌握什么样的内容,来适应以后的工作岗位?提问?(安排了什么样的课程?学了哪些课程?)2.怎么样去学习?有没有好的方法和技巧?能否做到有的放矢。3.遇到困难怎么办?4.除了课本的知识,还需要掌握些什么东西?更好的面对社会。5.本人的一些观点和建议。2计算机英语离散数学(包括集合论、图论、数理逻辑等)、线性代数、概率统计和数学分析学好计算机系统概论深入理解Windows、Linux等操作系统算法、数据结构、编译原理为什么要学好上面的内容?3李开复说:1.积极主动,果断负责,创造机遇•积极主动的第一步是要有积极的态度,遇到困难不要低头。积极主动的第二步是对自己的一切负责,勇敢面对人生。不要把不确定的或困难的事情一味搁置起来。积极主动的第三步是要做好充分的准备:事事用心,事事尽力,不要等机遇上门;要把握住机遇,创造机遇。•积极主动的第四步是“以终为始”,积极地规划大学四年。2.掌控时间:事分轻重缓急,人应自控自觉•除了积极主动的态度,大学生还要学会安排自己的时间,管理自己的事务。在《高效能人士的七个习惯》一书中,作者史蒂芬•柯维提出,“重要事”和“紧急事”的差别是人们浪费时间的最大理由之一。•大学四年是最容易迷失方向的时期。大学生必须有自控的能力,让自己交些好朋友,学些好习惯,不要沉迷于对自己无益的习惯(如网络游戏)里。一位积极、主动的中国学生在“开复学生网”上劝告其他同学:“不要玩游戏,至少不要玩网络游戏。我所认识的专业水平比较高的大学朋友中没有一个玩网络游戏的。沉迷于网络游戏是对于现实的逃避,是不愿面对自己不足的一面。我认为,要脱离网络游戏,就得珍惜自己宝贵的大学时间,找到自己感兴趣的方向,做一些有意义并能给自己带来满足感的事情。”3.为人处事:培养友情,参与群体•以诚待人,以责人之心责己、以恕己之心恕人。•培养真正的友情。如果能做到第一点,很多大学时的朋友就会成为你一辈子的知己。•学习团队精神和沟通能力。4.少说多做,多问下为什么这么实现,比如:为什么会有鼠标,能不能让鼠标下岗休息?下载视频,多去图书馆。4多跟老师沟通。三人行必有我师去Bing.com搜索。战略上藐视敌人,战术上重视敌人5其他知识,比如经济,法律,企业管理等等提高自我表达能力举例说明67《ComputingEssentials》(McGraw-Hill出版公司)被许多大学选用为计算机英语教材1.算法分析和设计简介2.软件开发流程(重点)3.软件开发规范(结合软件开发相关国家标准)(重点)4.软件公司的项目运作流程,项目管理(重点)5.计算机网络,数据库,数据仓库,设计模式以及其他知识内容简介和介绍8了解算法的基础知识。主要讲解排序类算法、分治法、贪婪法的算法策略布置小作业9第一步:需求调研分析•1相关系统分析员向用户初步了解需求•2系统分析员深入了解和分析需求,做出一份文档系统的功能需求文档。•3系统分析员向用户再次确认需求。第二步:概要设计•首先,开发者需要对软件系统进行概要设计,即系统设计。第三步:详细设计•在概要设计的基础上,开发者需要进行软件系统的详细设计。第四步:编码•开发者根据《软件系统详细设计报告》,开始具体的编写程序工作第五步:测试•测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。第六步:软件交付准备•在软件测试证明软件达到要求后,提交《用户安装手册》、《用户使用指南》、等双方合同约定的产物。第七步:验收•用户验收。10“瀑布模型问题的根源在于,它过度强调了在早期需求和设计阶段中的文档,要求它们说明所有细节,并以此作为开发的标准。对于某类软件开发,比如编译器,而言,这可能是最有效的。但是,对于许许多多的其他软件而言,这种做法却是行不通的,尤其是那些对交互有要求的面向终端用户的应用软件。”(ASprialModelofSoftwareDevelopmentandEnhancement,ProceedingsofanInternationalWorkshoponSoftwareProcessandSoftwareEnvironment,1985.3)11AgileProcess(敏捷的开发流程)是一种软体开发流程的泛称,具有下列几项共通的特性:客户与开发人员形成密切合作的团队,因为客户无法于初期定义完整的规格,而开发人员于开发过程中也常常无法知悉外在环境或业务的变动,所以需要两者密切合作方能开发适用的软件。最终的目标是可执行的程式,因此所有的中间产品必须经过审慎评估,确认有助于最终目标,才需要制作中间产品。采用Iterative与Incremental(增量)方式分阶段进行,密集review是否符合需求。流程可以简单,但规划与执行必须严谨。强调团队合作,赋予高度的责任,团队有自主权得以因应变化做调整。12RUP為IBMRational公司經過多年的研發與經驗所提出的軟體開發流程,其內容含蓋Businessmodeling,RequirementModeling,LogicalDesign,Implementation,Testing,Deployment等软件开发生命周期的直接工作,与ProjectManagement,Change&ConfigurationManagement,Environmentsupport等支援性工作。RUP的內容非常丰富,不同的项目需要不同調整,IBMRational提供RUPworkbench工具,方便調整RUP,並公佈於Web,方便專案成員遵循統一的流程規範進行工作。RUP的主要精神为:1.项目进行采用Iterative程序分阶段渐进地完成专桉功能;2.广泛使用VisualModeling于商业需求分析、系统分析与系统设计;3.强调架构设计;4.对每项工作所需要的技术、工具、做法、范本、检查项目均有详细的定义,架构完备且具有可调整的弹性。因为RUP的流程规范与相关技术较複杂,所以导入时必须注意几个因素:1.主管的支持以确保足够的资源投入;2.分阶段导入;3.适当的训练与密切的顾问咨询;4.使用Modeling技术时需要考量Coding的实作环境;5.良好团队的管理,以沟通、耐心与坚持解决变革的人性阻力。Rose工具和其他工具简介13迭代式模型•迭代式模型是是RUP(RationalUnifiedProcess,统一软件开发过程,统一软件过程)推荐的周期模型,也是我们在这个系列文章讨论的基础。在RUP中,迭代被定义为:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。所以,在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,它类似小型的瀑布式项目。RUP认为,所有的阶段(需求及其它)都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。迭代的思想如图所示。迭代和瀑布的区别•迭代和瀑布的最大的差别就在于风险的暴露时间上。“任何项目都会涉及到一定的风险。如果能在生命周期中尽早确保避免了风险,那么您的计划自然会更趋精确。有许多风险直到已准备集成系统时才被发现。不管开发团队经验如何,都绝不可能预知所有的风险。”•由于瀑布模型的特点(文档是主体),很多的问题在最后才会暴露出来,为了解决这些问题的风险是巨大的。在迭代式生命周期中,您需要根据主要风险列表选择要在迭代中开发的新的增量内容。每次迭代完成时都会生成一个经过测试的可执行文件,这样就可以核实是否已经降低了目标风险。14快速原型(RapidPrototype)模型在功能上等价于产品的一个子集。注意,这里说的是功能上。瀑布模型的缺点就在于不够直观,快速原型法就解决了这个问题。一般来说,根据客户的需要在很短的时间内解决用户最迫切需要,完成一个可以演示的产品。这个产品只是实现部分的功能(最重要的)。它最重要的目的是为了确定用户的真正需求。在我的经验中,这种方法非常的有效,原先对计算机没有丝毫概念的用户在你的原型面前往往口若悬河,有些观点让你都觉得非常的吃惊。在得到用户的需求之后,原型将被抛弃。因为原型开发的速度很快,设计方面是几乎没有考虑的,如果保留原型的话,在随后的开发中会为此付出极大的代价。至于保留原型方面,也是有一种叫做增量模型是这么做的,但这种模型并不为大家所接受,不在我们的讨论之内。上述的模型中都有自己独特的思想,其实现在的软件组织中很少说标准的采用那一种模型的。模型和实用还是有很大的区别的。15XP开发流程的基本步骤为:1.开发人员随时可以和客户进行有效沟通,撰写userstories以确认需求。2.简易快速的系统设计,撰写独立的验证程式以解决特殊困难的问题,找出演算法即可丢弃验证程式。3.规划多次小型阶段的专桉计划,以最快速度完成每一阶段的程式交付客户,客户负责Acceptancetests;4.Coding前必须完成UnitTest与Acceptancetests程序,所有模组整合前都须经过UnitTests;5.开发人员必须快速回应Bug与需求变更;6.要求二人一组使用一台电脑设计程式,当一人coding时,另一人负责思考与设计;7.程式必须符合程式规范,并常做程式的重整(Refactoring)。XP属于较精简的流程,于导入应注意几件事情:1.最好有顾问给予协助;2.持续的Review;3.可适当调整流程,但不可失去其基本精神。16SCRUM开发流程是AgileProcess的一种,以英式橄榄球争球队形(Scrum)为名,基本假设是『开发软体就像开发新产品,无法一开始就能定义FinalProduct的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证专桉成功』。Scrum将软体开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战,碓保每天、每个阶段都朝向目标有明确的推进,因此SCRUM非常适用于产品开发专桉。SCRUM开发流程通常以30天为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部份,开发团队必须尽力于30天后交付成果,团队每天用15分钟开会检视每个成员的进度与计画,了解所遭遇的困难并设法排除。SCRUM与传统开发流程及专桉管理差异较大,于导入时最好有顾问协助。17不是废话,而是实践出来的。瀑布式的开发方法风险性较高,而且和敏捷方法比起来,瀑布式的开发方法成本更高,但是效率却更低。如果采用瀑布式的开发方法,在创造任何真正的商业价值以前,首先需要建立一些文档。换句话说,直到项目结束以前,你都无法创造任何的价值。说什么产品开发是瀑布式的,或者项目预期的时间表在很久以后,这些都是在混淆视听。推迟创造商业价值的时间点很明显是这种开发方法的一大劣势。想想80-20法则:80%的产品价值来自于20%的产品功能。从这方面来考虑的话,我们能想到要构建一个只有20%功能的软件产品吗?是的,我们可以交付一个只有20%功能的“版本1”,以后,我们再交付一个功能略多一些的“版本2”,再以后,我们再交付一个“版本3”。这种方法的好处是开发20%的功能并不会花费100%的项目时间和预算:我们可以在项目的早期创造更多的价值。迭代式的瀑布开发方法致力于交付一个sprint的工作,而不是一系列具有商业价值的,可用的小版本。Scrum开发方法致力于交付经过全面测试的,独立的,具有一定价值的,但是功能较

1 / 103
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功