软件工程第一次作业
我的第一篇随笔
主要包括四个部分:
1.自我介绍
2.问题的回答
3.《构建之法》读后感
4.每周例行报告
5.采访
6.作品评价
一、自我介绍
老师您好,我叫xxx。目前信科院计算机技术学生,我对软件web类系统的编程比较感兴趣,可能也是本科曾经一直接触这门语言。目前我在自学python,这个语言或许在接下来的导师项目组里会用到。我希望能够通过自己的努力不断提升自己的实力,遇到问题练就愈挫愈勇的心态,为将来走入社会当一个合格的程序设计工程师奠基。
二、回答问题
(1)回想一下你曾经对计算机专业的畅想:当初你是如何做出选择计算机专业的决定?你认为过去接触的课程是否符合你对计算机专业的期待,为什么?你觉得计算机是你喜欢的领域吗,他是你擅长的领域吗?
曾经选择软件工程这个专业有一部分的原因的长辈推荐,而且大学前我也比较喜欢玩电脑,感觉计算机专业也是自己喜欢的专业,而且当时这个专业相对来说比较好就业。大一刚开始时候学C语言,数据结构,当时刚入门感觉一切都好难,尤其数据结构这门课相对来说对于一个刚刚接触计算机专业的人来说比较枯燥难懂。时间复杂度、空间复杂度、三角矩阵、树、图、排序一切都是我们不懂得专有名词,瞬间感觉计算机不再是自己曾经想的那么简单的学科。本科期间,我们的培养主要是学习Java编程,从大一上学过C语言后,下一个语言接触的就是Java了,从刚开始的Java基础到后期的Javaweb编程,使用框架进行管理系统的编程。我真正对编程产生兴趣的时候是大四在昆山实习期间,当时有企业导师先梳理知识点一遍,我当时就想曾经一直抱着抱大腿的想法,只会对已有代码进行适当更改,对数据的传递以及整个流程其实并不清楚,想着趁这个时候该自己学学了。基本就是老师讲述期间认真听,然后按时完成布置任务。我突然发现真的懂这个数据传递的流程的时候你的编码速度嗖嗖就上去了,而且越来越觉得挺好玩,然后后期我也担任组长和5名组员完成了老师交给我们的一个《石家庄维生药业管理系统》项目的编译,包括软件文档加系统实现。所以目前来说,我对web这块的编程还是比较感兴趣的。
(2)考取研究生,对照前人们走过的路和描述未来的发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?里成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?
考取研究生目前编程能力我在web类的编程还是可以的,一定的自学能力也已具备,毕竟考过研的都具备一定自学能力吧,在本科期间我担任了班级团支书以及学生会干部,在人际关系的维护和处理事情的次序也算有一定能力。我觉得如果毕业后准备就业,那么应该在研究生期间尽量多搞一些项目增加自己的能力,遇到困难勇往直前,多了解些编程语言,总感觉计算机专业的如果编码能力不行的话找工作就是一个短板。所以我准备在研究生期间自学一些编程语言,多跟导师做一些力所能及的项目,尽量可以丰富下自己的简历。
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践,不同的选择有不同的努力方向。对照以上你阅读的前人们的经历,你的选择是什么?在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?针对你的选择,你给自己的本学期的规划是什么?
我选择工程项目,相对于学术论文之类的研究其实我更喜欢动手能力多点的项目,虽然我并不排斥学术论文。读研究生就是为了可以比本科毕业出去拿的薪资高点,如果没有一定的硬实力空有理论感觉也只能在学校之类的搞学术,在企业里都说你的能力,有能力的人有主动权。选择这个,我觉得如果在动手能力方面如果是相对编程能力弱的同学可能有一点优势,如果差不多的同学我觉得基本不存在多大优势。对于自己选择我基本选择自学编程,多看一些公司招聘时候的笔试面试要求,从而增强该方面的知识。
(4)你对这门课的期待是什么?你打算平均每周拿出多少个小时用在这门课上?
软件工程的课程我在本科时候就已经上过一次,当时我们主要的目的就是讲述软件设计说明书的编写方式流程,从前期的摘要、介绍、需求分析、概要设计、详细设计、软件测试、结论等一系列流程,为我们在编码管理系统后配备对应的软件设计说明书准备。可能这门课会有另一种讲解方式,希望对自己的编程有一定帮助,当然最期待的就是可以顺利完成该门课程。我打算每周花4-5个小时在这门课程上学习。
三.《构建之法》读后感
上星期通知要看《构建之法》这本书后,通过借阅匆匆略读这本构建之法后,大致总结了几个问题:
1. 5.2中提到了团队合作,那么一个团队中必然有一个组长,那么什么样的人适合当组长?编码技术大牛?营销型人才?还是两边各占一半但都不精通?
2. 8.4中NABCD模型是否是在当前软件企业中使用的一种模型还是说只是理论上的模型?是否还存在其他类似的模型?
3. 8.3中提到了获取用户需求,当前一般是产品经理去和客户进行沟通,回来传递用户需求,开发组进行产品开发,如果前期的调研需求不够完善在项目结束时候突然要求改需求,如何合理有效的完成该项目?
4. 13.2中提到软件测试的各种方法,包括构建验证测试、验收测试、探索式测试、回归测试、场景/集成/系统测试、伙伴测试等等测试,那么目前企业中主流的测试方法有哪些?开发程序员是否必须掌握软件测试的相关内容?
5. 9.3提到PM做开发和测试之外的所有事情,那么PM是否需要技术出身且技术过硬,如果不是那么他如何能让组里成员信服,请结合当前大多企业实际情况答复?
四.每周例行报告
1.PSP(personal software process )个人软件过程。
2.进度条
饼状图:
五.采访“宇文啸东学长”的记录
今天采访的是我本科院校软件工程专业宇文啸东学长,现本科院校在读研三学生,当时他们参与了学院研究生综合素质管理系统的编译工作。
1、当时的项目有多少用户,给用户多少价值? 现在还有人用吗?
我们当时做的是“研究生综合素质管理系统”,目的就是为了在读研究生使用,前期测试期间就是一个项目组的开发人员使用,现在是我院研究生同学在进行使用吧。
2、这个项目能否给我们团队继续开发,源代码/文档还有么?
该项目是学院使用项目,可以说是有版权的,源代码和文档当时也不是我们任何一个研究生开发成员有的,我们都是分工完成各个模块,因为还有几个技术开发老师和我们一起做,基本都是提交过去了所以没法给你。
3、项目开发有什么经验和教训?
当时我作为项目的开发人员,是学院几个技术出身的老师带领我们八个研究生一起完成的这个项目,老师在前期框架搭建上有一套成熟的设计方案,我们在后期就是完成分配下来的模块,后期进行整合调试,如果说经验什么的,大致分为以下三点吧:
(1)软件设计说明书是开发软件系统所必须的,当时咱们这门课也是刘院长给你们上的,他也时刻强调软件设计说明书的重要性,从前期的调研、背景、需求分析、概要设计、详细设计、软件测试等一套流程都要清晰,要清楚整个流程,这样你才能在整个项目中发挥所长。
(2)一定要仔细,在编程期间一定要搞清数据的逻辑性,很多时候我们可能是自己的手误输错某个关键字,可能当时运行某个模块一切正常,但如果运行时候触发了这个错误所涉及的版块就会报出一些莫名其妙的错误,而且有些可能debug都找不出来的。后来你发现问题后突然觉得前期自己好弱智,为什么在这块居然打错了。
(3)善于总结,对于曾经遇到的弱智问题,以后避免。对于开发过程中遇到的技术问题,百度解决后记录备案,下次遇到同样的问题,你就可以做到手到擒来。
4、对学好软件工程有什么建议
我觉得软件工程这门课程主要就是教我们如何编写正确的软件设计说明书和正规的编码方式。就我们本科时候所学的软件工程来说,从前期的概述背景及意义、需求分析、总体设计中的概要设计和详细设计、后期的软件测试,这些都是软件工程这门学科所教授的内容。作为一个合格的软件工程师我觉得这些东西就是必须学会掌握到的。你门当时大四去昆山实习期间,企业应该也做过项目,当时老师应该也让你们编写过完整的项目设计书和系统,还有你们的毕业设计,我觉得这些都已经能够让你认识到如何编写软件设计说明书。最后就是祝愿你研究生生活顺利吧。
六、历年作品评价
1.》 团队:天天向上 作品:连连看
http://v_show/id_XMTgxMjgyNjIxNg==.html
评价:
优势:非常简单的一个小游戏但是编码我感觉不简单,嵌入音乐模块可以让用户在使用期间可以欣赏音乐,设置了切换三套主题分格很有意思。
劣势:背景相对简单单调,后期图四其实是有bug存在的,最后两个图案是不一样的没法消除。
2.》 团队:新蜂 作品:JAVA俄罗斯方块alpha版本
http://v_show/id_XMTc3NTcwNzUwMA==.html?qq-pf-to=pcqq.temporaryc2c
优势:基本满足俄罗斯方块的各项功能,可以进行游戏。
劣势:满足常用功能,背景一样很单一,用户体验度有欠缺。
3.》 团队:飞天小女警 作品:礼物挑选小工具final版本
http://v_show/id_XMTg0MjMzNDIwNA==.html?spm=a2hzp.8253869.0.0&from=y1.7-2
优势:根据输入几个需求进行相应产品画面跳转,首先肯定想法很好,可以满足一些困难选择用户的基本需求。
劣势:用户体验度欠缺,作为web网站,不在于数据的显示是否直观,而在于前端设计,一个用户对一个web的使用往往是通过第一眼的感觉,所以可以稍微设计美观一些。