142
社区成员




这个作业属于哪个课程 | 2022年福大-软件工程、实践-W班社区-CSDN社区云 |
---|---|
这个作业要求在哪里 | 要求在这里 |
这个作业的目标 | 回顾个人在课程中所学所悟,进行个人总结,以资继续前行 |
其他参考文献 | 无 |
学会了使用NABCD
模型分析需求,并了解到了需求分析的主要内容。深刻了解到,一个软件要做的好,起步非常重要。需求分析不仅有助于抓住用户痛点,迎合用户需求,还有利于开发者明确后续开发方向,提高效率。
学会使用Axure
的一些基础功能,进行原型设计。在设计过程中,参考了Axure
中文文档的内容,学习到了如何设计一个涵盖信息完整、界面简洁、吸引人的网站。也意识到了原型设计是一件很需要耐心、想象力的工作。虽然原型设计有原型工具的帮助,但想要做好细节,需要花掉不少的时间和精力。
在学期初,原本打算学习的是前端的有关技术栈。但后续结对、抱团时,由于队伍中并不缺乏前端技术栈的小伙伴,于是决定学习后端相关技术栈以完成实践项目。在结对作业中学习了Servlet
的基础应用,在团队开发中学习了Springboot
的基础应用。在编码的实际过程中,我深切体会到了实践
和持续学习
的重要性。诚然,在理论课上学到很多东西,在考试中能取得一个好看的成绩,可以说明你学的好,但如果理论没有运用到实际,那么学的好也只是一纸空谈。对于工程类专业,一定要多实操,将知识转化出去。同时,很多课本学不到的东西在实际开发中都会出现,这就要求你在不会的时候,透过各种渠道进行学习,及时填补,及时应用。
学习了软件测试的全流程,并在主要的测试阶段学习了重要的测试工具、测试技术、测试知识。例如,在单元测试环节学习了JUnit5
,在集成测试环节学习了等价类划分
、三明治集成
,在压力测试环节学习了JMeter
,并学习了Sonarlint
等自动化测试工具的简单使用。在实践以前,我对于测试的认识,仅仅停留在对代码进行debug
。在进行较为系统的测试学习后,能意识到测试的重要性,测试的不可忽视性。
学习了如何在服务器上部署Web
应用。源于先前未曾接触Linux
,踩了很多坑。在ddl的摧残下,急速学习部署的有关知识,遇到不懂的指令积极请教,最后比较成功地将应用部署好。出于这段[刻骨铭心]的经历,我将部署过程记录了下来,作为技术博客进行分享。
#1:在实现冬奥赛事网站时遇到了两个困难,一个是工期非常短,同时后端基础又几乎为0,另一个是工作量也比较大。为此,先是花了一天从0开始学习Servlet
的基础知识,又花了2天时间加紧完成后端的编写,最终完成了任务。这个经历对我来说是难忘的。首先,知识学习永远都没有尽头,在闲暇之余一定要花点时间多学知识与技术,不然在需要的时候就会有一种书到用时方恨少
的感觉,同时还会加大工作量,整体体验感差。另外,一定要学会合理使用工具获取知识,学会如何提问题,学会得到自己想要的答案。最后,还需要练就一定的抗压能力,这是作为一名软件工程师所必须要有的素质。
#2:在beta
冲刺临近末尾的时候,我们团队的数据库被盗,库里的内容全部被清除。好在整体数据库量不大,且设计说明书中有字段备份,重建工作很快完成。这个小插曲,或许将成为我对实践课程最深刻的记忆点。透过这个小插曲,我能感受到文档的重要性,开发过程中应认真对待文档。同时,数据库的保密工作务必要做好,除了设计复杂度较高的密码外,还应注意在开发文件中不要主动提供设计密码有关的配置文件。最后,对于比较大型的数据库,一定要做好备份,以防不测。总之,这个经历很深刻,也能为我们带来很多实用的教训。
目标名 | 内容 |
---|---|
目标1 | 理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念 |
目标2 | 掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型 |
目标3 | 掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案 |
目标4 | 能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案 |
目标5 | 遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力 |
目标6 | 具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作 |
目标7 | 能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力 |
目标名 | 评分 | 解释 |
---|---|---|
目标1 | 85 | 通过理论课对于软件工程师职业道德的讲述,能更好地理解软件工程师的社会职责,理解软件工程师的社会使命,并要求自己能遵循职业道德,不使用自己的专业知识做危害社会的事情 |
目标2 | 80 | 学习了NABCD模型进行分析需求,能比较准确地提炼用户需求 |
目标3 | 75 | 参与了团队分析数据库、体系结构的过程,跟进设计过程并提出建设性意见,但整体质量还有待提高 |
目标4 | 80 | 能随团队开发进度,及时跟进产品质量监测,及时改善不足、改进技术,但缺少一定创新能力 |
目标5 | 95 | 在团队开发中从事大量的文档撰写工作,对于每个文档需要说明内容、如何进行准确表述有了非常清楚的了解,文档的可读性较高,为产品开发提供了较大帮助 |
目标6 | 90 | 及时协调团队的工作内容,明确工作时限,同时作为一名开发者,能严格遵守开发时限,及时完成任务 |
目标7 | 80 | 学会了使用PSP表格进行事前估计和事后分析,同时学会了git的基本操作指令,但对于团队项目管理工具的使用还有所欠缺 |
原提问链接:软件工程实践寒假作业-CSDN社区
**A:**我依然维持我在最开始的回答,以“专”为重,向“广”前进。以本学期的实践课程为例,今后遇到的许多项目,工期可能都会很短。在如此短的时间内要做好需求,如果你只是什么都会一点但不够深入,那么就会给项目开发带来麻烦:你需要停下来补一些你会一点点的东西,这样容易造成无法按工期交付。如果团队里的每个人都是这样,那么只会让项目越拖越久,从而对公司的信誉造成影响。因此,技术还是“专”一些比较好。
**A:**在团队开发中,即使每个人都遵守代码规范,但由于每个人的编程思维有所差异,要看懂别人的代码依旧是一件有难度的事情。这时,如果代码中突然冒出了goto
语句,代码会更不好理解。另一方面,在课程的实践中,虽然我们的项目规模并不大,但每次的码量都相当可观,大项目的代码量可想而知。这时如果再冒出goto
,头脑不够清醒的开发人员就有可能让他跳转错地方,从而为程序带来致命缺陷
。因此,任何时候都强烈不建议使用goto
。
**A:**对这个问题,我有了一些新的看法。在开发冬奥网站时,其实核心需求比较简单,基本上大家都能完成核心功能,而且本身功能完成的好坏差异并不大,这时外围功能就派上了用场。透过项目演示、老师助教的评分等就可以知道,当核心功能大家做的差不多时,决定软件能否杀出重围,受到青睐的重要因素就是这些外围功能。当然,碰上核心功能完成情况差不多的情况是很少的,只不过我想说的是,不要忽视了外围功能。
**A:**为了方便后续迭代,也为了让评审团队能准确了解软件的真实情况,如实告知软件缺陷是必要的。在我们的团队实践中,对于缺陷,我们有如实记录;在答辩环节,也进行了相应说明。
**A:**维持最开始的答案,确实应该制定标准。否则,一个东西有很多种说法,对于不熟悉每一个说法的人来说,阅读有关文档时就会造成困扰,影响效率。
在课程的学习中,最难忘的技术当属部署web应用到服务器中。
链接:在阿里云上部署Web应用(Vue+Springboot)-CSDN社区
概述:网站部署,即把写好的web应用存放在一台远程主机上,其他用户只要知道主机地址,就可以访问到你所写的应用(网站)。由于服务器大多使用linux操作系统,对该系统指令的不熟悉,是部署时的难点。