软件工程实践总结——青衿之志,履践致远

221900239_张书旖 学生 2022-06-26 20:49:46
这个作业属于哪个课程2022年福大-软件工程、实践-W班
这个作业要求在哪里软件工程实践总结&个人技术博客
这个作业的目标完成软件工程实践总结博客和个人技术博客
其他参考文献

目录

  • 前言
  • 一、问题回顾
  • 1.1 以前提问题的博客链接
  • 1.2 对曾经提出的问题的解答与分析
  • 二、做中学
  • 2.1 需求阶段
  • 2.2 设计阶段
  • 2.3 实现阶段
  • 2.4 测试阶段
  • 2.5 发布阶段
  • 三、理解和心得
  • 3.1 个人项目
  • 3.2 结对编程
  • 3.3 团队项目
  • 四、自我评分
  • 4.1 课程目标总览
  • 4.2 课程目标掌握程度自我评分
  • 五、个人技术总结
  • 5.1 博客链接
  • 5.2 技术概述


前言

青衿之志,履践致远

年少时的志向,要靠自己的努力实践才能实现,只有脚踏实地,才能走得更远~

一、问题回顾

1.1 以前提问题的博客链接

1.2 对曾经提出的问题的解答与分析

Q1:对于一名工程师而言,究竟应该是更”专“一点好,还是更”广“一点好呢?

A1: 经历了一学期的课程,现在看来,我还是认为术业有专攻对于团队工作来说是更有利的。因为今后遇到的很多项目,都有工作周期的限制,更专业的工程师不必花费大量的实践去深入了解项目中所需要的技术,可以快速地上手开发,这对工期较短的项目来说是非常重要的。当然我始终志向于成为一名既“专”又“广”的优秀的软件工程师。在实现这一目标之前,我还是会选择先将我所掌握的技术理解透彻,先做到“专”,再考虑更“广”地学习。

Q2:良好的结对编程是团队合作完美进行的必要条件吗?

A2: 我还是认为问题的答案是肯定的。我和我的队友加一同学既是结对编程的合作伙伴,也是团队开发的队友。良好的结对编程确实能够为团队合作带去好的趋势,就我看来,加一同学在结对编程和团队合作过程中都发挥了非常重要的作用,她将结对编程中负责任的工作态度也应用在了团队开发之中,完成自己分内的工作后,协助组长共同进行团队的管理。我认为这就是良好的结对编程为团队合作带去的正向影响。良好的结对编程经历让我对团队合作有了更多的信心,自己也学会更好地从整个团队的利益出发去考虑问题,也提升了我自身的编程能力和沟通能力,这对我来说是非常宝贵的经历。

Q3:软件的缺陷是否应该在规格书中说明?

A3: 我对这个问题的答案依然是肯定的,软件的缺陷应该在规格书中进行合理的说明。用户在选择软件时,有对软件相关信息的知情权。而且无论团队是否在规格书中说明,缺陷是始终存在的,那么用户在使用时就有可能会发现软件的缺陷。如果因为害怕暴露缺点而对其隐瞒,很有可能会带来相反的效果。因为软件中的缺陷不仅仅关系到使用软件的客户,还关系到整个软件的口碑和声誉。软件有缺陷可以后续进行改进,但积累的口碑一旦丧失了就很难挽回了。要有正视缺点的勇气,才会有享受优点的福气

Q4:个人在团队中应该只是一个流水线上的机器吗?

A4: 我保留我在课程开始前的答案。我始终认为团队项目开发是一项创造性的工作,是需要热情驱动和灵感碰撞的历程。经历了本次的团队项目开发,我更加认为灵感和激情在团队中是格外重要的。本次团队项目开发过程中,我们移动端小组按照项目需求规格说明书和系统设计说明书进行开发,严格遵守了我们提前制定的代码规范。但同时在项目开发过程中也会灵活地根据用户需求提出自己创造性的想法,每位成员都为了更好的项目成果而充满激情地工作,开发氛围轻松而愉快。这说明创造性的工作与理性而规范的工作并不冲突。还是那句话,人不是机器,对我而言,如果仅仅是机械性地完成每天的工作,那本次的团队合作项目的效果可能会大大下降。

Q5:创新不需要考虑实际问题吗?

A5: 我保留我之前的答案,创新确实需要考虑实际问题。在我们团队项目设计过程中,队员们都大开脑洞,提出了很多创新且有趣的想法。但考虑到实际问题,在讨论过程中我们也否定了很多看起来很创新的想法。我认为对于项目开发而言,不考虑实际问题,盲目地提出新方案只是纸上谈兵,会消耗掉宝贵的开发时间,这并不是真正的创新。


二、做中学

2.1 需求阶段

  • 需求阶段收获的最大的能力就是学会使用NABCD模型分析需求,分析用户的痛点,站在用户的角度上思考问题。我也意识到,之前的对需求分析的想法不够成熟。我认为软件工程和软件工程实践课程带给我的非常重要的地方,不仅仅是传授新的知识,在某种程度上也校正了我以前很多理解不透彻或是不正确的地方,对我未来的项目开发过程有很大帮助。

2.2 设计阶段

  • 设计阶段包括了原型设计、概要设计、系统设计等环节。设计阶段我主要负责原型的设计和接口的设计。在原型设计过程中我学会了使用Axure原型设计工具设计原型,原型设计能够更好地帮助理解用户的需求,也对后续的开发发挥了关键的作用。
  • 通过本次的接口设计过程,我深刻意识到接口设计的重要性。一定要根据项目需求进行正确而合理的接口设计,这能够为项目实现阶段节省大量的开发时间,避免频繁改动而增添过多的工作量。

2.3 实现阶段

  • 项目实现阶段收获的最大的能力就是学会了使用uni-app框架进行移动端App开发。之前进行安卓应用课程设计开发时因为与Android Studio工具磨合的不够好,在开发过程中遇到了很多困难,以至于对安卓乃至于移动应用开发都有一些抵触。(我和Android Studio真的可能八字不合T_T 每次开发都会因为各种各样的版本问题花费很多时间)
    但是!!感谢我神仙的队友们及时发现了uni-app框架这个框架,并在关键时刻做出了更换了移动端的开发技术的决定。通过校园信息通项目的开发,我学会了通过uni-app框架(基于Vue.js框架)来开发前端应用,已经能够根据项目的需求熟练地进行项目开发,并设计出还算美观的页面(我自认为)。至此,我对移动应用开发的兴趣有了质的飞跃。通过这次的项目开发经历,我意识到,选择合适的技术有多么重要,正如助教所说的,技术选型是十分重要的,开发前一定要做足充分的调研。
  • 同时,通过个人项目、结对编程以及团队项目的实现,我的团队合作、时间管理和沟通协调能力也得到了极大的提升。我想想这对我未来的学习以及工作生活都会带去很大的帮助。

2.4 测试阶段

  • 通过软工时间课程的学习,我学习到了软件测试的整个过程,从最开始个人项目中的单元测试,再到压力测试、集成测试、系统测试等等,深刻地意识到了测试的重要性
  • 因为时间和技术原因,我们移动端小组只对项目进行了真机测试。我了解到可以还有很多用于移动端测试的工具,希望以后有机会可以学习更加系统而规范的测试方法何工具,更好地对项目进行完善。

2.5 发布阶段

  • 本次团队项目我学会了打包发布Android端的项目apk,看到自己参与开发的软件可以在用户的手机上下载并使用,不得不说还是很有成就感的。但从用户体验反馈中我也意识到我们的项目还存在很多的不足,还需要继续提升努力。
  • 比较遗憾的是因为上线审核机制过于复杂,我们移动端小组没有发布iOS端的安装包。这也让我明白,不能等到要发布了才研究项目的上线机制,一定要提前了解审核机制,这样出现意外情况时也能预留足够的时间解决,也便于用户体验的调查。还是那句话,不要被deadline追着跑!!

三、理解和心得

3.1 个人项目

  • 在个人项目中第一次使用PSP表格进行个人开发流程时间的评估,从预计时间与实际之间的差距中意识到了自己在开发过程中存在的问题
  • 意识到了性能优化在项目开发过程中的重要性,虽然不同的程序可以有同样的实现结果,但是性能好的程序能给用户更好的体验,这是未来的软件开发生涯中需要时刻注意的。
  • 在个人项目阶段学会了在提交产品之前,设计测试用例,并编写单元测试,对自己的项目进行测试,体会到了单元测试的好处。
  • 个人项目我认为更多的是一个自省的过程,通过个人项目,我意识到自己对项目开发相关的知识了解的太少了,还需要不断学习

3.2 结对编程

  • 从结对编程开始,就开始需要和结对伙伴一起合作完成一个项目,此时已经开始有了合作的概念。很感谢我可靠的队友,我们之间的合作氛围一直都是轻松愉快的。从这次合作中我深刻地感受到了1+1>2的效果,这为我们后续的团队合作打下了良好的基础。
  • 从结对编程二中我深刻体会到合理安排时间的重要性,只有时间充足才能以更加从容的心态投入项目的开发过程中,要成为时间的掌控者,而不是被deadline追着跑T_T
  • 很感谢有这次开发网站的机会,本次前端开发的经历更加坚定了我想要成为一名前端开发工程师的梦想,也让我意识到了项目开发经验的匮乏和学习方式上存在的不足。”路漫漫其修远兮“,我还需要好好努力!

3.3 团队项目

  • 团队项目开发是我第一次这么正式地体验一个项目从需求分析到发布的全过程,感谢老师和助教们的用心指导,这对我来说是一次意义重大的提升的机会。
  • 合适的技术选择对项目来说至关重要,要选择合适的技术进行项目开发。在项目开发之前已经要做好充分的调研,避免因为技术调整原因耗费过多的开发时间。
  • 在进行项目架构设计是一定要综合考量项目开发时间和团队的能力,不能盲目地添加功能。过于追求繁杂的功能可能就无法将每个功能做到尽善尽美,我认为这是万万不可的,这也是我们本次开发的一个教训。

四、自我评分

4.1 课程目标总览

目标编号具体内容
目标1
理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。
目标2
掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。
目标3
掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。
目标4
能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。
目标5
遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。
目标6
具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。
目标7
能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。

4.2 课程目标掌握程度自我评分

目标编号掌握程度解释
目标1
95
理解并自觉遵守软件工程师的职业道德规范和实践要求,始终保持积极向上的软件开发理念,不使用自己的专业知识做危害社会的事情
目标2
85
能够使用NABCD模型构建需求分析模型,能够熟练地使用需求表达工具来表达用户的需求
目标3
82
参与了软件体系结构的设计,但生成的软件系统设计方案还存在可以改进之处。
目标4
80
具备设计模型的评判能力,但在设计时缺乏一定的创新设计意识
目标5
93
熟悉并能够遵循软件开发各阶段的文档标准,在团队项目开发中参与了需求规格说明书、系统设计说明书、系统测试报告等文档的撰写,能够较为准确规范地表达文档需要说明的内容
目标6
91
具有良好的团队合作意识,可以与其他团队成员进行友好又有效的沟通和交流。在团队开发中负责站立式会议的开展以及部分统筹工作,具备较好的组织和协调团队成员工作的能力
目标7
78
能够组织团队使用Teambition、在线文档等工具对团队项目进行管理。但在软件规模的估算还有些欠缺。本次团队项目设计时对工作量的估算不够科学精确,导致Beta冲刺后期时间比较紧张,项目实现效果没有那么满意

五、个人技术总结

5.1 博客链接

ECharts绘制世界地图并在tooltips显示多条数据

5.2 技术概述

ECharts中鼠标移动时出现的组件toolstrip默认只能显示name和value 两条数据,有时不能满足用户的需求。所以本次个人技术总结主要介绍如何在Vue中使用ECharts框架绘制世界地图,从后端接口中获取数据实现动态的数据绑定,以及在toolstrip中显示多条数据信息


...全文
367 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jingbin-Wang 教师 2022-07-12
  • 打赏
  • 举报
回复

通过这次的项目开发经历,我意识到,选择合适的技术有多么重要,正如助教所说的,技术选型是十分重要的,开发前一定要做足充分的调研。

是的,技术选型确定后,才是各个模块开始开发。
行而不辍,未来可期。加油!

139

社区成员

发帖
与我相关
我的任务
社区描述
2022年福大-软件工程;软件工程实践-W班
软件工程 高校
社区管理员
  • FZU_SE_teacherW
  • 丝雨_xrc
  • Lyu-
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧