个人作业——软件工程实践总结作业

作业格式

作业正文

一、请回望暑假时的第一次作业,你对于软件工程课程的想象

1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

“我不太喜欢说些不切实际的话,对于当前这个课,我希望能体验一个还算完备的开发过程,写出一个可以跑的东西,我不太奢望它有什么实际的作用,但是我希望它能被我好好的优化过几次,而不是闷头写完就丢在那等着交就完事了。”

  • 这是我写在学期开始时,对于软件工程实践这门课的期待,现在回想起来,当时对于这门课的理解还是有些浅薄。

  • 在软工实践的过程中,我了解到了如何规范地开展一个项目,如何撰写规范的需求说明书、数据库说明书等等。也学习了如何写测试用例、使用robot workframe,loadround等各种测试工具来进行测试。

  • 意外的是通过这次实践我积攒了不少写python的经验,这也是我之前接触很少的东西。

  • 不足的话,就是由于本次开发前后端分别使用的.vue和dotnet是我之前没有接触过的领域,所以我花费了很多时间在学习相关的知识上。

"针对你的选择,你给自己的大三设定的规划安排是什么?"

大三下,就是这学期,把所有的选修修完,尽量大四的时间要腾出来冲刺,另,平时要投入时间(晚上和周末的下午)开始复习高数和英语,不应该有在周末放纵自己的资格。

  • 我当初真的不知道软工大三的课可以麻烦到这样,除了软工实践还有别的课设,再加上我这学期把选修修满——还要再加上大一的补修,时间真的是所剩无几。本着课内学习为重的原则,考研的进度目前看起来只有英语达标了叭,真的是有些头疼。

2)总结这门课程的实践总结和给你带来的提升:

1. 统计一下,你在这门软件工程实践中,完成了多少行的代码;

  • 其实我的代码量并不是很多,我的任务量主要在报告,测试脚本编写和测试用例撰写上。
语言代码行
C# 320
Python 550
Java 660

2. 软工实践的各次作业分别花了多少时间?

作业名称时间(h)
第一次作业-准备篇 3
结对第一次—原型设计(文献摘要热词统计) 11
结对第二次—文献摘要热词统计及进阶需求 20
团队作业第一次—团队展示 2
团队作业第二次—项目选题报告 9
团队第三次-项目原型设计 12
团队作业第四次-项目需求分析 13
团队作业第五次—项目系统设计与数据库设计 9
团队作业第六次—团队Github实战训练 13
项目Alpha冲刺(团队) 22
事后诸葛亮(团队) 2
项目Beta冲刺(团队) 34
Beta阶段团队项目互评 6
个人作业——软件工程实践总结作业 2
总计 158

3. 哪一次作业让你印象最深刻?为什么?

  • 结对第二次—文献摘要热词统计及进阶需求
  • 这次的作业令我印象深刻,这是我第一次进行结对写代码,因为沟通的缘故,我和队友对项目的理解,对接口的需求,已经对进度的估计都有偏差,当时还有一点点的不愉快,主要是我这边的代码写的较为混乱,队友当时看不太懂,而且底层的逻辑有些不严谨,我当时花了一个通宵重构,但是由于时间不够,逻辑的部分并未得到太大改善,测试也不够充分,虽然自己这边的样例过了但是并没有拿到理想的分数。
  • 这是一次属于吃亏的经历,不过也是这次经历让我对于自己编程的习惯有了深刻的反思,我认为它对我的影响是深远的。

4. 累计花了多少个小时在软工实践上?平均每周花多少个小时?

  • 根据问题2给出的表格, 加上到现场答辩以及其他交流的时间,大概有近160个小时了,不算一下,自己也没发现居然有这么多的时间。平均下来,几乎每周都有12个小时左右。

5. 学习和使用的新软件&新工具;

  • 原型设计:墨刀、Photoshop
  • 用例图、类图等:ProcessOn、StarUML
  • 测试:LoadRound,Ride,Python
  • 代码管理:GitHub、GitLab
  • Markdown: Tyopra、HackMD

6. 学习和掌握的新语言、新平台

  • Python, .NET, VUE

7. 学习和掌握的新方法;

  • 单元测试
  • 自动化调试
  • 压力测试

8. 其他方面的提升。

  • 需求分析能力
  • 抗压能力
  • UI设计的能力
  • 逻辑分析能力
  • 自学能力和查资料能力

二、写下属于自己的人月神话

需求一定是要在开始就做好的,并且由此来构造功能模块,这样才可以在功能验收的时候有个勉强能够作为参照的验收标准,写代码的时候就不会像没头苍蝇一样。在结对的时候,我们当时就粗略的分析了需要,并没有规划好功能结构,间接导致后面的成绩不理想,同时,在后面互测的时候也发现其他组有的同学对于自己软件各块的功能不明确,甚至出现了空按钮和“同一功能两个标准”的情况出现。


三、对下一届实践的建议等等。

下一届实践的建议:建议在组队的时候先把队员大三下的目标摸清,因为这实在是一个敏感的时间点,对于个人目标的不一样可能就决定着大家对于这门课程投入的不一样。另外,希望大家各有所长,有所偏重点才能更好的配合,也能在自己擅长的领域统一意见,在开发的时候团队里有个人来统一意见是很重要的一件事,所以大家选组长的时候一定要慎重选择,大局观要强。
对开学初的自己:不要想那么多有的没的了。。。
对大一的自己:准确来说应该是大二,打好基础,当时不应该担心留级的。
对后来人的期许:都比我强,肯定轮不到我来操心。
对于中途换队员:可以换,但是我希望老师能够允许小组互相商讨交换的人员,就好比球队交易,本来好好的两对(前端+后端)硬生生被配成(前前)+(后后)这谁顶得住。。。


四、分析一下自己所处的团队。四个阶段。

萌芽阶段

  • 在组队开始的时候,虽然项目都已经确定,但是大家都在讨论要实现哪些功能,需要用到哪些技术。

磨合阶段

  • 我认为是在需求分析和文档阶段,以及之前的GitHub实训,在这个漫长的过程中,大家在团队里找准了自己的定位,也逐渐明确了自己的目标和方向

规范阶段

  • 在alpha和之后的beta阶段,大家明显都有了自己所负责的领域,对于各项工作的分配和处理也显得更熟练,甚至不用调配就自觉完成。

创造阶段

  • 好像。。。还没到?

五、怎样证明你学会了软件工程?

研发出符合用户需求的软件必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件

  • 由于是针对需求开发,所以实验室的同学就是实际的目标用户,当然目前开发还没有完全结束,所以目前的用户量并没有广泛上升。

通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄

  • 我们通过GitLab进行代码管理和协作,每个人都有分支,只有在分支中的代码ok,才会进行合并。此次的项目进度也一直在计划之内。

并且通过数据展现软件是可以维护和继续发展的。而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料


六*(选做)、阅读软件工程中关于代码质量的的经典论文,做一个阅读笔记?


七、个性发挥

大三刚开始

大三过一半

课程结束

posted @ 2019-06-08 06:15  玫葵  阅读(294)  评论(4编辑  收藏  举报