软件工程课件1.1软件工程-个人.docx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程师的能力及发展 ?介绍:??个人软件流程,? 职业发展, 个人绩效的衡量和提高,? 软件开发是科学,?工程,?手艺,?或是艺术 ? 软件工程,?它包括了什么呢? 软件工程包括了开发,运营,?维护软件的过程中有很多技术,?做法,?习惯,?和思想。软件工程把这些相关的技术和过程统一到一个体系中,?叫?“软件开发流程”,软件开发流程的目的是为了提高软件开发,?运营,?维护的效率,以及用户满意度,?可靠性,和软件的可维护性。 ? 软件开发流程不光指团队的流程,??软件团队是由个人组成的。在团队的大流程中,?是每一个具体的个人在做开发,测试,用户界面设计,管理,交流等工作。因此,?个人在软件团队中也有个人的流程。 ? 个人的劳动成果有序地组织起来,?就是团队的流程。这里说的“有序”,?并不是“无争论”,??在大部分成功的软件团队模型中,??各个角色(开发,?测试,?项目管理等)考虑问题的出发点是有区别的,?不同意见的冲突在所难免,?一个好的团队流程能把冲突的积极方面?(各自尽力把自己的工作做好,说服别人)?释放出来,而避免消极方面?(因为冲突而产生的消极,抵触情绪等)。? ? 我们用足球作一个比喻:??足球中有没有个人流程???当然有,??职业球队对于运动员有很严格的要求:?例如: 体能,?技术,?意识,?斗志 具体技术有传接,盘带,射门,?定位球,?跑位,?等。一些特定的角色(守门员)还有独特的技术要求。 ? 足球的团队有没有流程??当然有: 阵型,?配合,?临场应变 ? 足球队有不少?“阵型” (442, 433, 451和它们的各种变体,?等等)?和打法?(南美,欧洲,技术,力量,?小快灵,?抢逼围,?两翼齐飞,??全攻全守,?等等).? 尽管有这么多理论,??足球的每一次盘带,?传球,??跑动,?射门,扑救,都是单个运动员完成的。??如果单个运动员的技术,?体能不行,?无论是什么阵型用处都不大,有些阵型反而会起反作用,??例如,?让体力弱的球队去打全攻全守。 软件也是这样 软件系统的绝大部分模块都是由个人开发或维护的。在软件工程的术语中,?我们把这些单个的成员叫做Individual Contributor (IC). IC?在团队中的流程是怎么样的呢??我们以开发人员为例: ????????理解问题或任务 ????????提出多种解决办法并估计工作量 ????????其中包括寻找以前的解决方案,因为很多工作是重复性的?–?例如实现某些类似的web页面。 ????????与相关角色交流解决问题的提案,?决定最终方案 ????????执行,?把想法变成实际中能工作的代码 ????????修复缺陷,??对结果负责 每个人的工作质量直接影响最终软件的质量。 如果你是病人,?你希望你的医生是下面的那一种呢? a)??刚刚在书上看到你的病例,?开刀的过程中非常认真严谨,?时不时还要停下来翻书看看… b)??富有创新意识,?开刀时突然想到一个新技术,?新的刀法,??然后马上在你身上试验… c)??已经处理过很多类似的病例,?可以一边给你开刀,?一边和护士聊天说昨天晚上放的 《非诚勿扰》的花絮… d)??此医生无正式文凭或医院,?但是号称有秘方,?可治百病。 e) 还有这一类, 给你开刀到一半的时候, 出去玩去了, 快下班的时候, 他们匆匆赶回来, 胡搞一气, 给你再缝好, 打了很多麻药,就把你送出了院, 说“治好了”! ? 事实上,?很多软件项目就是用?a) b)?这样的方法搞出来的。当然也有一些人走?d)?这条路。 e) 这一种可以在很多大学生软件大作业上看到例子。? 如果我可以选择,?我要选?c)?那样的医生。 ? 软件工程师的成长 一个游戏玩家,?如何成长呢????在游戏中,?可以打怪,?挖宝,?买装备,?完成任务,?买卡换积分,??等等。。。 ? 那一个刚入行的初级软件工程师如何成长呢???我认为成长有下面几种: 1.???????知识:??对具体技术的掌握,?动手能力 例如:?对Java, C/C++/C#,?诊断/提高效能的技术,??对device driver, kernel debugger?的掌握;对于某一开发平台的掌握。 2.???????经验:?对问题领域的知识和经验的积累?(例如:?对于医疗行业的了解,?对于金融行业的了解)。 ? 第一点和第二点,?也可以比较容易地检测出来。随着经验的增长,?一个工程师可以掌握更广泛,更深入的技术和问题领域的知识。 ? 3.???????通用的软件设计思想,??软件工程思想的提高 这一方面就比较虚,什么是好的软件设计思想,?什么是好的软件工程思想??一个工程师开了博客,?转发了很多别人的文章,?这算有思想么??另一个工程师坚持任何设计都要画?UML?图,?这算有思想么? ?

文档评论(0)

朋友你好 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档