现代软件工程最后一周总结要求

回顾你的课程计划, 你完成的程度如何?请列出具体数据和实际例子。

在课程计划中我认为最重要的5个技能是:程序理解、代码质量、python、处理大数据、个人源码管理,计划每周拿出10小时完成软件工程课,完成情况如下:

  • 程序理解,在完成团队项目的时候阅读了Tensor2tensor的代码,Tensor2tensor的代码量很大,但很多功能我们用不上,实际阅读量大约几千行。
  • 代码质量,在和队友结对编程的时候,从队友身上学了很多好的编码习惯,代码可读性在结对编程的实践中也得到了提高。
  • python,整个课程中大约写了2000行不到的python代码。
  • 处理大数据,完成团队项目时对原始对联数据做了简单处理,由于没有深入,因此在这方面提升不是很大。
  • 个人源码管理,积累了使用github的经历,软件工程课的所有项目均使用了github。
  • 时间投入,黄金点游戏(15h)+ 词频统计(15h)+ 大作业(5*20=100h)+ 阅读作业 (10h)+ 案例分析(10h)= 140h,第一周博客10.17日提交,最后一周总结1.21日提交,时间跨度3个月,平均下来差不多一周10小时。

你在课程开始快速浏览了《构建之法》,提了 5 个问题, 请回顾那些问题, 自己回答它们。如果不能回答,为何软件工程课不能让你回答这些问题?

原文:
Ch04, P79, 每人在各自独立设计、实现软件的过程中不免要犯这样那样的错误。在结对编程中,因为有随时的复审和交流,程序各方面质量取决于一对程序员中各方面水平较高的那位。这样程序的错误就会少得多,程序的初始质量会高很多。
问题:
我们在第一次结对编程的debug阶段中采用了这个方法,但是发现两个人的交流有时候会掩盖问题,来自代码创作者的解释会隐藏那些不易察觉的小bug,很多隐藏的比较深的bug还是在一个人独立阅读代码的时候发现的,是因为结对编程不适用于debug阶段吗?

我觉得结对编程主要还是为了纠正逻辑的错误和偶尔的明显笔误,像一些数组越界等小错误还是要编程者自己改正。

原文:
Ch6, P112, 另一个改进是,要在每一个任务中记载我们完成这个任务还需要多少时间。
Ch6, P115, 我们感觉好像项目完成了80%,殊不知后面的20%往往要花费80%的时间。
问题:
敏捷流程的核心是基于能够估计出任务的剩余时间的。但文中又说很多时候并估计不准时间。我感觉这里似乎有一些矛盾。如果预计完成时间估的不准,那么敏捷流程跟尽全力向前推进似乎没有什么区别?还是说一般工程项目都能估计的大差不差?

在真实项目中不是线性的,要一样一样完成,而是一个流程图,一个工作开始可能依赖于多个基础工作的完成,因此要估计时间来分配资源,有点拓扑排序的感觉。

原文:
Ch8, P156, 用户在各种菜单中幽幽暗暗的反反复复的寻找某个功能,我们在单向玻璃后面替他着急……我们的界面距离“平平淡淡从从容容才是真”差太远了。
问题:
想问一个和书关系不是那么大的问题。就是现在产品的菜单和图标设计(比如word)依然很复杂,用户很难知道自己要干什么事,就能根据菜单名称大致找到地方。UI换了一版又一版,菜单设计却没有大的更新,是因为尾大不掉么?就是说为了和老版本兼容从而不能大面积修改菜单?

这个由于在软件工程课中没有涉及到,因此要等以后来回答了。

原文:
Ch16, P353, 但是绝大多数用户都不会告诉公司颠覆性的需求,就像马车夫那样,他们会希望马更快一些就好了。
问题:
我认为这个例子并不能说明问题,马车的出现和汽车的出现相差很远,起码远超一个公司产品的周期。而且马车直接变成汽车这个请求未免太颠覆性了。就像手机屏幕从按键变成触控笔再变成手指直接触控一样,是因为用户不断反映体验不好才促进了产品的升级的。用户是很难知道未来的发展趋势的,成功的公司重视用户,应该推理出公司自身会去想颠覆性的方法满足用户的需求。而不是把没做出颠覆性进展归因于用户没有提出来,这可能对用户提了过高的要求。

我保持开学的观点,认为成熟的公司重视用户和创新之间在这个例子中不为两难。

最后一个问题是建议,略去。

看看还有什么新的问题产生,请列出来,建议列出 2-3 个新问题。 可以让老师和助教来回答。

在实际编程中,我能感觉到自己对面向对象编程并没有什么概念,很多类的使用十分刻意,一些有联系的类我也很难用继承把他们组合在一起,结果并没有从面向对象编程中得到显著收益,比如让代码变得可读性更好等,想问一下是否有具体介绍程序架构设计的书籍推荐?

你看了一些软件工程的文献, 你的团队也做了一两次 “事后诸葛亮”分析, 可以再去看一遍,现在有什么新的感想?

对于一个面向用户的产品,最重要的是用户体验,首先是整个流程要能跑通(MVP),其次是流程的速度要快,再次是UI界面要美观,而后端的模型相对来说并没有那么重要,这是我大作业最大的感触。

对比一些技能评价表,你有什么提高? 还有什么收获是不能用数字衡量的?

这部分内容大致和课程计划一样,程序理解、代码质量、python、个人源码管理的技能提高了2分,处理大数据的技能提高了1分,但还需要继续增强。

设想一年之后, 你到了你职业发展的下一个阶段(高年级, 读研,工作),回头看这门课, 你对于这门课的教学方法, 老师和助教的工作,和其他课程的衔接,有什么意见和建议?

我觉得这门课总体来说设计的很好了,在有限的课程时间里让学生完成一个完整的项目,两个冲刺阶段的设计提高了时间利用效率。
一个小建议是文献阅读作业可以早一点发布(Alpha阶段前),晚一点结束(Beta阶段后),这样阅读的时间更充分,而且学生也更加有感悟。

转载于:https://www.cnblogs.com/ustcscallion/p/10297805.html

现代软件工程 课程总结相关推荐

  1. 2016-2017-2软件工程课程总结

    2016-2017-2软件工程课程总结 本学期的软件工程课程终于在大家的共同努力下圆满落幕了,我们的暑假也正式开启,终于有时间写写这门课的总结了. 在2016年下半学期末的时候课程组就决定使用邹欣老师 ...

  2. 集美大学1511,1512软件工程课程作业总结

    抱歉,这篇文章来得晚了一些. 这个学期,一共 6 次作业,其中 2 次个人作业,4 次团队作业.坦白说,这个作业量,其实偏少了,但是考虑到这个学期情况特殊,本来时间少,数量上只能委屈一下了.我是想说, ...

  3. 采访前高级软件工程课程学员付浩同学,及Scrum总结阅读感想

    陈宇澄 我采访了第一届高级软件工程课程学员,现正在MSRA攻读MSRA-USTC联合培养博士生的07级师兄付浩同学.以下内容整理自采访笔录: 1.你们team当时做了什么项目?花了多少时间?你在tea ...

  4. 软件工程课程设计项目总结与项目报告

    软件工程课程设计团队项目总结与项目报告 团队成员自评 漆艺: 身为团队的PM项目经理,开始的时候自己还不知道该做些什么,因为自己项目经验不足,团队把这个重要的角色交给我,那就有责任和义务把团队项目做好 ...

  5. 软件工程课程第二次任务——需求分析与原型设计

    作业归属课程 软件工程班级社区 王雯 21381101 张睿 21380805 作业要求 软件工程课程第二次任务安排 作业目标 主要完成NABCD模型.需求分析以及主功能原型设计 原型作业 O-xpl ...

  6. (科软)高级软件工程课程总结

    一.总结与体会 本学期很荣幸选修了的高级软件工程课程.孟老师的课程在软件工程基本概念的基础上,由近及远.由浅入深.全面的讲解了代码中的软件工程的内容.立足于实践,多学多练,有针对性的训练了同学们作为未 ...

  7. 写一个自我简介,列出对软件工程课程的希望及个人目标

    自我简介: 本人是一名桂林理工大学在读的大二本科生,就读于软件工程专业,学习了一些程序设计,喜欢编程.教育背景:JavaWeb.C语言.JAVA.数据结构.计算机网络.等等.希望能学好软件工程这门学科 ...

  8. 软件工程课程小组成员介绍

    组名:三叉戟 我们这个软件工程课程小组一共有3名成员: 本人: CSDN ID:QWQc262: 昵称:大图书馆的牧羊人: 个人简介: 一名正在奋斗的小小程序员! 作为一名学生党,希望在学校能够学到一 ...

  9. 第一次软件工程课程作业

    第一次的软件工程课程作业 这个作业属于哪个课程 <18级软件工程基础> 这个作业要求在哪里 我在这个课程的目标是 能熟练的运用编程知识,具备个人基本开发能力 这个作业在哪个具体方面帮助我实 ...

  10. 坚定的探索者——2022春软件工程课程总结

    坚定的探索者 --AaronHuang,2022春·软件工程课程 一.一点回顾 在2022年春接触到这门课程时对软件工程充满了期待: 再次引用课程伊始的祝福迷路在现代软件工程中的羔羊--略读邹欣老师& ...

最新文章

  1. R语言psych包的corr.test函数计算相关性并给出所有相关性的显著性(Correlation matrix and tests of significance via corr.test())
  2. 增强.net开发的5个非常有用的Visual Studio 2012扩展
  3. 杭州找Android工作的点点滴滴
  4. 计算机领域的范式,编程领域的范式转移
  5. 机器学习 客户流失_通过机器学习预测流失
  6. 国内高速前端 Unpkg CDN 替代方案
  7. 前端学习(1487):axios介绍
  8. centos6.8 安装软件
  9. 安装mysql没有提示设置密码_18.04安装mysql没有提示输入密码
  10. C语言 函数指针一(函数指针的定义)
  11. Android Studio 开发JNI应用
  12. abaqus python教程_Abaqus-python脚本到底应该怎么写?一文带你入门
  13. matlab时域频域信号特征提取资料整合
  14. 伺服驱动系统的电磁干扰问题
  15. c语言char str什意思,char *str与*str的区别
  16. reactor项目Maven配置
  17. hdu 4747 Pet
  18. VC6 VS2010 环境变量
  19. java实现微信公众号token验证
  20. python批量下载网页图片及列表

热门文章

  1. 新年新玩法,数组“招婿”:老许,你要老婆不要?
  2. 函数周期表丨筛选丨值丨CALCULATE
  3. Docker 取代 VM !是什么让 Docker 比 VM 或裸机更安全?
  4. c#构造函数 例子学习
  5. iframe 动态 加载 src
  6. 剖析常见的患上胆囊息肉的症状
  7. 揭开手机app中摇一摇的神秘面纱
  8. 正则表达式判断是否为纯数字
  9. 【three.js】3D模型创建 + 模型弹框 + 动画效果
  10. 想瘦身不伤体质,就要学会和脂肪做朋友