软件工程第一次作业

 
  • 关注《构建之法》的作者邹欣老师的博客
  • 作业采用博客园的markdown排版,可以参考极简MarkDown排版介绍
  • 软件工程第一次作业要求
    • 本次作业的标题命名为“软件工程第一次作业”
    • 花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。
    • 四则运算代码部分
    • 在一周之内快速看完《构建之法》,列出你不懂的5-10个问题,发布在自己的博客。
      • 我看了第三章的内容,有这个问题 ——我们这个行业的核心竞争力是什么? 我查了资料,有这些说法(“那么核心竞争力是什么?我观察圈子里很多成功和不成功的技术人,提出一个观点,那就是个人的核心竞争力是是他独特的个性知识经验组合。”);根据我的实践,我得到这些经验(程序员的自我提升需要不断地学习,这就是核心竞争力);但是我还是不太懂,我的困惑是(要成为一个优秀的程序员,我们应该怎么做?)。
      • 我看了第四章的内容,有这个问题 ——怎么达成有效率的结对编程? 我查了资料,有这些说法(“让结对编程更有效的十种办法#1 -不要让一个人霸占键盘#2 -要共同管理注意力#3 -不要一个人干活#4 -要有劳有逸#5 -要庆祝你们的成就!#6 -要和你的同伴保持同步#7 -要使用合适的交流方式#8-要学会处理分歧#9 -既要作学生,也要作老师#10 -要及时提供和接受反馈”);根据我的实践,我得到这些经验(结对编程的两人在不同阶段要应用不同的方式和技巧);但是我还是不太懂,我的困惑是(结对编程也好,团队协作也好,如何组成一个合适的Team,如何协调各方面的问题?)。
      • 我看了第八章的内容,有这个问题 ——市场上已有的软件已经五花八门,一个团队要做一个新的软件,怎么才能准确找到用户需求? 我查了资料,有这些说法(“整个流程的思路就是先针对一群极端用户,通过看得见摸得着的原型,渐进式地深挖需求,找到产品卖点和新的市场需求,在这过程中尽量把重大改进往早放;而不是针对大众市场,做一个大家都能想到的产品。”);但是我还是不太懂,我的困惑是(如何对已经收集出来的用户需求进行排序?)。
      • 我看了第十章的内容,有这个问题 ——用户需求说明书与需求规格说明书有什么本质区别?我查了资料,有这些说法(“用户需求说明书是用户的需求,需要和用户确认的;需求规格说明书是系统需求,主要是对内的。”);根据我的实践,我得到这些经验(“需求开发”需要产出的文档大体上包含【需求规格说明书,需求规格说明书检查表,需求开发指南等);但是我还是不太懂,我的困惑是(要怎样写才能让用户、客户更容易读懂这一大堆的说明书?)。
      • 我看了第十六章的内容,有这个问题 ——什么是创新?怎么才能做到创新?我查了资料,有这些说法(“创新,作为当前各行各业一个非常时髦的话题。针对软件行业来讲,体现的尤为淋漓尽致。可以不夸张的说,推动软件行业发展的永恒动力就是创新。”);但是我还是不太懂,我的困惑是(市场上已有的软件已经那么多,每个市场份额已经被占据了,一个新的软件开发,要做到创新究竟要怎么办?)。
    • 软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。
      • 1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
      • 2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
      • 3)这些软件是如何处理Bug的?又是如何更新新的版本的?
      • 4) 同一类型的软件之间是如何竞争的?
      • 列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
    • 基于网页的软件——4399小游戏(类似于在线编译器,在线小游戏,在线邮箱……)
    •     1)用更方便(不需下载)的方式吸引用户;部分靠广告盈利;很难赚取到现金。
    •     2)用户需要,主动去找搜索
    •     3)自动刷新
    •     4)更多的资源(比如小游戏网站,哪家游戏更多,哪家用户就多)
    • 手机应用——小米视频
    •     1)手机自带软件,无法卸载,强制用户使用。(另一部分是靠广告宣传)
    •     2)手机自带(另一部分需要在应用商店下载)
    •     3)软件开发商修复bug后会提醒用户更新。
    •     4)用户体验感、舒适度、口碑(比如爱奇艺与优酷两家的竞争)
    • 工具软件——Office应用软件
    •     1)功能强大,用户受众广,不得不使用它。
    •     2)下载
    •     3)软件开发商修复bug后会提醒用户更新
    •     4)靠硬本事,在功能、便捷、美观等方面竞争。
    • “特殊”现象:
    •     1)软件更新,修复问题差不多都是另外生成一个安装包,用户需要全部更新,类似于重新安装。硬件主要靠补丁。
    •     2)开发商开发软件,除了售卖软件外,还可以吸引广告入驻以盈利。硬件只能靠卖硬件获利。
    •     3)软件本质特性:软件必须有效地支持它的用户
    • 团队作业:同学们根据自己的爱好和情况组成5-6人的项目小组,选出组长。
  • 将上述作业在作业截至之前发布在自己的博客,不准抄袭,一经发现,本次作业倒扣5分。