201671030108后新莉+实验十四 团队项目评审&课程学习总结

项目 内容
这个作业属于哪个课程 代老师博客主页
这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结
作业学习目标 (1)掌握软件项目评审会流程;(2)温故知新自己的所得;(3)反思总结课程学习内容。

任务一

        在周五的课上,我们和发际线总是和我作队进行了项目的结对验收,在验收的过程中我们完全按照老师之前要求的软件工程项目验收的办法进行。第一阶段由他们组作为项目组乙方为我们演示和讲解了《西北师范大学教材订购系统》,在演示完了以后我们作为项目验收方对他们提出了自己不太清楚的地方,他们也一一进行了回答。第二阶段由我们组作为项目组乙方为他们演示和讲解《小区物业管理系统》,并解答了他们的问题,最后通过各自小组的讨论形成了对彼此结对项项目的一致验收意见并把电子版上传到了GitHub上。

        通过这次模拟项目和评审我知道了在项目开发出来以后还应该注意一下几点:

        1、在系统运维或实施的时候要清楚系统的整体架构设计;

        2、在系统验收的时候所有相关准备材料都必须按照国标进行编写;

        3、作为项目乙方,要对验收方提出的问题要回答的有理有据;

        4、作为项目验收方,要对乙方的项目进行专业和客观的评审。

任务二


        Q:1.结合本学期课程学习内容,对比《实验一 软件工程准备》的任务5你所提的问题(给出提问博客链接),尝试对提出问题进行解答,并阐明是如何通过学习/实践/讨论弄清楚的;学习中是否产生了新的问题?如有,请提出

答:

  • 问题博客链接:点击查看

  • 问题一:可能我首先需要解决的问题就是学会去热爱自己的专业。

        通过这一学期的学习,我系统的了解了软件开发的整个过程,从需求分析、概要设计、原型开发、开始编码到项目验收,在这个过程中我也学会了很多,看到自己参与编码的系统可以运行,可以实现最初设计的想法和功能就觉得满心欢喜,这种感觉很满足。我虽然以后不打算从事有关计算机专业的工作,但是一学期的软件工程的学习让我现在至少不讨厌开发项目,自己不懂得也想去学习。

  • 问题二:在学习了这一门课程之后,会不会让我们在熟悉软件开发流程的基础上在以后开发软件的时候更加的具有自己的想法、创意和创新?

        这学期我们的软件工程实验课主要是围绕个人编码、结对象编码和团队开发这样的三个阶段逐步递进的。之前的小的代码编写都是老师直接给定了题目,但是在团队开发的时候我们采取的是自由组合的方式,从团队名、团队拟开发的项目到团队原型模型设计这整个过程中,老师只是教给我们方法,想法都是自己团队讨论出来的。所以在开发软件的时候就会更加具有自己的想法和创意,比如:我们团队开发的《小区物业管理系统》就是参照现在已经普遍存在的系统,发现现在的物业管理系统只有管理员登录的功能,我们就像开发一个小区住户也可以登录的系统,为小区的住户提供方便。这样在开发系统的时候就会更加具有自己的想法。

  • 问题三:在学好理论课的同时怎么更好的将在课堂学习到的知识和实践相结合?在这个过程中最需要注意的哪些方面?

        对于个人而言,理论和实践相结合最好的办法就是要多练。但是在团队合作中,不能靠自己的一己之力完成全部的工作,所以我们要在练的基础上做好沟通,每个人都有自己的编码习惯,在团队合作中提前规定好正确的编码规范很重要,这一点在这次的团队编程中我深有体会,如果每个人都随意命名,那么在最后合起来的时候就会很麻烦。除此之外,还应该有符合国标规范的文档说明,这样才能在学好理论的时候进一步提高自己的专业能力。


        Q:2.总结自己在项目的 可行性分析/需求分析/软件设计/实现/测试/项目验收/中学到了哪些“知识点”。

答:

  • 可行性分析:在组建项目小组完成以后要确定自己团队拟开发的项目。而确定拟开发项目的第一步就是进行可行性分析,要采用NABCD分析方法,从N(Need,需求)、A(Approach 做法)、B(Benefit,好处)、C(Competitors,竞争)和D(Delivery,推广)这五个方面来分析,这样确定的项目才会更好的实施,不能“拍脑子”决定开发的项目。

  • 需求分析:需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。在需求分析之前可以进行必要的需求调研,常用的调研方法有:(1)情景模拟;(2)问卷调查;(3)小组讨论;(4)卡片分类等。每个项目小组可以根据自己项目的需求选择相应的调研方法,在需求分析阶段最好利用UML模型描述用户需求,最后编写符合国标GB8567——88的《软件需求规格说明书》。

  • 软件设计:软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。项目团队可以使用原型开发软件形成最初的软件的原型,然后再此基础之上在进行进一步的设计,在软件设计阶段也应该明确软件系统总体结构并形成比较完整的数据库逻辑结构设计,利用Visio、Rational Rose、PowerDesign等绘图工具完成,最后编写符合国标GB8567——88的《软件系统概要设计说明书》。

  • 实现:实现就是进行软件编码。软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。团队项目在这个阶段应该注意在程序编码之前要制定统一、符合标准的编码规范,这样可以保证程序的可读性、易维护性,提高程序的运行效率。

  • 测试:软件测试的目的是以较小的代价发现尽可能多的错误。在这个阶段可以在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试,组装测试,系统测试三个阶段进行。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。最后编写完整测试文档。

  • 项目验收:项目验收测试是软件开发结束后,用户对软件产品投入实际应用以前进行的最后一次质量检验活动。它要回答开发的软件产品是否符合预期的各项要求,以及用户能否接受的问题。由于它不只是检验软件某个方面的质量,而是要进行全面的质量检验,并且要决定软件是否合格,因此验收测试是一项严格的正式测试活动。需要根据事先制订的计划,进行软件配置评审、功能测试、性能测试等多方面检测。项目开发方应该提供《需求分析说明书》、《概要设计说明书》、《详细设计说明书》、《数据库设计说明书》、《测试计划》、《测试报告》、《程序维护手册》、《用户操作手册》、《项目总结报告》等一系列的文档说明。


        Q:3.结合个人项目/结对编程/团队项目的个人经历,谈谈心得。

答:

  • 个人项目:在做个人项目的时候老师给定了题目,比较简单,也容易实现。自己在编写代码的时候只要大概进行编码前的准备就可以开始编写代码,过程不会太复杂。

  • 结对编程:结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程可以使代码质量得到很大的保证,避免犯很多小错误,细节考虑更全面,代码风格也可以保持一致。而且通过自己的亲身体验结对编程完全可以提高工作效率,因为当有另外一个人就坐在你身边负责审查你的代码的时候,她的作用使不可能忽略的。

  • 团队项目:以前还不觉得单人开发和团队开发的区别有多大,以为顶多就是把一个人的任务分给了多个人而已,但是其实不然。在经历过这次团队开发之后,才感觉到了单人开发与团队开发之间的重大区别,并不仅仅是将任务划分一下就完了。在团队中最重要的是要彼此沟通,多多交流意见,不能自己一个人闷头苦干,在团队有了很大的分歧的时候应该由组长组织开会,交流想法。还有,在编程的时候要事先规定好编码规范(包括类的命名和必要的注释),这样最后整合的时候才不会摸不着头脑。团队成员之间应该彼此理解,而且每个人擅长的领域不一样,在分工合作的时候应该尽可能最大化每个人的优点。


        Q:4.总结这门课程的实践总结和给你带来的提升,包括以下内容:

答:

  • 统计在软件工程实践中,你完成了多少行的代码;
    -大概2000行代码。

  • 你在软件工程实践的各次作业分别花了多少时间?(做一个列表)

各次作业 作业链接 花费时间
后新莉第一次作业 https://www.cnblogs.com/jsj-hxl/p/10479000.html 3小时
201671030108后新莉+实验三作业互评与改进报告 https://www.cnblogs.com/jsj-hxl/p/10535065.html 2小时
201671030108 +词频统计软件项目报告 https://www.cnblogs.com/jsj-hxl/p/10561076.html 三天
201671030108后新莉+《英文文本统计分析》结对项目报告 https://www.cnblogs.com/jsj-hxl/p/10635497.html 四天
《BUG创造队》第一次作业:团队亮相 https://www.cnblogs.com/bugczdui/p/10714830.html 4小时
《BUG创造队》第二次团队作业:团队项目选题报告 https://www.cnblogs.com/bugczdui/p/10747017.html 8小时
《BUG创造队》第三次作业:团队项目原型设计与开发 https://www.cnblogs.com/bugczdui/p/10810815.html 一周
《BUG创造队》第四次作业:基于原型的团队项目需求调研与分析 https://www.cnblogs.com/bugczdui/p/10842390.html 两周
《BUG创造队》第五次作业:项目需求分析改进与系统设计 https://www.cnblogs.com/bugczdui/p/10926915.html 一周
《BUG创造队》第六次作业:团队项目系统设计改进与详细设计 https://www.cnblogs.com/bugczdui/p/10953458.html 两周
《BUG创造队》第八次团队作业:Alpha冲刺 https://www.cnblogs.com/bugczdui/p/11028938.html 一周
《BUG创造队》第九次团队作业:Beta冲刺与验收准备 https://www.cnblogs.com/bugczdui/p/11062485.html 一周
  • 哪一次作业让你印象最深刻?为什么?
    -第五次作业:项目需求分析改进与系统设计和第八次团队作业:Alpha冲刺 的作业最让我印象深刻。因为在第四次的时候我们在进行需求调研的时候只是用了网上调查问卷的方式进行的,后来老师说我们应该采用面对面采访的方式,这样可以更好地了解用户的需求,后来我们在周末的时候又走访了周围的几个小区进行了需求调研,之后对项目需求分析进行了改进。第八次作业的时候,由于我们课时本来就少,而且各种放假占用了很多的时间,所以只有一周的时间进行Alpha冲刺,也就是说一周时间四个人要完成软件的全部编程,这对我们来说是困难的,所以那几天经常熬夜,但是正是因为如此我们之间的感情也越来越好了,在团队合作中每个人都贡献了自己的一份力量。

  • 累计花了多少个小时在软件工程实践上?平均每周花多少个小时?
    -累计花了200个小时在软件工程实践上,平均每周10个小时。

  • 你学习和掌握的新语言、新平台;
    -掌握的语言:Javaweb、Java
    -学习和掌握的新平台:博客园、Markdown、GitHub、中国大学MOOC、摹客、雨课堂

  • 填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;

软件开发工具、项目管理工具 软件开发方法 软件建模方法
1.UML图形绘制工具:Visio、Rational Rose、PowerDesign 2.原型开发工具:Mockplus 3.在线作图工具ProcessOn 4.编制项目WBS的工具:leangoo 5.数据库设计工具:MySql 6.编写程序工具:eclipse 黑盒测试、NABCD分析方法、面向对象分析方法(OOA)、面向对象设计(OOD) 结构化建模方法、数据库建模方法、面对对象建模方法
  • 其他方面的收获或提升。
    -接触了很多的以前没有用过的平台,老师通过让我们课前自己看慕课平台上的课然后再课上为我们再讲解,这种反转课堂让我的自学能力有了一定的提升。

        Q:5.你认为目前的课程存在哪些问题,你有什么更好的建议。

答:

  • 一学期的学习可以看出代老师是一个认真负责的老师,但是相对而言课程的作业量有点大,尤其是我们这学期课程本来就比就多,所以有些时候就会觉得没有时间做软件工程。这学期对我们最大的挑战就是Alpha冲刺,建议老师以后可以直接从团队编程开始,然后让每个人写自己一周内对团队的贡献和完成的情况,这样可能编程的时间就会富裕一点。最后感谢老师一学期的悉心教导,让我学到了很多。

posted @ 2019-06-29 21:22  娓娓一叶舟  阅读(167)  评论(1编辑  收藏  举报