103
社区成员
这个作业属于哪个课程 | 软件工程实践2022年春-F班 |
---|---|
这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
这个作业的目标 | 对软件工程实践课程进行总结 |
其他参考文献 | 《构建之法》 |
Q1: 软件发展到一定阶段用户体验反而不太重要了?
曾经的回答:不一定,需要综合评估某项功能用户体验和迭代升级的必要性和性价比,2021年,微信团队将文件传送服务的上限由100MB提升到200MB了。
现在的想法:我的想法是非常重要,软件发布后,需要运营和运维等人员继续工作,维持良好的用户体验。具有庞大用户群和不可代替性的软件毕竟只有少数,且它们大多数亦在不断求新求变。我在团队β冲刺结束后负责用户调查报告的撰写,感受到用户思维的不同。关注用户体验,隔一段时间进行软件用户调查会有新发现,
Q2:什么样的人/团队适合结对编程呢?
曾经的回答:团队中二人均有一定的编程基础,且有各自擅长的地方,优势互补,具备沟通能力。
现在的想法:经历过结对编程,我的想法和原来的一样。其中最关键的是取长补短优势互补,才能达到1+1>2的效果
Q3:针对处理数据量较大的模块,我们该怎样手动构造测试样例呢?
曾经的回答:将模块的数据量再细分,尽量考虑每个数据量所包含的情况,即使手动构造不可能穷尽,也尽可能列举,在这个过程中测试样例和模块代码可以互相验证。
现在的想法:这学期在软工课和软工测试课上学到了测试的相关知识,这种情况我认为可以采用边界值划分法和等价类划分法,进一步缩小测试粒度。
Q4:在校学生如何为成为一个PM做准备?
曾经的回答:阅读PM入门书籍;掌握PM应具备的基本技能如写需求文档、原型设计等;去公司实习,实际了解运行流程;利用好软工实践的机会,在项目中进行实操。
现在的想法:实操非常重要,希望之后能有更多实践的尝试和锻炼机会。
Q5:学生与职业程序员的区别?
曾经的回答:学生可以根据自己的喜好,自己设计界面和功能。而职业程序员则要依据产品经理和UI等的要求来写代码。除了编程经验和项目经历的区别外,职业程序员对理解能力、沟通能力、团队合作能力和抗压能力等要求更高。
现在的想法:学生和打工人都挺好,持续不断学习是王道√
新的问题:框架提供的固定组件会显示功能的发挥吗?
需求阶段
和审题读题一样,需求阶段要充分明晰需求后才能动手“破”题。自己构思需求的话,做一个功能架构图出来。客户的需求,对接沟通好,可以画些小草图,更容易在理解上达成共识。
设计阶段
UI设计时,考虑色彩搭配和合适的图标会让页面更具美感。Axure很好玩,但关键是思考人机交互和功能分布。数据库设计方面,接口相关字段要一一确认,可以尽量避免后面对接口时再修改的问题。
实现阶段
在团队项目中学习了uni-app框架和colorUI,可以说α冲刺结束的时候我都还有点懵,β冲刺渐渐上手了,虽然到现在只掌握了很少一部分,但对于学新东西不会有太多不必要的恐惧了。耐心阅读文档,有问题慢慢找方法解决,最后的结果不会太差。
测试阶段
注意不同浏览器、不同手机的页面适配性和兼容性,这个问题在写代码一开始就要考虑到。
发布阶段
在结对编程中学会挂服务器了,之前搞了好久,在同学的帮助下最终搞定了,快乐地把链接分享给朋友们。
个人项目
在软件工程实践开始前,从学长学姐的口中,我莫名对这门课产生一些些恐惧(很怂),但压力化成动力,这导致我很早就开始了个人项目的编写,在上面花了算是比较多的时间。
到后续的时间就比较充裕了,最后在测试正确性和运行速度上也得到了比较不错的结果。这件事给我的最大感受就是事情要尽可能早地开始,不要有“完美主义”式的拖延症。对未知的恐惧很正常,但只要开始着手做的时候就会忘记了,只会沉浸在眼前的事情上。
结对编程
没有及时看群,导致找了一圈才找到还没组队的队友。但结对过程还是挺开心的,由于对工作量和时间的错误预估,加之技术不熟练,最后一天和队友找了一间活动室写到凌晨,也算是一种体验。做出和原型设计差不多的成品的时候内心很有成就感。
团队项目
就是很感谢队友,人真的很好,帮助了我很多,每个人都有自己擅长的地方,很让我佩服。这也算是我第一次参与到一个前后端分离的团队编程项目,在过程中明白团队沟通的重要性,和同为小程序组的队友请教,和后端询问接口问题,和产品确认页面细节,十分感谢队友~以及,好好学技术,增长经验,希望自己在后来的团队合作中也可以在自己比较熟悉的地方给队友提供帮助。
总的来说,软件工程实践让我发现自己在技术方面的兴趣所在和很大的不足,往者不可谏,来者犹可追。
目标1: 理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。
评分:90
理由:通过项目的实践,我对软件工程师的相关要求有了更多的理解。经历用户调查,我明白软件产品应更好地为社会服务、便捷人民的生活。
目标2: 掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。
评分:90
理由:能较为明确用户的需求,使用Xmind和Axure等相关软件。
目标3: 掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。
评分:80
理由:团队项目中,我对系统设计这方面的了解还有所欠缺。
目标4: 能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。
评分:85
理由:团队项目中,后续对原型设计做了一些符合接口的修改。
目标5: 遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。
评分:90
理由:α冲刺的代码规范由我负责寻找参照文档,在后续也采用了与之符合的表达。需求规格说明书、系统设计说明书我也参与了一定内容的撰写,并学习了其他部分内容的撰写。
目标6: 具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。
评分:90
理由:与队友主动交流,沟通充分。
目标7: 能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。
评分:80
理由:合理使用GIT托管代码,但对于项目管理的知识了解不多。
个人技术博客
概述:uni-app提供的combox组合框在实际应用中与需求出现偏差,效果不佳,在微信开发者工具调试和真机调试中出现BUG,对组件源代码进行修改以达到更好的适配。