贺垠凯:
我们小组所做的是关于华农呷哺呷哺点单小程序的一个项目,尽管这个项目不如其他同学的选课,点歌,游戏,查重等项目一样立意新颖,但我们当初是想对这样一个火锅店的点餐小程序不断优化,使其更人性化,包括顾客能够看到对菜品的评价并且自己做出评价,增加对店内环境及服务态度的吐槽功能,同时看到菜品的等待时间这样一些和其他线上小程序不一样的地方。由于技术原因,这些新的功能我们都未实现,发现其与其他功能联系起来较为困难,也未在需求说明书中说明。
在团队合作中,我第一次担任项目经理,而这这并非易事,在最开始的对项目的决定和对整个项目的把控上我有着许多不足的地方,这是我需要反思的,导致小组成员未能一起对需求复审,而是各写各的,未能统一一种说法和模式,这就直接导致了最后需求规格说明书的诸多漏洞,汇报时别人的项目如此完善之时,我也更加意识到我们小组的不足。但我并不因此灰心,我意识到我明明可以做的更好,让团队发挥更大作用,这也激发了我下次做的更好的意志,而这条向上攀爬的路注定是璀璨的。
对于理论学习,我意识到实践往往是检验真理的唯一标准,例如,我们小组采用的是结构化的方法,老师上课之时讲的很清楚数据流图该如何画,可当我们每个人都参与进来画数据流图时,前后的逻辑往往不能够准确地把握住,一些细节也未能实现,后来不断修改审查,我们也慢慢有了一定的进步。软件工程虽已结束,但软件工程对我来说才刚刚开始。我能够学的东西还有很多,我可以更好的去发挥自己的能力,在生活中软件工程的这种工程化的思想十分重要,我也将不断探索进步。
钟秀雯:
随着小组项目的结束,这学期的软件工程课程也接近尾声了。通过这学期课程的理论学习以及在小组项目中的实践,对于这门课程也有了一些整理和认识,同时也有一些心得体会。
在软件工程的第一节课上,老师就用一句简要的话概括了我们在课程上所要学习的知识:即用工程化的思想构建软件。在课上,我们主要学习了采用结构化方法以及面向对象的方法进行需求分析、概要设计、详细设计编码以及测试方法的理论知识,但课上学习的知识总是觉得比较抽象,比较难理解。但之后通过在小组项目中的实践,自己动手从需求分析开始,一步步地向下推进,在实践中渐渐理解了课程中的理论知识。
在推进小组项目的过程中也遇到了许多的问题。需求分析作为软件开发的基础,是之后概要设计以及详细设计的依据,因此需求分析是十分重要的,但是需求分析并不是一次性就能完成好的,我们在之后的过程中一直在不断地修改以及改进,这是一个比较艰难的过程,但是也是一个非常有趣的过程,小组的成员在需求分析的过程中都积极发表自己的观点和意见,为我们的项目的建设添砖加瓦。而之后的概要设计以及详细设计在需求分析的基础上开展得就比较顺利,但在设计的过程中出现问题后我们依然需要回过头修改需求分析。虽然由于自身编码能力有限,最后软件实现的结果并不是很令人满意,但在整个的过程中我收获了许多,其中最重要的就是学习了工程化的思想,今后我也会将工程化的思想运用到自己的学习工作生活中。
最终感谢老师一学期以来实验课与理论课上向我们同学们所传授的知识,这些知识也是使我们终身受益,能最终锤炼我们同学的品德修为,对自己的自主学习能力有进一步的提升
刘嘉敏:
我们组开发的系统是一个微信点餐小程序,原本想到的很多需求虽然有调研和思考,也进行了详细分析,但是最后的成果是只实现了最基础的功能,没有达到预期的成果。尽管如此,在这个项目制作的过程中,我们还是收获颇多。
所有文档的编写我们组是让每个人都参与进来,一人一部分地来写,然后经理整合。但是最后的几份说明书都出现了一个共同的问题,就是前后不一致,没有统一起来。就是由于我们只是为了交文档而各完成各的任务,最后没有评审环节。实际上每一份文档重要的部分就是评审,这样才能保持整体的一致性。就是这个问题导致我们最后需要把几乎所有文档都重新修改,悔不当初。
这也给了我们一个教训,明白了文档评审环节的重要性,以及一个团队在合作完成任务时不能只有分工而没有最后的整合。
张蕊琪:
本学期系统性地学习了软件工程这一课程之后,我对软件开发又有了进一步的了解。
在最初的刻板印象里,软件似乎只和编程的一行行代码有关系,编写程序是软件制作唯一的途径。但通过学习并亲身体验软件开发的这一过程,我发现原来和用户、顾客等人沟通,从众多信息中找到他们真正需要的功能,再制定计划将其实现是非常重要的。如果需求分析不到位,最终设计出的软件所具有的功能与客户要求有出入,那么即使软件功能再强大、界面再精良,我们也无法称其为一个好的软件项目。在我们小组自己设计的项目中,也曾因为需求分析未达到统一,导致我们在撰写设计报告时所设计的模块不能前后文完全对应,为后续程序的编写、读者的阅读造成很大的困难。也由此我真正地体会到适当运用软件工程化的思想的重要性,多进行交流和沟通,将每一步都确定到点上,我们的工作过程才能更有效率,工作成果才能更稳定。
同时,在这门课程中我还学习到了很多应用操作和工具方法,通过老师授课了解到一些用制图的方式来展现整个软件的制作过程,其后在实际操作中,有选择性地将其应用在自己的软件设计中。当然在实践过程中我们也遇到了很多困难,但最有魅力的地方就在于小组成员集思广益、共同梳理软件逻辑体系最终解决问题的过程,我们在一次次的讨论中不断增进自己的技艺,真正做到了在做中学。
在软件工程这门课程中,我学会了如何去分析和处理问题,懂得了在实践中学习的重要性,形成了一个综合性的、能够解决问题的思想集合。
张亚儒:
对软件工程课程的初印象是以为对现有的软件种类进行学习、了解不同的软件功能并进行深入分析。随着课程的推进发现软件工程这门课是按照设计软件的流程来的。
我认为软件工程可以分为四个阶段,首先是先通过调研了解自己要做什么、用户需要什么,然后对自己的系统有一个功能实现的雏形。
其次,对系统进行进一步分析,需求分析是整个工程的基础,也是最复杂最费时的一步,先通过需求分析明确、细化功能,作出功能结构图;作出顶层数据流图、0层数据流图……;然后进行概念结构设计,把系统的需求及功能捅一刀一个整体当中,将数据流图抽象为概念结构,即做出E-R图;将E-R图转化为关系模型,从中找出需要存放在后台数据库的实体;把实体和对应的关系转化成关系模型;对实体关系中的数据项、数据流、数据结构作出相应的数据字典。
第三,进行编码设计。通过搜集资料对前段后段的功能进行分块编码并成功实现,然后将结构化的各功能连接在一起。所有功能编程结束后进行功能测试。对各功能进行进一步调整和改进。
最后就是后期的维护。收集系统软件运行的数据,记录用户要求的有效信息,从此角度评价软件的性能并进一步修改。在维护时最好将软件备份,以免修改时软件故障造成数据丢失。
整个软件工程的开发仅需一人之力是不可能的,这就需要团队的合作。工程实施离不开明确的工作计划、流程、以及分工,团队也要有一个可以调整全局状态的领导者。