总结

这个作业属于哪个课程

https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2

这个作业要求在哪里

https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3393

团队名称

脑阔疼

这个作业的目标 

团队项目的总结

一,团队成员

杨帆 201731062519
任杰 201731062516
陈宇航 201731062521
金城 201731062506 
罗付强 201731062523
黄林 201731062526
侯肖耀 201731092120
胡杨帅 201731091129

 

 

 

 

 

 

 

 

 

 

二,正文部分

杨帆 201731062519

本人博客地址:https://www.cnblogs.com/chaserFF/

1.以前题问题的博客地址:https://www.cnblogs.com/chaserFF/p/10530036.html

2.尝试对自己提出的问题进行解答,并阐明,是如何通过看书,实际,或者讨论弄明白的。
问题1:项目经理是管理与策划的,那么项目经理是否需要懂技术以及有对软件的架构能力。
本次项目我担任的角色是项目经理,从中体会到了项目经理如果懂技术的话,开发效率会高很多,因为假如在开发某一个模块时,实际上用时只需1天,而如果项目经理不懂技术,团队成员便可以忽悠项目经理开发这个模块需要一周,从而影响开发效率。

问题2:成功公司中有94%每天或至少每周完成构建,每日构建有哪些好处。
在本次项目实践中,我们就采取每周完成构建,深刻了解到了每日构建的好处。这样能越早的发现软件的bug,会更少地影响后续的开发。不立刻发现bug的话,后续bug会越来越多,影响开发效率。

问题3:为何成功公司没有必要设置独立的测试角色?
本次项目实践后期测试阶段,我让参与软件编码最少的人进行测试,这就相当于独立测试角色,我发现他测试效率很低,因为他对这个项目的代码不是很了解,所以我认为应该让对项目了解最多的人进行测试,这样效率会更高。

3.是否产生了新的问题?请提出。
当做的项目需要的技术团队大半的人还没接触过的话,是否应该让他们边学边做,还是应该自己解决大部分问题。怎么平衡这两者之间的效率问题。

4.经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。
更好地理解并且掌握了软件项目制作地过程。是通过课堂的理论学习以及课程的项目实践环节掌握的。

5.有什么深刻的体会,对自己一学期学习过程的总结。
体会最多的还是理解了软件开发的过程。我对本学期的学习过程挺满意,还需再接再厉。

 

任杰 201731062516

本人博客地址:https://www.cnblogs.com/biscuits/

·请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。
当时的想象就是如何做出一款好的软件,以及做的时候该注意哪些问题。
而提出的问题是关于书本上一些不懂的知识点。

·链接到以前提问题的博客:
https://www.cnblogs.com/biscuits/p/10547668.html

·尝试对自己提出的问题进行解答,并阐明,是如何通过看书,实际,或者讨论弄明白的:
之前的问题绝大部分是书本的知识,到了现在,我很多东西都在实际项目中有了清晰的回答了,很多时候
做的时候会发现很多以前提出的问题会迎刃而解。

·是否产生了新的问题?请提出:
我觉得软件工程这门课我们只讲的是书面的内容,是否能够身临其如的去体验一下做软件的过程,虽然
在这节课中,我们自己也做了项目,但我感觉我们离真正的项目还是很远啊。

·经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的:
之前我也是搞前端的,但只是一些界面的部分功能具体实现。这次项目中就有了具体的改变,我负责很多
了东西,也提升了自己的能力。掌握了js中很多方法,实现DOM文件操作等等,丰富了我对于js的了解,
虽然js里的水很深...,不过我接下来我会更加认真的学习的。

·有什么深刻的体会,对自己一学期学习过程的总结:
项目是实践你是否学会的唯一真理。学的再多,不去实际操作等于白学,操作的时候,你会发现很多你的
漏洞,这时一定要认真的去分析你的错误。尤其是学前端时,一些细节的操作一定要多多练习,同时还要
学习一下框架,有了框架的基础,很多的东西机会变得更加贴近真实。

 

金城  201731062506

问题链接:https://www.cnblogs.com/jcahsy/p/10546750.html

问题解答:

  1. 单元测试要充分且尽量快。
  2. 社区模式中的社区由很多志愿者参与,他们很多出于兴趣爱好,锻炼自己并学习知识,与报酬多少无关

是否产生新的问题:

暂无

经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的:

学习了web前端的一些知识,HTML5,CSS,JS这些通过图书馆借阅相关书籍,网上看相关教学视频,并在项目中通过实践来掌握

有什么深刻的体会,对自己一学期学习过程的总结

我的基础还是太差,需要多加练习,OJ算法题要多做,其次在和团队成员交流的时候要设身处地,换位思考,采用更加睿智的沟通方式,互帮互助。

 

 黄林  201731062526

  • 请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。

1、 什么是软件工程?

2、 大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。你的选择是什么?

  • 链接到以前提问题的博客
  • https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2706
  • 尝试对自己提出的问题进行解答,并阐明,是如何通过看书,实际,或者讨论弄明白的

3、 什么是软件工程?

软件=程序+数据+文档

软件工程=软件+工程

软件工程是一个工程,可大可小,一般不是一个人能做到的,它有很多的步骤、操作和内容,需要多人合作才能完成的。不是我们所想的主要就是写代码就行了,还有很多其他必须的内容和步骤。

4、 大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。你的选择是什么?

这个我目前还是没想好的,不管哪个选择,总之,我会尽我最大努力去学习和提升我的能力的。

 

  • 是否产生了新的问题?请提出。

5、 在团队中,和不同能力、不同性格、不同作风的伙伴学习和工作时,我们要怎样好的处理自己和他人不好的情绪和行为?

6、 在学习和实践过程中经常为了需要或完成要求而学了一些相关内容,但学的肤浅,且耗时,忘得也快,这是必要的吗?

7、 在学习中,我们经常遇到各种困难,耗费了很多时间,但每次消耗的时间都是值得的吗?没有必要的时间如何判断和改进?

  • 经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。

8、 如何制作PPT,根据多次看别人的演讲和是室友指导,总结了规律和技巧。

9、 如何配置和安装一些软件及环境。通过自己多次下载和网上搜索。

10、 对数据库、框架、界面设计等有了更深入的了解和应用。

  • 有什么深刻的体会,对自己一学期学习过程的总结。

11、 对于团队队友间的配合和相互学习交流等有深刻的体会和感触。队员间明确的分工、积极向上的态度、刻苦学习、无私奉献的精神,不仅让团队的氛围很好,而且效率很高。

12、 完成对自己很有挑战性的任务收获是巨大的。这期间你可能会出现烦躁、慌张、焦虑、失望、劳累、甚至想放弃等消极行为。这个过程是很辛苦、艰辛,但只要坚持了下来,收获是前所未有的。它可能对你的影响很大,可能改变的你学习方式,你的想法,拓宽你的实业等等。

 

罗付强 201731062523

以前博客:https://www.cnblogs.com/lfq4588/p/10547678.html

 

问题一:通过课程学习我知道了代码只有做的更好,由于个人习惯不一样代码风格肯定不一样,所以会有团队里边的制定代码规范。

问题二:课程学习和团队项目开发过程,我明白了代码和软件要做到足够好,要对自己的代码软件负责。

问题三:在团队项目开发过程中,我么合理分配工作,然后根据个人能力的极限取突破极限,能够学到很多东西,也能消除打酱油这种情况。

问题四:做到足够好,在课程中学到的。

问题五:从生活经验和接触过的一些文章,我明白了,创新就是探索新东西的过程。

 

我充分理解到团队合作的重要性,一个团队的工作能够有条不紊离不开有效的团队分工个合作。

我学到了很多以前没有接触到的东西,比如软件开发各个阶段需要做些什么,怎样测试代码,软件等。

 

胡杨帅 201731091129

·请回望第一次个人作业,你对于软件工程课程的想象和提出的问题

1.软件工程的目标是创造出足够好的软件,我觉得足够好这个定义虽然很好理解,但其实也太模糊了,BUG少就是好软件吗?

2.结对编程真的会省下时间吗?

3.如何确立每次增量的大小和发布的周期呢?

4.创新难道不是你对一个领域了解的非常透彻以后加入新的想法和主意实现的吗?

  ·链接到以前提问题的博客

https://www.cnblogs.com/HYS153/p/10545778.html

  • 尝试对自己提出的问题进行解答,并阐明,是如何通过看书,实际,或者讨论弄明白的
  1. BUG少只是衡量软件好坏的一个方面,软件最重要的指标是满足用户的需求,还要可维护性要好。
  2. 结对编程不一定会节省时间,因为如果两个人的技术差距太大的话,结对编程可能会更加的耗费时间,但如果两个人的技术水平差不多,配合又比较默契的话,结对编程就会节约时间提高效率。
  3. 确定增量的大小是比较困难的,应该根据软件模块的重要性来确定增量的大小,先发布比较重要的模块,再逐步完善优化。
  4. 创新是生产力的来源,需要的是天马行空的想象力,思想要足够活跃,需要了解各方面的知识,并进行不断的融合创新。
  • 是否产生了新的问题?请提出。
  1. 学习软件工程这门课程需要及其丰富的编程经验,对于我们大学生来说,编程经验往往不够,学习这门课程是否还太早?
  2. 对于大学生来说,我们很难进行需求分析的获取,大学生如何进行需求的获取?
  • 经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。
  1. 学会了软件测试的一些方法,通过一些作业的练习,学会了单元测试,集成测试,回归测试等一些软件测试方法,能够更早的发现软件编程过程中的一些错误。
  2. 通过老师布置的作业和指导下,掌握了GitHub源代码管理工具的使用。
  • 有什么深刻的体会,对自己一学期学习过程的总结。

学习了软件工程原理与方法这门课之后,我了解了软件开发的整个过程,掌握了软件开发过程中的一些管理办法,也掌握了软件测试的一些办法,我们也实际的开发出了一个班级网站,从中学会了很多的东西,并且掌握了一门新的语言,了解了团队合作的重要性,在团队中药学会互帮互助,能力强的帮助能力弱的,大家共同进步,最后才能把软件开发出来。

 

侯肖耀 201731092120

1.博客链接:https://www.cnblogs.com/cherish599/p/10548024.ht

2、尝试对自己提出的问题进行解答,并阐明,是如何通过看书,实际,或者讨论弄明白的

(1)问题一:书中第二章的2.4 ,作者多次提到 API 这一概念,我甚至读不懂API是干嘛的。

  针对当时提出的这个问题,我现在觉得可能是这学期刚开学那时候自己的无知,就是自己的知识储量太少了。现在,我早已领会了API的概念。所谓API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提到API,首先就是离不开操作系统。常见的有Windows API和Linux API。就拿Windows来说,凡是在 Windows工作环境底下执行的应用程序,都可以调用Windows API。

  对于这个问题的解答,其实我也说不来是怎么慢慢就理解了,更多的可能是来自于书本把。是我今天在此看到之前的问题的时候,我才知道,噢,原来之前的我不知道API的概念。

(2)问题二:书中第二章的2.4 p38 ,作者介绍了两个软件设计原则。其中一个原则是开放-封闭原则:

  针对自己当时对这个问题的困惑,其实自己后来就明白了点。软件实体对扩展是开放的,而对修改是封闭的。后来我又广泛查阅了其他的相关网站,差不多都是相同的说法。

3、是否产生了新的问题?请提出。

   暂时还没有新的问题。

4、经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。

  经过这学期的学习,因为本课程的团队项目,我学习了前端的网页开发。从之前的从来没有接触过前端,到现在成功开发出了可以运行的版本,我觉得自己收获还是挺大的。掌握的方法就是,自己一边看网上的教学视频,一边跟着教学视频的内容敲代码。下面在自己敲几遍巩固一番。然后等知识点掌握了之后就写团队的前端项目。可以说是一边学习,一边开发。可能进度很慢,但我觉得学的还挺好。

5、有什么深刻的体会,对自己一学期学习过程的总结。

  深刻体会就是,通过大二下半学期的学习,觉得自己学到的知识还是很多的。总结的就是,只有不断地练习,刻意的训练,才会变得强大。有一点遗憾的就是,在第一次博客作业中,我给自己定的每天一百行有效代码的任务量我觉得定高了。我坚持了没多久就发现真的坚持不下去了,天天这样的话。但是经过刻意练习,我现在确实是比之前提高了很多。下学期包括暑假我还会结合自身的情况进行计划的修改。代码还是要坚持敲的。最后给自己一个鼓励,加油!加油!加油!

 

陈宇航 201731062521

 第一次作业博客地址:
https://www.cnblogs.com/chenyuhangbaba/p/10570909.html
1、书中第一章中提到需要对开发出的软件提供维护工作,但是当开发的软件项目到达一定的数目之后同时进行多个软件项目的维护也是一个问题,长此以往,某个个人或者团队会不会被这个原因拖垮?
答:不会,因为这些软件在维护过程中会越来越趋于完美,后期的维护就不会像前期一样投入太多的人力、物力、精力;再者说达到一定的时间之后,软件就会过时,过于老旧的软件就没有再维护的必要,不如重新开发一个2.0、3.0的版本。
2、在书中第五章5.3开发流程中为我们介绍了很多种开发模型,但是后面很多模型都是根据瀑布模型演化而来,是不是意味着瀑布模型没有别的模型好?我们在选择时应该首先放弃瀑布模型呢?
答:并不是瀑布模型没有别的模型好,虽然说很多都是通过瀑布模型改进而来,但是瀑布模型也有着自己的优点;应该视情况而论,选择自己项目最适合的开发模型。
3、在书中学习敏捷流程是提到相较于传统方式需要具备完备的文档而言,敏捷流程只需要够用的文档就行了,对于够用这个概念我不是很清楚,它和传统方法的具体区别在哪?
答:敏捷流程是一种软件开发思想的流程,以一组软件开发论为代表,具体体现为许多互相支援的概念、工具和实践经验。传统方法包括流程和工具、完备的文档、为合同谈判和执行原定计划;而敏捷流程注重个人和交流、可用的软件、与客户合作和相应变化。敏捷流程能够尽早并持续地交付有价值的软以满足用户的需求,并且欢迎客户需求的变化,并利用这种变化来提高用户的竞争优势。
4、在说到要把软件项目做得比较完美的时候提到了极限编程这个概念,但是只说了它相较于普通编程方式的区别,那么我们作为软件工程师什么时候应该选择什么样的方式最合适呢?
答:极限编程就是把好的方法发挥到极致,但是我们在日常的编程工作中并不应该一味地去按照这种方法去编程,应该在能在预定时间内交付软件的情况下去尽可能的使用这种方法。
5、在第16章创新里面提到了很多成功者的案例,当然也提到了他们所遭遇到的困难,但是我想成功的人毕竟是少数,那么作为比较平凡的我们来说,一味地在创新的路上是否有意义?
答:一味地去创新并没有什么意义,因为自己去创新是一件很冒险的事情,因为不知道自己前路是否对,也会投入自己大量的物力、精力,所以我们平凡的人不该一味地去创新,不过可以适时创新。
暂时还没有新的问题。
技术收获与心得体会:结果这学期的学习,我知道了软件项目开发内部应该具体做什么事情,软件开发并不是一味的去写代码,修改代码,而是应该按照软件流程去做;除此之外我还学会用Visio去绘制各种图类。我还学会了在一个团队之内,应该怎样去分工,团队里的每个人都应该去做自己比较擅长的一部分,因为边学边做的话势必会影响整个团队项目的进度。在团队中,每一个人都应该发挥自己的作用,不要去拖团队的后腿。
 

附上GIT的地址:https://github.com/YFDreamChaser/classWeb.git

你可能感兴趣的:(总结)