软件工程第一次作业

2018-03-2313:43:29

• 第一题:花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。用C++自动生成简单的整数四则运算和真分数四则运算题目,并且能够判断对错。

 • coding项目地址:https://coding.net/u/lzsdjdw/p/Calculator/git/blob/master/calculator.cpp

  

  第二题: 在一周之内快速看完《构建之法》,列出你不懂的5-10个问题。

一、第二章 2.1 单元测试(P21-P28) 我看了这一节之后,对单元测试的使用感到无从下手。虽然明白单元测试是软件维护中极为重要的一部分,但对其运行机制仍是不懂。

二、第四章 4.3 goto语句(P75-P78)此处介绍了goto语句的应用,但自从进入大学以来,老师一致建议我们不要去使用goto语句。我从网上看到“ 由于goto语句可以不受限制的灵活跳转,使得其成为了有争议的语句。  我个人观点是最好不用或是禁用。  首先,由于goto语句可以灵活跳转会导致破坏结构化设计风格,若一段代码多次使用goto语句会降低代码的可读性。  其次,goto语句的执行可能会跳过变量的初始化、重要的计算语句等,甚至影响到整个程序的运行。”所以对此处感到疑惑。

三、第五章 5.2 主治医师模式(P98)这一段的最后描述到,在一些学校的软工课,这一模式往往退化为“一个学生干活,其余学生跟着打酱油。”在读到这里,我想到是,书中尽管很好的描绘出了这种的团队模式,却没有了出该如何去解决这一问题。

四、 第九章 这一章描绘了项目经理,我感觉在这里跟人的一种想法就是,既然项目经理不用从事编程等方面的工作,那非计算机专业类的人,是不是也可以胜任这项工作呢?

五、 第十六章  在这里,我感觉书中总结很全面,但我认为,现在阻碍人们去创新的最大因素,不是技术,想法,而是大部人的思维被禁锢起来,而缺少了那种去创新的激情。

 

 第三题: 软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。

  • 1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
  • 2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
  • 3)这些软件是如何处理Bug的?又是如何更新新的版本的?
  • 4) 同一类型的软件之间是如何竞争的?
  • 列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?

 

游戏,手机应用,基于网页的的软件

 

游戏:《荒野行动》

          一般是通过广告的方式,让使用者在游戏中体验到乐趣,进而吸引更多的用户。大部分游戏的目标都是出于盈利。有的都是直接赚取用户的现金,有的则是赚取第三方或者其他非用户的现金。例如,在软件中植入广告,或者促使用户充值现金。一般是通过下载,偶尔是互相拷贝。通过用户使用后进行的反馈,来处理bug。根据用户的反馈以及技术进步来更新版本。通过提高游戏体验和完善客户服务以及创新,来竞争玩家。

 

手机应用:《有道翻译》

        在生活中,出于某些需要,进而专门去搜索相关的软件,通过软件商店对软件的评分,用户评论,再加上自己的用户体验,从而选择自己最喜欢的软件。手机应用应该都是出于盈利的目的。有的都是直接赚取用户的现金,有的则是赚取第三方或者其他非用户的现金。例如,在软件中植入广告,或者促使用户充值现金。全都是通过下载,从不邮购,互相拷贝。通过用户的反馈信息,以及后台工作人员的检修、维护,从而去处理bug,再对其注入新的元素,更符合用户体验的元素,来不断的更新。同类手机应用,通常通过垄断独家资源,增强用户体验,多项绑定来挽留或者增加用户。

 

基于网页的软件:《网页版微信,微博》

       用其简单易使用性,来吸引用户。目标是盈利。这类软件大部分是从第三方(植入广告),而非直接从用户赚取现金。这类软件大部分是直接下载插件进行使用的,或者直接在线使用。进行软件升级和增加软件补丁。

       

玩游戏时有的时候会突然闪退。

软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。

硬件是计算机硬件的简称,是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。

软件的特性:复杂性,不可见性,易变性,一致性,非连续性。

  

 

posted @ 2018-03-24 10:28  4PM  阅读(120)  评论(0编辑  收藏  举报