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


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

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

    • 达到我的期待和目标:

    • a. 组队并当了组长;

    • b. 学到了一些安卓前端知识;

    • c. 沟通交流处理良好。我们小组有一半的组员是之前没有任何交集的,从互不相识到协作还算是愉快,可以说是达到了期待;

    • d. 团队一起完成了一个还算是蛮喜欢的软件;

    • 不足:

    • a. 高估自己的能力。软件开发的过程中我是担任了PM和前端的角色,本想着应该是可以很好的兼并两种角色,但发现自己还是太天真了。事实是,在团队只有两个前端的情况下,这种角色分配对于我本身还有另一位前端队友来说,都要扛着蛮大的任务压力,比如在beta阶段,后端早早地就完成了全部的任务,但前端却还有不少的工作。确实是有点高估自己的能力了,应该要多考虑一下实际的工作量,而不能太过主观。

    • b. 安卓前端知识缺乏系统的学习。同样是因为上面所诉的原因,我没有什么时间对前端的知识进行系统学习,而是采用速成的方式,需要什么功能的时候,进行针对该功能的知识恶补,这样虽然勉强可以完成功能,但其实只有自己知道,自己的知识网络还是破烂不堪的,经常因为一些很基本的问题卡壳。

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

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

    作业序号 代码量 备注
    1 0 个人作业-课程展望
    2 138 个人作业-数独矩阵
    3 0 团队第一次作业-团队展示
    4 0 团队第二次作业-项目选题报告
    5 0 结对第一次作业-原型设计
    6 600 结对第二次作业-学生部门匹配系统
    7 0 团队第三次作业-需求规格说明书
    8 0 团队第四次作业-项目选题报告答辩总结
    9 0 团队第五次作业-项目uml设计
    10 0 团队第六次作业-需求分析答辩总结
    11 50 团队第七次作业-随堂小测-同学录
    12 750 团队第八次作业-alpha冲刺
    13 0 团队第九次作业-alpha答辩总结
    14 0 团队第十次作业-alpha事后诸葛
    15 0 团队第十一次作业-beta冲刺前准备
    16 3500 团队第十一次作业-beta冲刺
    17 0 团队第十二次作业-华为云软件分析
    18 0 团队第十二次作业-beta答辩总结
    19 0 个人作业-实践总结
    总计 5038

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

    作业序号 耗时(h) 吃时间的怪物
    1 1.5 思考人生
    2 10 复习c++
    3 1 p图^ _ ^
    4 6 整理、修改报告;做ppt
    5 20 完成原型设计
    6 30 完成匹配算法、 写bug
    7 12 整理、修改需求规格说明书;写博客
    8 7 调研测试、回答问题
    9 6 用例图、博客
    10 10 宣传视频剪辑、回答问题、博客
    11 10 测试、博客
    12 40 前端、博客、视频、催更UI
    13 3 博客
    14 1.5 博客
    15 1 博客
    16 70 前端、博客、视频
    17 8 测试、调戏华为云客服小姐姐
    18 3 博客
    19 5 博客
    总计 245

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

    • 第一次作业

    • 原因:

    • 震惊三连:

    • a. 居然暑假就要开始做作业!

    • b. 居然问这么扎心的问题!

    • c. 老师和助教吐槽功力满分!

    • 二脸懵逼:

    • a. markdown是什么???

    • b. github是什么???

    • 说实话,对于一位不是大佬也不准备考研的人来说,看老师推荐的那些博客还是挺扎心的(虽然很激励),整个过程就是<写-停-反思-写-停-反思>,明明只要一个小时就能写完的东西硬生生花了两天。

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

    • 共计约300个小时,肝作业时间+小组开会、调研的时间;
    • 300 ÷ 7 ≈ 42.85 (小时);

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

    • Android studio 3.0.0 :安卓开发必备。
    • staruml 2.8 :团队uml作业的时候队友推荐的,算是一款很安全的uml制作软件,没有过于华丽的装饰,但是却很实用。推荐。
    • visual studio 2017 :之前都是用小巧的dev c++,刚改用vs的时候还是不大习惯,现在应该是习惯了。
    • Adobe Premiere Pro CC:视频剪辑软件。(ノ・ω・)ノ゙嘿呀,为了Alpha答辩的视频展示,花了20分钟速成学习,最后效果好像还不错?
    • Adobe Audition CC 2017:音频处理软件。和pr一样,都是做视频的时候速成学习的。

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

    • 百度语音:只要输入文字,就可以合成语音,炒鸡方便的好吗!(╮( ̄▽ ̄)╭ 虽然只有四种声音选择,而且也不能正确识别标点符号),不过就简单的配音来说足够啦。
    • TeamViewer:远程控制器,前端队友安利的 (主要是为了远程控制帮我找bug) ,很棒(≧∇≦)ノ!

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

    • java: ( >﹏<。)只能算是学习了,掌握还说不上。

    • 有道云笔记:用来拟博客还是挺方便的,但还是存在一些小问题,有时候有道云写的好好的,复制进博客排版就出现问题了。

    • leangoo:用来记录团队的项目推进情况,导出燃尽图。

    • processon:是一个在线画流程图/uml图等的平台,简洁易用。

    • github:(。・ω・)可以说是程(找)序(de)员(mo)神器了。

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

    • NABCD模型分析: (๑•̀ㅂ•́)و✧ 很实用的分析方式,今天校赛答辩还用到了,效果棒棒的。
    • 用例图:没错,就是它!很适合在整理软件逻辑时画,(=・ω・=) 是在课外有切实用到的东西。

    9、其他方面的提升。

    • 开会速度++:现在可以及时在其他小伙伴跑偏题的时候拉回来,而不是之前跟他们一起偏23333。重要会议的时间基本可以控制在一个小时内。
    • 答辩技能++:软工的答辩算是让我既喜欢又抗拒,喜欢是因为友好的辩论算是自己比较拿手的吧( ≧▽≦每次都有附加分敲开心的好嘛),抗拒的是每次答辩完都要写答辩总结(>∧<)┙へ┻┻。
    • 后端了解++:这学期刚开始的时候对于安卓后端的了解情况基本为负,通过一个学习的熏陶以及前后端队友的纠正,算是了解啦(o´ω`o)ノ

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

    • 我的人月神话:从大辣鸡到小辣鸡,从口头到行动。
    • 上学期的暑假一直是在做原型和ui设计的工作,完全没有触碰编程,所以这学期刚开学的自己可以说是一只大辣鸡,连c/c++这种基础语言都忘了差不多。
    • 第一次编程作业,我花了10个小时,其中3/4的时间在复习语言,最后虽然是完成了作业,但可以说是蛮差劲的一段程序了,不仅没有代码规范,封装性还差。那时候在作业博客里我是这样写的“希望下次的编程作业能够完成得更优雅些”。
    • 看起来确实像是一句“泛泛而谈”的话,但是现在我可以拍着胸脯说,我并没有在“泛泛而谈”。在第二次编程实践,也就是结对第二次作业中,为了程序更优雅、效率更高,我在负责的匹配算法部分用到了之前没有尝试过的队列,并改掉原来一个函数到底的坏习惯,尽可能将每个程序都用函数封装起来。代码规范也是严格按照和勤勤商定的来做(参考了课本及网络上的命名规范)。
    • 之后的团队编程中,也是按照前端的代码规范来做,编程水平相比刚开学也长进了不少。
    • 虽然现在还是一只小辣鸡,不过是一只想成长的小辣鸡 ( ̄∇ ̄) 。

    三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?

    • 对下一届学弟学妹们(和开学初的我)的建议和告知:

    • 希望你们在考虑要不要选这门课的之前想好以下几个问题:

    • a. 你这学期的安排如何?有没有什么特别耗时间的任务,例如计划参加某些竞赛?如果有的话,我比较赞同软工和竞赛选一个,不然要么累了自己,要么累了队友。

    • b. 你有足够的心理素质接受各方面的质疑吗?如果你较玻璃心的话,建议绕开软工,毕竟软工实践课上,你面临的可能不仅仅是老师的质疑,还有其他同学、助教、其他班助教、甚至是你的队友的质疑。

    • c. 你愿意用一个学期大半的课余时间去换取一个真实的项目经历吗?如果你还在犹豫,想一想,一些你原本可能拿来玩的课余时间能够换得一个软工学习大礼包(编程实践+商业企划书+需求规格说明书+掌握各种类图+掌握新的工具+一个只属于你和你的团队的软件),还是很划算的吧,那就勇敢的上吧 ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄。

    • 如果你们决定加入这门课程,针对团队实践,我有一些不成熟的小建议给你们参考一下:

    • a. 如果你想当队长的话,请确保你有足够的热情、责任心及沟通能力,一个团队的队长必须是这个团队的精神支柱。

    • b. 担任PM的同学尽量不要安排重要的编程角色,不然不仅自己会太累,还会影响整个团队的进度,把重心放在团队管理及项目推进会更好。(当然,前提是该团队人员较充足,如果只有2.3个人的话,当我没说_

    • c. 顺应上条,尽量能组个大团队,就不要2.3个人硬凑了。

    • d. 在前期分配角色时,一定要估计好这个项目具体各个角色的工作量,千万不要像博主这样,直接五五开,导致前后端工作量偏差过大,既会让工作量大的一方感到压力大,又会让工作量少的一方没有发挥空间。

    • 对大一的我的建议:

    • 别浪费时间在社团上啦,要多读书多看报,多敲代码,多睡觉(¦3[▓▓],把黑眼圈留给两年后的软工吧。

    • 关于中途要不要换队员:

    • 虽然我们班没有经历过强制性换队员,但是我们队有个队友是alpha阶段跳槽过来的,这可以算是在自愿的情况下换队员吧,所以蛮说一下我的看法。

    • 在双方都是自愿的情况下,我是支持换的。毕竟刚开始组队的时候,可能仅仅是因为不知道跟谁组就稀里糊涂地组了,后面才发现与其他队员在对于项目的看法有偏差,与其勉强合作,不如重新选择适合自己的团队。

    • 如果是强制性换的话,分两种情况,一种是每个团队原本就都是兢兢业业的,并不存在有谁扯后腿的现象。这时如果老师下发命令一定要踢出一个人,是个人都会受伤的,而且新换进来的人可能也不如之前的做得好,可能会打乱这个团队之后正常的发展。这种情况下不支持。

    • 当然,上面说的是在团队属于理想的情况下,但实际可能是另一种情况:有部分团队中存在队员划水的现象。而这时强制性换队员确实可以达到一定程度上防止划水的现象。这种情况下支持。

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

    • **√ ** 萌芽:团队中的一半的队员是属于之前互不认识的,因为软工而成为一个团队,彼此之间还有些生疏和客气,但可以看出,大家都有在努力地适应自身的角色。
    • **√ ** 磨合:刚开始团队协作时,因为个人习惯不同等问题,偶尔也会发生一些小摩擦,比如惯用平台、软件版本不同等,当然,大家或多或少都有为了这个团队更好地发展进行过妥协,例如佳莹,我亲眼目睹了她下载了不下5遍的Android studio (滑稽),原因是我和另外一名前端队友都升级到了最新版本,而佳莹一直更新失败,只能重新下载,然后重新下载又失败,来来复复好几遍,唉,心疼, 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈嗝
    • **√ ** 规范:我们团队目前应该就是处在规范阶段,角色定义落实,任务定义分了前端、后端、UI三个大块,后端及UI有具体到每个人的任务分配,前端小部队是按照具体进程动态分配给每个人。
    • 创造:达到创造阶段还是需要一些时间的洗礼,目前并没有达到。

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

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

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

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

    请在随笔中用数据证明上述内容或侧重选择之一。

    • 我选择第二个小题进行回答。

    • 项目规划:

    • 这是在项目刚开始时我简单拟草的一份项目规划表,后续因为验收时间不断发生更改,具体进展跟这份计划表有些出入。

    • Alpha阶段燃尽图:

    • Beta阶段燃尽图:

    • 项目需求:

    • 点击->项目需求规格说明书电子版

    • 项目设计:

    • 点击->项目原型设计

    • 部分UI设计稿:(UI设计是由语恳负责的)

    • 项目实现:

    • Alpha版本

    • Beta版本

    • 团队合作:

    • 云端文档:

    • 部分团队任务分配表:

    • 为什么是部分?——因为有些不知道放哪里了23333

    • 足够好的软件:

    • 这个的就不知道用什么来证明,那就放两张小黄衫照吧 ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄。

    • Alpha的团队小黄衫:

    • Beta的团队小黄衫:

    • ps:不知道半个多月都没去拆开算不算是一种新意(别打我,逃~)

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

    • 不能全部都答出,或者说只能答出几题。
    • 第一个问题其实就把我难住了,想来好像并没有可以称之为拿手的语言了。
    • 比较有的讲的应该就是需求分析、软件设计、团队协作这三类下的问题,但也只是一些粗浅的认识。
    • 总结来讲,在技术方面,我还远远不够格称为技术人员,只能说是一只刚入门的小辣鸡,寒假会多花点时间去提升一下技术方面的能力,特别是要对安卓前端进行一下系统的学习。

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

    • 与勤勤的结对之旅

    • 与日不落战队相处的四个月

    • 感恩有你们。

  • 相关阅读:
    js 生成指定范围之内的随机数
    vue项目在ie浏览器打开做提示
    vue 瀑布流组件
    docker 移动文件到其他目录
    学习hyperf遇到的问题
    Linux 部署elasticsearch
    Git 常用命令
    Linux svn定时更新
    eclipse 导入web项目后,线程假死
    向量基本概念
  • 原文地址:https://www.cnblogs.com/Akyy/p/8228987.html
Copyright © 2020-2023  润新知