个人总结

 

Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:

1. PUBLIC - Software engineers shall act consistently with the public interest.

2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.

3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible 

4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.

5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.

8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

  • 翻译

  软件工程师应当致力于对软件做出分析、规范、设计、开发、测试和维护,从而使软件工程师成为造福用户和受人尊敬的职业。按照他们对公众承诺的软件的健壮性,安全性和福利性,软件工程师应当遵守下列八个原则:

1、公众——软件工程师的行为应当始终与公众的利益一致。

2、客户和雇主——软件工程师应以其客户和雇主利益最大化的方式做事,与公共利益相一致。

3、产品——软件工程师应确保自己的产品和相关的修改满足最高的专业标准。

4、判断——软件工程师应当保持完整和独立的专业判断。

5、管理——软件项目的经理和领导者应当提倡并亲自采用符合道德规范的方法来管理软件开发和维护。

6、职业——在与公众利益一致的原则下,软件工程师应当保证其职业的诚信和声誉 

7、同事——软件工程师应当公平对待同事,并且支持他们。

8、自身——软件工程师应当终身学习以提高自身的水平,并且在工作实践中推动落实道德准则。

  • 学习中的问题解答

  在刚刚开始学习软件工程这门课的时候,我确实是有些不习惯,因为这种学习模式在之前是没有接触过的。这门课的实践性很强,我们一开始是进行个人编程,也就是所谓的PSP(personal software progress),这种开发模式主要是靠自己搜集数据,分析,提高。在个人编程阶段,我确实遇到了一些技术问题,通过百度,翻阅相关书籍,在CSDN以及中国知网查询资料,这些问题都得到了解决。例如:

  • 为了对项目进行快速的迭代开发,我学会使用github以及coding这两种项目管理软件。在完成公钥的配置后新建一个项目,设置为公开属性,并启用“README.md”,README主要用来对项目进行说明,可以作为开发文档使用;然后复制新建项目的地址,在相应位置点击git bash here后,在控制台输入git clone 项目地址;将所要上传的项目复制到对应的文件夹,假设文件夹名为test;输入cd test转到test文件夹下;git add . 添加文件夹下新文件;git commit -m "first test" 添加描述;git push 将本地仓库同步到远端仓库。之后输入用户名和密码即可完成将文件夹test中的项目文件传送到coding中。
  •  flushall(),sleep()库函数的作用,flushall()用于清除缓冲区中的内容,sleep()则是用于延时。
  • 学会了使用vs2015进行单元测试,了解并掌握了fseek(),rewind()等文件操作的函数 以及io.h头文件中包含的系列函数的使用。

   在结对编程时,我也遇到了不少的问题,主要的问题如何和同伴配合好,提高开发的效率。而且开始结对编程之前,我们对于结对编程的意义感悟并不是很深刻。在开发过程中我们知道了应该发挥各自的优势,这样才能够实现互补,而且结对编程可以随时的进行复审和交流,这样就大大减少了出错的几率,程序的质量会大大提高,使以后的开发维护更加便捷。

  团队编程中我负责的是闹钟运动轨迹解锁模块,利用的是手机中的加速度传感器,设置监听实时监测加速度传感器传回的X,Y,Z方向的加速度值,采用轻量级存储保存一百组数据,首先要进行低通滤波,使数据更加接近真实值,与预先设定的值进行比对,为了能过解锁成功而且提高轨迹的辨识度,就要设定合适的范围,对此我进行了多次试验,最终设定了合适的范围。

  • 学习总结

  本学期的软件工程课程已经结束了。在学习这门课程的过程中我确实收获了很多。软件工程改革了教学模式,更加注重实践环节,我们都在实践中学到了很多知识,对于一些重要算法的理解更加深刻。我认识到一名优秀的软件工程师需要有良好的编码能力,自觉的规范意识和团队精神,较强的英语阅读和写作能力,认识和运用数据库的能力,对软件工程有深刻认知,还要拥有求知欲和进取心。

  PSP阶段锻炼了我的自主学习能力以及自主解决问题的能力。知识是要靠自己主动获取的,我们可以使用百度,CSDN,中国知网等渠道获取我们所需的知识。通过与浏览大牛的博客可以让我认识到我与他们之间的差距有多大,从而为自己确立一个奋斗的目标。IT行业发展迅猛,我们需要时时更新自己的知识库,了解行业发展的动态,这样才能紧跟行业的发展。这学期我们一直在坚持写技术博客,这对于锻炼我的语言表达能力以及归纳总结的能力都有很大的帮助。如今课程已经结束,回头看看自己写的博客,可以很明显地发现自己的进步,如果我们一直坚持写下去,那么博客就会成为我们的知识库。另外一个重要的改进是我们使用了coding来管理代码,从coding中我们可以一目了然地看到迭代开发的过程,而且代码不会丢失。极大地提高了开发的便捷性,这一点在结对编程和团队开发中更加明显,一个项目可以添加多个项目组成员,我们可以通过coding进行交流,任何一个成员均可将项目文件上传,可以说类似coding这样的版本控制软件,是实现敏捷开发必不可少的工具。

  结对编程让我认识到了相互合作的重要性,我们面对同一台电脑,共同讨论算法的可行性,这样的编程方式可以让我们随时的交换意见,对于提高编程能力有很大的帮助。结对编程有如下的优势:

  (1)结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。

      (2)对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。

      (3)在心理上,  当有另一个人在你身边和你紧密配合, 做同样一件事情的时候,  你不好意思开小差, 也不好意思糊弄。

   然而,在结对编程中也有一些缺陷:

      (1)个人风格造成的问题,不同的人编写程序时的习惯不同,一时间难以改变。
      (2)因为意见不同,导致讨论的时间过长。

   团队编程是结对编程的升级,更加考验我们分工合作,互相配合的能力。我们一开始对于项目的确定以及任务的分工存在一定的问题,导致在初始阶段项目的进度非常缓慢,一方面是由于我们制定的目标过高,另一方面项目缺乏创新性,想要有创新点很困难,所以我们更换了项目,来开发一款基于android的运动轨迹解锁闹钟应用,由于之前在这方面有过一定的开发经验,所以在确定新的项目后,我们很快就能全心地投入。由此可见,要想做好团队项目首先要根据成员的情况选择合适的项目,要找出一两个创新点。然后通过了解用户的需求来制定详细的开发计划。我们每周都要对自己所做的工作进行汇报,同时对一些个人无法解决的问题进行集体讨论,这样我们克服了许许多多的困难,而且也在这个过程中学到了很多东西。

  总之,这学期的软件工程课程让我明确了自己努力的方向。从个人开发到团队开发,我们在脚踏实地的变得更好。这种锻炼对于我们未来走向社会会有很大的帮助。

  • 教学意见和建议
  •   我认为教学改革是必要的,但是改革的幅度有点过大,实践环节固然重要,可是只有拥有扎实的理论知识,实践才会更加有效,本学期的学习过分的依赖于实践,理论知识的教授确实有点少。这就导致了一些同学在结课后发问“我到底在软件工程课上学到了什么?”。所以我认为应当在理论上稍微加强。
  •       我认为考核的方式还存在一定的欠缺。在团队项目中更是这样,我觉得团队项目的考核上老师并不了解我们的具体情况,而且让PM来分配团队分数会让PM很为难。我觉得我们应当增加团队报告的次数,这样老师可以在我们的报告中了解成员的具体情况。当然成员的水平参差不齐,分数应当综合成员在项目中的贡献度和水平进步的程度,这样分配分数会比较合理。
  •       我建议把软件工程课放在大二下或者是大三上来学习,这样一门实践性很强的课程需要花费大量的时间,在大二或大三上学期我们可以专注地锻炼编程能力。而大三下学期,同学们中有很多人决定了考研,这样在时间分配上就会有一定的困难,毕竟人的精力有限。
  •       这次期末考试的题量有些大,前面开放性的题目同学们总会发散自己的思维,写得满满的,在答后面你设计性的题目时,时间已经剩余很少了,这就导致了大部分同学没有答完试题。

   感谢老师们的辛苦付出,课程改革要付出很大的精力,虽然有些问题,但是我们确实从中学到了很多。也感谢刘乾助教和郑蕊助教的辛苦付出,你们一直监督我们的学习,我们差不多是同龄的,但我深深体会到我们之间的差距,有很多东西我都要向你们学习。老师们,辛苦了。

  希望自己可以坚持下去,我相信这样的学习模式会让我终生受益!

 

posted on 2016-06-02 08:18  zhaoweiliang  阅读(203)  评论(1编辑  收藏  举报

导航