软件工程实践总结

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

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

  • 开篇博客对课程目标和期待
  1. 提高代码水平,增加代码量
  2. 获得项目开发经验,学到新技能
  • 达到的期待和目标
  1. 在项目开发过程中打了挺多代码,自己的代码水平确实获得了挺大的提升
  2. 在与团队的协作中,了解了一个项目完整的开发流程是怎么样的,积累了一定的项目开发经验;在负责自己的任务部分中,学习了很多新的技能,接触了很多好用的工具个框架,获得了web前端界面开发的经验
  • 存在的不足

    由于第一次做项目,缺乏经验,没有合理的安排好自己的时间。

2)总结这门课程的实践总结和给你带来的提升,包括以下内容:

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

根据学习进度表:

第N周 | 新增代码(行)| 累计代码(行) | 主要工作
---|---|---|---|---|---|---
1 | 500 | 500 | 单元测试的编写
2 | 0 | 500 | Axure原型设计工具的使用
3 | 500 | 1000 | c++算法设计编写能力,Debug调试能力
4 | 200 | 1200 | 学习网页设计(html)
5 | 200 | 1400 | 学习网页设计(css)
6 | 200 | 1600 | 学习网页设计(JavaScript)
7 | 300 | 1900 | web端界面开发
8 | 200 | 2100 | ECharts网页生成图表学习
9 | 200 | 2300 | bootstrap框架学习使用
10 | 200 | 2500 | 学习使用larave框架
11 | 100 | 2600 | 安装laravel框架配置环境
12| 100 | 2700 | web端界面开发

差不多写了2700行左右的代码量

2、软工实践的各次作业分别花了多少时间?(做一个列表)

作业名 花费时间(分钟)
第一次作业 120
个人项目 960
结对项目1 580
团队风采展示 120
结对作业2 1620
团队选题报告 720
团队课堂UML设计 405
团队需求分析报告 915
Alpha冲刺 2385
团队现场编程 180
团队项目评测 215
Beta冲刺 1405
最终展示 120

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

第一次的课程作业让我印象挺深刻的,那是自己第一次写博客,根据作业的问题,看了大佬们的博客,好好反思了自己的专业水平,对这门课的畅想,对新学期的期望,还有对自己以后的专业安排,立了很多的flag,反思了很多,也收获了很多。

4、累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答

问:你打算平均每周拿出多少个小时用在这门课上? 答:花的时间自然是需要多少花多少,认真做好自己的任务,做不好就多花点时间慢慢做,没时间就牺牲掉自己的娱乐休息时间

这学期下来,累计花了120个小时在这门课上,平均每周花8个小时左右

5、学习和使用的新软件;

  1. 原型开发工具:Axure
  2. 代码管理:Github
  3. 在线文档编辑:石墨文档
  4. 前端开发编辑器:Atom
  5. 安卓开发:Android Studio
  6. 博客md格式撰写:有道云笔记

6、学习和使用的新工具;

  1. 原型开发工具:Axure
  2. 代码管理:Github
  3. 在线文档编辑:石墨文档
  4. 前端开发编辑器:Atom
  5. 安卓开发:Android Studio
  6. UML设计:ProcessOn
  7. 前端bootstrap框架
  8. 前端Echarts框架

7、学习和掌握的新语言、新平台;

  1. html,css,javascript
  2. web开发平台
  3. 安卓开发平台
  4. web前端框架

8、学习和掌握的新方法;

  1. GitHub的使用
  2. 原型设计
  3. uml设计画图
  4. web前端开发

9、其他方面的提升。

  1. 代码能力得到提升
  2. 计算机专业水平得到提升
  3. 项目团队协作、交流能力得到提升
  4. 自学能力得到提升

二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析

  • 经验总结:

    经过这次实践,我觉得学习能力非常重要,不管是学习上还是今后的工作,我们遇到的问题很多会是我们用已有的知识解决不了的东西,所以这个时候只能在有限时间内马上学习,增加自己的知识储备,提升自己的能力从而来应付问题。

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,对于同期的TA们,对于后来的学弟学妹:

1)你有什么想建议、告知和期许想要告诉他们呢?

  • 有时间多学习一些语言和专业技能

    在大一大二比较有时间的时候,多学习一些语言和平时课上不会教的技能,比如java、html、php等今后可能会用的到语言,不要到时候临时磨枪上场赶软工,会发现时间很不够用,有时不得不牺牲其它课程的时间在软工上面。

  • 找个好的团队很重要

    你会因为自己的队友都很优秀很努力,自己就不敢懈怠

  • 认真做好软工实践,你会学到很多

2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?

  • 我觉得不需要,大家都想认真完成任务的话,中途换队友很伤害一个团队的团结度和凝聚力。

3)假设依旧是一个90+人数的大班,身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?

  • 一个组10个以内吧,比较好分工,能保证每个人都有任务做。

4)个人/结对/团队作业应该控制在怎样的规模?

  • 我觉得课外的作业规模都还行,加加班还是能完成的,现场编程那次的作业量有点大,时间只限制在课上几个小时的话有点困难

5)这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?

  • 感谢我的队友们,感谢每个帮助过我的人!

四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)

  • 萌芽阶段:这一阶段大概对应着我们从组队开始到第三次alpha冲刺时的情况,在这个阶段队员们都在学习相关的技术,对项目实现可能碰到的问题还没有一个非常清晰的认识。

  • 磨合阶段:这一阶段对应我们团队现场编程及之后的两次alpha编程,团队现场编程将我们团队当时存在的问题暴露了出来,这也是组内成员提出疑问最多的一个阶段,不过很庆幸团队成员直接能够相互理解,对项目的疑问也能通过当面交流指定解决方法,从而度过了团队的磨合阶段。

  • 规范阶段:从第六次alpha冲刺开始,我认为我们团队进入了规范阶段,我们在这时已经完成了项目的接口文档撰写、代码规范的约定、版本控制规则的制订,与此同时大家对项目所期望达成的目标有了清楚的认识,对自己负责的部分应该达成怎样的效果也了然于心。

  • 创造阶段:我们的团队在beta冲刺阶段一定程度上触及了创造阶段,在beta阶段我们相比alpha阶段添加了4个全新的功能点,每个队员在明确了自己的任务后项目便开始了“并行开发”.

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

1)研发出符合用户需求的软件

  • 在项目开始时我们就发布了一份有100人回答的问卷,明确了用户的需求,并以此为依据开发我们的软件

  • 截至截图时,根据后台的数据库记录一共有141人/次 使用了我们的软件

2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件

  • 这次实践中我们团队的代码完全托管在github organization上,每个人在上传代码前都需要遵循约定撰写commit信息

  • 团队的merge network图:

  • 前端:

  • 后端:

  • 前端commit情况:

  • commit信息(部分)

  • 后端commit情况:

3)并且通过数据展现软件是可以维护和继续发展的。

  • 团队的接口文档、技术文档等都是放在石墨文档上组内共享的:

  • 组内有详细的技术文档

  • 组内的代码规范

  • 组内的代码管理

4)对着这个检查表http://xinz.cnblogs.com/p/3852177.html检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。

  • 这些问题大体都回答不上来,关于技术问题,由于自己没有哪门技术是非常深入系统学习过的,所有会的语言还都是简单入门,要做东西时还得边查阅资料边做,以后去面试前应该还要再系统学习下所要从事的方向。

七、个性发挥,包括图文、照片和创意等

image

posted @ 2019-01-10 18:24  linhw  阅读(463)  评论(2编辑  收藏  举报
返回顶部