软件工程第一次作业

  • 关注《构建之法>的作者邹欣老师的博客邹欣老师

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

    • 写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。 将代码上传至coding.net.

    • 在一周之内快速看完《构建执法》,列出你不懂的5-10个问题,发布在自己的博客上。

      • 提出的问题:
        • 问题一: 老师,在书的第十五页中提到软件工程的目标就是为了创造“足够好”的软件,书上提到了四点包括用户满意度其中包括用户满意度,可靠性,软件流程的质量,和可维护性。书中前面提到软件=程序+软件工程。所以一提到软件的好坏,
          必然会涉及到程序,所以我斗胆冒昧问一下老师就是软件的好坏是不是还要看程序的复杂度和开发有效的软件而所需要的时间?所以判断软件的好坏是不是还要加上这两点呢?

        • 问题二: 老师,第五章5.2.1我看到我们班同学对主治医师模式存在歧义,对此我想发表一下自己的观点,我认为主治医师模式举的例子很恰当。对于我们刚接触IT不到我们来说无论是从创新,程序的模块化,以及高效率的算法跟大型的IT
          公司没有可比性,所以我们不得不采用边学习,边实践的方法来做东西。因为我们没有充足的时间将一门技术熟到“通吃”的高度。但对于大型IT公司来讲,一定是首先把技术搞透彻,才会派你去干与这门技术相关的软件,
          因为只有这样自己才能及时高效的处理研发中出现不可预料的bug,就拿书上的例子来说,如果我们连人体基本的器官及各种神经血管都搞不明白,连基本的IT职业素养都没有,医院还会让我们进手术室吗?我们连门槛都进不去,更
          别说是主治医师。所以我认为这个例子很恰当,而且很有代表性。当然,这只是我个人观点。

        • 问题三: 老师,对于第八章8.3获取需求分析我想提出一个问题,就是假如我在做需求分析的时候“需求捕捉”等各方面做得都很好,还给客户提供了一些他不知道的功能,但是客户说我也不清楚,如果你认为对企业有益的加在软件里更好,但
          是在软件开发出来之后他说那个功能并不好用,需要改动 ,但对于我们改动只会产生新的bug,而且后期产生的bug是不可预料的,还不如推翻重写,但推翻重写会耗费大量的人力资源的资金。老师,假如遇到如这类进退两难的事情,
          我们该如何去解决呢?

        • 问题四: 老师,在第十二章的12.1(p235)中举了一个遥控器的例子,我对这个例子有一些自己的想法。这个例子说是为了顾客的角度着想,对,这说的没错,因为社会发展的方向就是越来越多的高科技为人们服务,但是发展更需要我们的创
          新和突破,从市场营销来说,我们相对于同行更有竞争力。相对而言老人毕竟是少数,随着科技的发展,人类的进步,不识字的人越来越少,如果我们把遥控器改成像书上画的那样的那样未免太单调。我个人有个想法,我们可以减,但是
          不要减得太多,我们可以在遥控器上设置最基本的几个按键,然后再加一个按键,一按那个按键,好多高级功能显示在屏幕上,然后各个按键不是像是传统的按键那样写个文字,我们可以改成互动的图片或是一些微动画来显现,一方面,
          让界面更加美观,另一方面也会会激起人们想要了解这个功能的那种欲望。如果这样设计,其一适应有老人的便捷性,其二,可以让程序员们的高级工能“秀出来”,其三,界面也更加美化,不像传统按键那样乏味,其四,对于市场营销
          来说在同行之间可以有竞争力。无论是从消费者方面的需求心理,还是程序员的突破创新心理,还是从他的市场经济效益来说,似乎都是有益的,这样不就一举三得了吗?何乐而不为呢?

        • 问题五:老师,在第十六章的 16.1.3(p325)中您提到说好的想法会赢,但我觉得这个不一定,为什么呢?我们做软件干什么?就是为了给各个行业,各种人提供方便和满足他想要的需求,人类一直在朝着一个方向进步,那就是越来越高级。而软
          件则是帮助人进步的一个好的工具,而对于软件的创新,我个人认为这要分成两方面,其一,如果是前所未有的,史无前例的这种创新,有可能就会赢,比如说安卓系统和ios系统,没有这两个操作系统就没有今天的智能手机,为什么像类
          似的创新会赢?因为他为人提供了方方面面的便捷和需求。其次就是筛选,有好的想法固然很重要,但是要筛选和预期,假如想法特别好,东西也做出来了,但是在市场上企业和顾客不认同,别说提供便捷,有时反倒成为进步的累赘,那么
          我认为相类似的软件的创新也是失败的。当然,这只是我的世界观,我的看法。

    • 软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。
      - 1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么?还是别的?
      - 2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
      - 3)这些软件是如何处理Bug的?又是如何更新新的版本的?
      - 4) 同一类型的软件之间是如何竞争的?

    • 列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
      - 第一,我选择我们学校的教务管理系统,它说服我们的理由只有一个,它的出现让我们不用在选课的时候跑到操场或者教室去找老师报名了,学校的目标是为了给我们提供方便,也是为了给老师提供方便。网站的使用是老师推荐给我们的,而且向我
      们计算机系的可以在网站上交作业,学校有的功能直接不用,而且选课的时候系统经常会崩溃。后台工作人员重新搭建服务器。相对其他学校的管理系统而言,我们学校的系统界面过于单调,而其他学校的界面美观。

       - 第二,我选择游戏王者荣耀和英雄联盟,通过别人玩,自己也尝试跟着玩,所以就下载了他们的目标都是为了盈利,他们通过点卷来赚取现金。我是在自己的电脑上下载的,更新的时候需要下载更新包通过安装包更新新版本的。王者荣耀和英雄联盟
         属于同一类型的游戏,主要是因为更加具有挑战力,才吸引人的眼球,英雄联盟无论是英雄,还是场地都比王者荣耀多。但是王者荣耀也有优势,王者荣耀正因为开发的存储小,研发了手游,可以装在手机上。但也有一些人认为王者荣耀太简单,没
         有挑战    力。所以两者各有优劣。
       - 第三,我选择安卓和ios操作系统。现在一般的智能手机都是安卓的操作系统,iphone手机的操作系统很特殊是ios操作系统,,因为对于智能手机的需要所以会用到它们。但是由于ios系统是苹果手机专用的,价格也比较高昂,所以一般也不会用。
         如果手机上出现病毒啊,或是之类的app用杀毒软件,或是直接把app删除就可以。两种操作系统都是用给手机发送推文的形式来更新系统的。两种系统安卓系统 比较普遍,而ios相对于安卓来说界面更加美观,一个靠使用手机系统的普遍性,而另一
         个则是按照自己美观的界面和安全性来和安卓竞争。
      
posted @ 2017-04-23 15:26  "云"之巅战队  阅读(151)  评论(0)    收藏  举报