个人最终总结

一.翻译:

      软件工程师应该致力于软件的分析、规范、设计、开发、测试和维护中,这是一个受人尊重的行业。根据其对健康,安全和福利的承诺,软件工程师应该遵循以下八大原则:

      1.公众——软件工程师应该与公众利益一致。

      2.用户与雇主——软件工程师应以符合其客户和雇主的最佳利益的方式,以符合公众利益的方式行事。

      3.产品——软件工程师应该确保他们的产品和相应修改满足行业最高标准。

      4.判断——软件工程师应该保持自己专业判断力的完整性和独立性。

      5.管理——软件工程的管理者和领导者应该签订和促进一个道德的方法来管理软件的开发和维护。

      6.专业——软件工程师应该通过协调公众利益来推进行业的完整性和声誉。

      7.同事——软件工程师应该平等的对待每一个支持他的同事。

      8.自己——软件工程师应该通过终身学习并致力于自己的专业实践且促进自己的职业道德。

二.对于开课时疑问的解答:

开始时只是通过网络了解了这门课程,觉得很难,不好学或者说没什么科可学的。在这学期的学习过程中才发现这门课程其实很好学,有很多东西可学,了解入门很容易,结对编程、软件测试、团队开发,知道原理,知道如何去做,但是要想深究,这要花很长时间。哪怕是上课这段时间,我已然觉得受益匪浅,过去独自编程遇到的问题在团队中都得到了很好的解决方案,锻炼了自身能力。

三.个人总结以及对软件工程课的意见和建议

      软件工程课是迄今为止我上过的收获最大的专业课,它教会了我很多重要的专业知识,让我发现了自己在知识和能力上有许多的短板。最开始上软件工程课的时候我非常不解,这门课到底教什么?为什么要学这门课?编写一个软件为什么要这么麻烦?不是完成编程要求,不出错,然后提交就可可以了么?通过以前学长的口述我也觉得这可真的没什么可学的,不客气的说就是在浪费时间,但是当我接触了这门课并在几周之后我才发现以前想的太简单了,没有无用的课程,哪怕是无关的课程,也能在编程过程中给我一定的思路,更不用说软件工程这门有很强指导意义的课程了。

      这门课改变了我对于开发软件这一工作的看法。我以前认为编写软件就是拿到了题目明确需要完成几项目标,简单画出流程图就可以直接上手编写代码,检查代码无错并可以运行完成题目要求就可以提交,一项工作完成了,就这么简单。但是事实并非我想象的那样,通过软件工程课的学习,我明白了编写代码只是软件开发的一部分或者说是一小部分,需求分析,软件测试,产品发布,后期维护,用户反馈都是软件开发工作中的重要一环,而且其他环节的重要性都非常重要,这样一个个小的环节连接起来形成一个大环,才是一个完整的软件开发过程。首先开发软件软件必须要弄清用户的需求即用户要用你开发的这款软件干什么,因为软件的功能必须要满足其使用群体的需求,如果一个软件不能实现用户要求的基本功能,即使它速度再快,内存再节省,算法再优化它也不是一个合格的软件,用户也不会去使用它,更不要提用它来赚钱了。其次软件的测试也非常重要,并不是软件没有错误就可以直接提交了,测试也不仅仅是测试出软件的错误。许多软件是具有时效性的,用户要方便快捷的使用它,就必须压缩操作时间,举个例子:银行的ATM机,我们从插卡、取款到退卡等一系列操作最多耗时2-3分钟,但若是需要用半个小时才能完成相同操作的ATM机系统就没人使用它了。测试可以保证软件的实用性,使它在交付前能够及时地发现问题并得到解决以提升软件的质量,可以说没有通过测试环节的软件,哪怕它的性能和效率再出色也不可能发布。再次,软件并不是一次性服务,软件交付之后不是一了百了了,软件开发的工作人员还要收取用户的意见反馈,对发布出去的软件进行维护升级,修改出现的bug,因为测试中只能尽可能的减少错误,还是有错误不会被发现的,软件开发者应该通过用户反馈的信息不断推送新版本以改正错误。重中之重是我第一次有了软件架构的概念也第一次知道系统架构师这个职业,以前觉得从头到尾写完代码,然后调试运行就可以了。可是以前100-200行的代码用流程图就可以了,但是可以面向市场发布的软件其代码最少也有上万行,加上后期界面优化的代码,流程图就不适合用来描述这样繁复的工作。这时软件架构的重要性就体现出来了。

      这门课并不像我以前想的“没什么可学的”,相反,他有很多东西是必须要学的,作为一个计算机专业的学生并且打算以后参与软件开发的工作,这门课不是非常有用,,而是很有用。即使现在不学,我们以后到工作岗位中也早晚要接触,这是一门必备课程,这门课的学习对于我们的日后求职以及在岗位中的竞争以及成长有很大的帮助。它不像其他的专业课教授一些编程语言,计算机原理,程序算法等等,而是告诉我们作为一位软件开发者,我们的工作目标是什么,我们应该如何开发软件,开发不同的项目可以有什么适用的开发模式,怎样提高软件的质量,文档在开发过程中的作用,怎样提高文档的规范性,我们的工作需要付出什么,失败会有什么代价,从事这门工作应该锻炼哪些能力。这些抽象的概念和代码不同,代码是死的,是不变的一行行英文字母,而这些抽象的东西是活的,需要我们去理解。打个比方代码构成一个人的骨骼、肌肉和器官,但是这些抽象的概念是血液。这个学习的过程虽然枯燥,却使我受益匪浅。

      通过这门课的学习,我发现了自己很多能力的短板。通过学习我认识到在传统的软件开发流程中文档作用巨大,文档分为开发者文档和用户文档,然而作为理工科学生,写作能力是短板,准确的说是无法将自己脑海中想象的用文字准确描述出来。我觉得用写博客的方式来写作业是一个不错的创意,你在想些什么又是如何做的,遇到了哪些问题一目了然,可以有针对性的进行强化,既巩固了我们课上学习的知识又锻炼了我们的写作能力。说实话,高中毕业后就再也没拿笔自己写过长文章,平时跟文科挂钩的课程要交什么论文作业也是电脑打开百度一下或者抄抄了事,已经有很长时间没有自己写过东西了,但是通过这一学期的锻炼,我觉得我的写作能力有了提升,至少在写文档时我知道我该去写什么有用的东西而不是写一千字的文档有五百字废话,哪些是重点那些可以一带而过,怎样把我的想法简明扼要的表达出来,一改以前能一句话说清楚的事两三句也说不明白,反而让听的人一头雾水的特点。而且博客对于IT工作者而言是一个非常重要的工作环境和交流平台,尽早接触对于我们的成长也有非常大的好处,从开学到现在,博客中记录了我在学习过程中每一次微小的进步,从头看来非常有成就感。由于时间紧张,一些本该用博客记录下来的内容也没有完成,倒也挺遗憾的。就这样虎头蛇尾的结束也是非常可惜,如果有可能的话希望能再次参与到类似的课程中。

四.对这门课的意见与建议:

     这门课的过程中,我们先后用结对和团队的方式完成了两次编程,结对作业相对简单而团队作业专业性更强。由于个人能力与擅长编程语言和编程特点,工作中有时会感到力不从心。希望能有较为统一的工作环境,在课上由于没有相关教学用书,学起来还是有些凌乱。同时感谢老师和助教这短时间的付出,你们辛苦了。

posted on 2016-06-05 13:38  1班-慕向昕  阅读(127)  评论(2编辑  收藏  举报