软件工程第一次作业补充

  • 软件工程第一次作业要求

    • 本次作业的标题命名为“软件工程第一次作业”
    • 花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。
  • 在一周之内快速看完《构建之法》,列出你不懂的5-10个问题,发布在自己的博客。

    • 1.在一个团队合作进行软件开发的过程中,个人编程能力是否尤为重要?
      第二章开头就提到绝大部分软件都是由多人合作完成的,大家的关系相互有依赖关系。第五章提到的软件团队的模式,其中有一个主治医师模式,在这个模式中,往往需要一个编程能力很强的人来带领。软件开发流程不光指团队的流程,还包括个人开发流程,因为软件团队是有个人组成的。那么这是不是说个人的编程能力高于一切呢?是不是有了特别强的编程能力就可以不考虑团队呢?
    • 2.性格是怎样影响合作的?
      书中第四章的练习与讨论中提到,任何人不一样,在和在和别人合作的时候,要注意个人表达观点的方式和思考的方式不尽相同。其实前些天我们小组在讨论这个软件如何做的时候,小组成员其中的两个产生了很大的分歧,但是经过讨论,完美的解决了这个问题。所以我有些疑问,比如我觉得每个人的不同虽然在初期阶段会影响进程,但是思维的碰撞产生智慧的火花,会让人从不同角度看问题,其实是一件好事,那么性格的差异还会怎样影响合作呢?
    • 3.当用户体验跟软件的维护性相违背时,应当如何取舍
      在第17章“软件工程师的职业道德”中提到,软件工程师应以客户和雇主利益最大化的方式做事,与公众利益保持一致。可是当雇主的要求跟用户的需求冲突时,应当如何去取舍呢?有需求就有市场,当我们看到,学生不想尔雅这类的网上课程时,我们可以看到商机,我们可以选择去做刷课这类软件,所以我想问,这类程序是不是不应该做?
    • 4.敏捷到底是什么?
      看了第六章敏捷流程的内容,发现我无法深刻的理解敏捷的含义,敏捷的章节中也提到了很多名词,给人一种不明觉厉的感觉,书中提到的敏捷给我的感觉就是实时去得到用户的反馈,实时的进行修改,可是我总觉得理解的太浅显了。
    • 5.结对编程中,应该如何分配两个人的工作?
      书中结对编程那个章节讲到“他们并排坐在一台电脑前,面对同一个显示器,使用同一个键盘、同一个鼠标一起工作。”,我觉得两个人的契合度需要很高才能做到这一点,如果没有一定的默契,恐怕会严重影响工作效率,这种默契是怎样培养出来的,又应该怎样分配两个人的工作来尽量减少两个人的冲突呢?
    • 6.在自身编程能力比较弱的情况下,有哪些途径能够提高自己的能力?
      看完这本书以后,我发现我很想学好软件工程这门课,但是我自身属于编程能力较弱的学生,即使我都大二了,我依旧认为我是个门外汉,我迫切的想要提高自己的编程能力,但是我只知道在网上看视频这一个途径,然而网上的视频很多,自身没有辨别优良的能力,很想知道我可以做那些事来提高自己的能力,对自己以后的专业课乃至以后的工作有帮助?
  • 软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。

    • 1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么?还是别的?
    • 2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
    • 3)这些软件是如何处理Bug的?又是如何更新新的版本的?
      1. 同一类型的软件之间是如何竞争的?
      • 列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
        • 三种软件
        • 1.游戏--炉石传说
          • 1)这款游戏作为网络游戏,他的目的肯定是盈利,来赚取玩家的现金。
          • 2)这款游戏是我跟朋友一起玩的时候,我发现他在玩这个游戏,我看他玩了几把,我就被安利了,从官网下载了这款游戏。
          • 3)这款游戏在公测之前,进行了长达一年的内侧,它的bug是通过玩家反馈以及测试人员的测试发现的,通过各种补丁进行维护与修复。
          • 4)游戏肯定通过优质的用户体验,以及其特有的背景故事来与其他游戏进行竞争。
        • 2.手机应用--QQ、微信
          • 1)这类软件作为社交软件,其通过移动支付、生活服务O2O,游戏,对商家的增值服务来盈利,来赚取用户的现金。
          • 2)当我发现周围的同学都是用QQ来传达信息的时候,我也就不得不随大流了。
          • 3)当微信、QQ在使用中出现Bug时,一般先收集数据,再在下次版本更新中解决,如果软件严重影响到使用,则会紧急推出更新包。
          • 4)这类软件尤其着重用户的体验,因为用户会根据自己的需求来选择软件,比如成年人不喜欢太过花哨的内容,所以微信简约的设计收到他们的欢迎。
        • 3.操作系统--Windows10
          • 1)电脑必备的操作系统;肯定有盈利的目的,但是还有别的目的。
          • 2)电脑自带的。
          • 3)用户反馈,通过打补丁的方式。
          • 4)软件的兼容性,系统的易用性,免费开放。
  • 硬件与软件的区别:

    • 1.软件:其实很好理解,就如同是一个人思想和灵魂。要是没有它的话,那么再好的电脑也没什么太大的用处,放在家里就等于是废铁。
    • 2.硬件:它如同是一个人的身躯。如果身体也没了,再好创意和思想也无法最大限度的发挥,办起事情来总有不便。
      • 总结:对于电脑来说,软件是思想和灵魂,硬件就是身躯。如同一个人既要有健康的思想,也要有强壮的身躯。所以它们之间不可分割的一个整体。
原文地址:https://www.cnblogs.com/zuozhefan/p/6741778.html