博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

个人学期总结

Posted on 2018-07-12 23:19  平头哥  阅读(245)  评论(1编辑  收藏  举报

一、对第一次实验拟定的五个问题的回答如下:

     1.书中第二章降到对软件相关测试,以及个人的开发流程,通过分析这些流程,让我深感程序员的伟大,他们就好像一个艺术家一样,用严密的技艺制造出一个个艺术品,每个艺术品都仿佛是充满生命,在设计者手中,这个生命换发勃勃生机。书中37页讲到,人们在实践中碰到的需求是经常变化的,软件设计的许多原则是从实践而来,这些原则正是为了在不断变化的需求中保证程序的可维护性和效率。人们总不能预计信息发展的速率,以及涉及所有原则,我想知道如果客户需要和设计者无法达成一致,满足了客户而背弃了设计者的意愿,如何处理才能两全其美?

      答:需求分析就是分析软件用户的需求是什么。如果投入大量的人力,物力、财力、时间,开发出的软件却没人要,那所有的投入都是徒劳。如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的(相信大家都有体会)。简言之,需求分析的任务就是解决“做什么"的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求。过程需求分析阶段的工作,可以分为四个方面:问题识别、分析与综合、制订规格说明、评审。问题识别:就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准。这些需求包括:功能需求(做什么)、性能需求(要达到什么指标)、环境需求(如机型、操作系统等)、可靠性需求(不发生故障的概率)、安全保密需求、用户界面需求、资源使用需求(软件运行是所需的内存、CPU等)、软件成本消耗与开发进度需求、预先估计以后系统可能达到的目标。分析与综合: 逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)。制订规格说明书: 即编制文档,描述需求的文档称为软件需求规格说明书。请注意,需求分析阶段的成果是需求规格说明书,向下一阶段提交。评审: 对功能的正确性,完整性和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。方法需求分析的方法有很多,这里只强调原型化方法,其它的方法如:结构化方法、动态分析法等,从来没用过这些方法在此不讨论。原型化方法是十分重要的,原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能。原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能。但是这个系统可能在可靠性、界面的友好性或其他方面上存在缺陷。建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性、技术的可行性或考察是否满足用户的需求等。如:为了考察是否满足用户的要求,可以用某些软件工具快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型。以后的目标系统就在原型系统的基础上开发。

     2.第三章中,一个软件工程师的成长历程中我知道,在程序设计中,没有好程序与坏程序之分。在每一个程序员精心编辑下,每一段程序代码都有它独特的意义。而在这些代码的背后,是程序员呕心沥血的编码经历。书中也讲到软件工程师的职业发展,列举了一些统计数字,以及一些人的职业态度,读完让我有些迷茫,对日后的职业规划更没有了方向。我想知道这个灯塔该如何点亮,在日益发展的IT行业,该怎么一步一步寻找自己前景的方向,,目前我更应该怎么去做,才不至于在IT的洪流销声匿迹?

      答:高校教育重在培养深厚扎实的高等人才基础素质,而就业需要的是实际操作上的精和深。那么大学生在就业之前经过一段时间的企业案例实训以及模拟企业团队开发的实战,这无疑是对大学生的就业起到一个实质性的推进作用。另外,很多在职工程师也需要不断充电,以获得更好的待遇和晋升阶梯。由此可见,IT培训机构是一座桥梁,以此来解决学校基础知识与IT企业需要的实际操作能力之间的问题。由于体制原因,任何高校不可能随着市场需要和当前IT企业需要的技术,来进行教学。而学生就业,恰恰缺乏这方面内容,企业招聘,也恰恰看重这方面内容。所以IT培训的存在,对渴望从事IT行业的学生,对希望尽快找到工作的学生,有重大的作用和意义。

     3.第四章讲了两人合作,这章刚开始叙述了代码规范的相关内容,让我知道了自己以前写代码是如何的随心所欲,也知道了原来自己程序出现的许多bug是自己一开始就已经制造的,然而那么多的规范让我现在都不会写代码了,我该如何去做,才能不用记忆那么多的规范而让自己写代码时更容易一些?

       答:多写多写多写,写多了那些规范就会融会贯通了

     4.第五章说了团队和流程,讲到了团队的模式。每一个人都有每一人的特点,对于一个团队中的这么多人,我们该如何确立这各团队的模式,让这个团队更好发展呢?

        答:1、 具有明确且有挑战性的共同目标 

               2、 团队具有很强的凝聚力

               3、 具有融洽的交流环境

               4、 具有共同的工作规范和框架

               5、 采用合理的开发过程

      5.第八章讲了最令程序员头疼的问题---需求分析,一万个人就会有一万个哈姆雷特,如何让自己的问题定义更准确,更加全面的了解客户需求,在这一方面老师有什么好的建议没?

         答:如果没有听懂某人所说的话,可能是因为您心猿意马,错过了某一个要点。如果不专心致志、积极主动地聆听,您还会得到错误的信息。全神贯注于说话者所说的话、提问,并明确地发出信号,表明自己关心说话的内容,能确保双向的交流沟通发生。听人谈话时,您必须尽可能多地与对方进行沟通,好像是自己在说话。您应该专心致志地聆听,但是,如果您没有一清二楚地表明这一点,说话者是不可能知道的。如果您毫无反应,什么应答也没有产生,说话者无法肯定您是否已听懂。表明自己对内容感兴趣是一种反馈,能鼓励说话者继续往下说。下面是一些简单而又行之有效的方法表明自己在聆听。 用信号表明您有兴趣可以用下列方式表明您对说话内容感兴趣:保持视线接触:聆听时,必须看着对方的眼睛。人们判断您是否在聆听和吸收说话的内容,是根据您是否看着对方来作出的。 让人把话说完:让人把话说完整并且不插话,这表明您很看重沟通的内容。人们总是把打断别人说话解释为对自己思想的尊重,但这却是对对方的不尊重。 󰀀󰀀  表示赞同:点头或者微笑就可以表示赞同正在说的内容,表明您与说话人意见相合。人们需要有这种感觉,即您在专心地听着。全神贯注:把可以用来信手涂鸦或随手把玩等使人分心的东西(如铅笔、钥匙串等)放在一边,您就可以免于分心了。人们总是把乱写乱画、胡乱摆弄纸张或看手表解释为心不在焉——即使您很认真也是如此。放松自己:采用放松的身体姿态(如把头稍偏向一边,或把身体重心偏向一边),就会得到这样的印象:他们的话得到您完全的关注了。所有这些信号能使与您沟通的人判断您是否正在专心听取他们说的内容。检查您的理解力检查自己是否听得真切,并且已正确地理解了信息(尤其是在打电话时),可以按如下做: 解述信息:把听到的内容用自己的话复述一遍,就可以肯定是否已准确无误地接收了信息。提出问题:通过询问,可以检查自己对信息的理解,也能使说话者知道您在积极主动地聆听。

   新的问题:对于一个即将完成的项目的软件,该如何引资推广它呢?

二、课程的实践总结和自身的提升:

       1、统计你在软工课程实践中,完成了多少行的代码;

            答:完成了大约五千左右行代码。

       2、软工实践的各次作业分别花了多少时间?累计花了多少个小时在软工实践上?平均每周花多少个小时?(做一个列表)

软工作业

花费时间

平均每周花费时间

实验一 软件工程准备

 9

6.4

实验二 软件工程个人项目

7

6

实验三 软件工程结对项目

 9

7

实验四 基于原型的软件需求获取

 12

 8

实验五 软件研发团队组建

 4

 6

实验六 团队项目评审与团队项目选题报告

5

 5

实验七 团队作业3—团队项目的原型设计与开发

 5

 5

实验八 团队作业4—基于原型的团队项目需求调研与分析

 11

 8

实验九 团队作业5—团队项目需求改进与系统设计

 8

 6.8

实验十 团队作业6—团队项目系统设计改进与详细设计

 11

 9

实验十一  团队作业7—团队项目设计完善&编码测试

 8

 7

实验十二  实验十二 团队作业8—团队项目用户验收评审

9

 7

      3、哪一次作业让你印象最深刻?为什么?

         答:基于原型的团队项目需求调研与分析使我印象最深刻,这是团队对开发项目的一种展示,在做每一次的任务之前都会通过讨论将未解决的问题一一解决,换做以前会自己一个人去想问题的解决方式,比较好费时间,但是团队结对编程可以迅速地找到问题本质所在,并且大家能够想到很多可行性的办法和解决方案,切实体会到结对编程提高了调研的效率,节省了时间。

      4、学习和使用的新软件;

           答: visio、

      5、学习和使用的新工具;

           答:墨刀、石墨文档、mockplus

      6、学习和掌握的新语言、新平台;

            答:GitHub、博客园

      7、学习和掌握的新方法;

            答: 快速原型方法、白盒测试与黑盒测试、面向对象设计方法

      8、其他方面的提升

            答:对编程能力、文档书写能力、团队合作能力、逻辑思维能力有很大帮助。

 三、你认为目前的课程有哪些问题,你有什么更好的建议:

      1、你认为本门课程需要在哪里进行改进,具体措施有哪些,包括:时间进度安排,项目难度等均可;

            答:翻转课堂确实让我们有很多收获,学习到了很多知识。但是希望这门课程的这种方式可以放在大一或者大二来应用学习,大一大二大家的时间相对较多,对大家的学习习惯相对影响较大,对以后的学习也会有一个很好的帮助。

       2、你认为助教/老师哪里做的不足,哪里限制太多等;

             答:自我感觉无论是助教还是老师,这一学期对我们都很负责任,做得挺好的,都做了应该做得。

      3、你认为每次项目的评分标准存在哪些问题,你认为的合理评分准则是怎样的(个人/结对/团队算三个)

              答:评分标准这个问题我们班曾经有过讨论,因为每个助教自己的评分标准多多少少会有点差异,后来老师的解决方法是让每个助教每次评不同的人,尽量做到公平。但是老师们尽量都做到了公平客观。

      4、在结对项目中你是否真正体会到了结对的好处,是否真正严格进行了结对编程,双方的工作量是否相同;

              答:在结对过程中我体会到了这种学习方式的好处,它可以让我和伙伴之间相互学习,共同进步,得到1+1>2的效果。

       5、你的团队项目是否成功,如果重来一次你是否还会选择这个团队,为什么成功/失败;

              答: 我的团队项目是成功的,项目顺利地实现了预期效果,内部成员能够积极完成任务,氛围融洽,有疑惑的地方也会积极讨论,每个人都有不同的收获。如果重来一次我还会选择这支团队。

       6、总结一下你们团队在做项目时大家的时间安排情况。

               答:每个成员在不同的阶段实践安排不一样,当某一阶段负责该部分内容的成员会占用较多时间,其他成员相对而言较少。一般做项目的时间就是除了上课时间以外的时间,一般会集中在下午或者晚上。

       7、对下一届软工课实践教学的建议,或者对于开学初的你,对于大一的你,对于开学初的老师,你有什么想建议和告知的呢?对于后来人的期许。

               答:安排软件工程这门课应该放在大二第二学期或者大三第一学期开设比较为合适,大三下学期就有些晚了,况且大三课业重,时间安排比较紧张。对于下一届上软件工程的小伙伴的几句话:一定要打好坚实的基础,只有打好了基础后面的一切才有能力去做,如果自身能力不足,很多看似美好的东西却无法实现。

四、你还有什么想说得话

            答:本来感觉学习软件工程这门课会和以前一样,混过一节课是一节课,却没想到遇到了一位不同以往的老师,老师对我个人能力的提升有很大帮助,通过一学期的软件工程的学习,我学到了许多有关项目开发方面的经验以及知识。我们从刚开始的个人项目开始,再到两个人结对项目以及最后的小组项目,是一个成长的过程,我们从最初的无项目经验到最后的能够熟悉项目开发中的每一个流程,真的是收获了许多。有从不同的实例,让理论和实践得到了很好的结合。软件工程与其说是一门课程,不如说是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合。

            感谢代老师以及她的助教所做的一切。