软件工程第一次作业

  • 课题名称:
  • 软件工程第一次作业
- 课程作业(1):小学生四则运算
    - 编写简单小程序,了解程序程序运行过程,并且学会对程序中出现得BUG进行处理。
    - 课题思路:
    - 用4个整形数字分别表示两个运算数字,两个表示分母,两个表示分子。使用随机函数rand()对四个数字进行赋值,然后随机添加运算符,得出数学表达式。
    - 取得用户输入得结果。将用户输入与正确结果对比,实现判断正误。

    - 实现效果:
    2018-03-22初步版本:
    ![](https://images2018.cnblogs.com/blog/1351758/201803/1351758-20180322215624915-1856528622.png)
    2018-03-23版本:
        修复:1.负数运算
                   2.分数约分
    ![](https://images2018.cnblogs.com/blog/1351758/201803/1351758-20180323092052311-333484251.png)

    - coding:
      [https://git.coding.net/HULANG-BTB/Four_operations.git](https://git.coding.net/HULANG-BTB/Four_operations.git)


- 课程作业(2):快速看完构建之法之后得想法及问题:
    - 1.第二章,效能分析工具段
       我们在具有有效得分析工具之后,我们如何要求验证在相同时间下,我们得数据处理能力,是不是在不同得运行环境霞会有所改变,或者说我们有了效能分析工具
       之后,是不是就代表我们不惜要再去对我们得算法进行优化,而是通过效能分析工具就可以得到更加高效得算法。

    - 2.测试报告以及开发文档
       我们在开发程序得时候往往都只会注重结果整么样,而过程中得实现显得好像没有那么重要了。如果我们能高达到预定得效果,那么开发文档以及测试报高对于我
       们而言是不是真的有意义花费时间去撰写。又或者说,我们得测试数据是不是也没有更大的必要记录下来,毕竟我们达到的结果是对的。 

    - 3.大作业的意义在哪里?
       第二张第四节中提到,我们的大作业对于老师老说不好出,而学生也往往想不到什么具体的有意义的题目来联系,对于这种情况,我们改变的地方是不是会比较少。
       或者说,我们平时的联系比较鄙陋,达不到练习的程度,并且我们缺少了去发现某一种新奇的事物的感觉。不善于去发现能够有新意的点子。

    - 4.成长和代码量的关系
       软件工程师的工作就是写代码,相关的专业也是以阅读代码、写代码为主,那我们的代码量和工程师的水平线性关系是什么。当我们的代码量在2000行一下时,我
       们采用的真的是一味的“写了再改”的蛮干方法。但是有的时候,如果我们需要实现多个文件的分割,以及多个模块的方法的时候,我么则会有相应的改变。从“写了
       再改”变成一个结构话的编程方法,采用类、API、模块~~去将每一个部分分类管理,这样的代码维护效果会让我们达到一个什么样的水平,或者说,维护代码的时候,
       我们是不是会获得更加快速,具有更好的体验呢。?或者说我们还是需要使用之前提到过的解释文档来协助我们去维护。

    - 5.敏捷流程的经验教训
       敏捷到到底是一个什么东西?对于我们程序开发者而言,敏捷是指再思维上的跳跃性,还是说是指我们再处理问题时的反应速度。或者说,敏捷是不是一种天生的天
       赋,还是说,敏捷是一种流程,是一种和我们之前提到的文档开发类似,敏捷去掉了传统的文档开发中的某些部分。使得我们的开发效率或者进度会变得更快。

    - 6.团队模型以及角色责任的分配
       有很多时候,我们的一个工程中往往会有多种角色,包括开发/测试/管理/发布/产品管理。其中往往我们的开发人员就同时担当了测试员的角色,如何分配工作往往也
       是一个团队中最大的问题,如何平均的分配工作到每一个人的头上。又如何是的每一个人都在按时按期的完成自己的工作,若其中的一个角色没有进到自己的责任,
       其他角色是不是有责任接替他的工作。

- 课程作业(3):我的选择 : 基于网页的软件 、 操作系统 、 工具软件
    - 1.这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
        - 基于网页的软件:
          网页相对于我们而言是一种相对于安装程序而言更加轻便的使用方法,开发者通过将某些强大的功能集成到某一个页面上,我们可以同时使用多个工具而不会因为安
          装而占用系统的硬盘和内存,因为免去了安装的繁琐过程,所以我更加倾向于这一种低耗,高效的基于网页的软件。

        - 操作系统:
            对于每一个操作系统而言。都有其具有的优越性,系统给的开发者往往会在某一些方面做出一些非常便于人们去操作的措施,从而喜迎我们去体验这个系
          统,而当我们对于某一个操作系具有良好的体验感之后,我们会获得更加高速的工作速度,也会使得我们的工作效率大大提高。

        - 工具软件:
            同操作系统一样,我们使对人友好的工具会使得我们的工作效率大大提高,无论是管理上还是在其他的一切方面。
    - 2.这些软件是如何到你手里的(邮购,下载,互相拷贝)
        通常情况下,我们的工具软件是从具有相同爱好的开发者那里获得的,有的时候是出于拷贝,但是更多时候是相互告知,然后从网上直接下载。

    - 3.这些软件是如何处理Bug的?又是如何更新新的版本的?
        通常情况下,这些软件发生某种错误的时候都会向他的开发者发送某种错误信息,以一行它的开发者需要去解决某个问题引起的系统崩溃挥着其他问题,开发人员经过
        修改后会将更新包(补丁)放到软件的更行服务器上,软件在下次运行的时候会链接到相应的服务器,请求并且提示用户选择这些更新。

    - 4.同一类型的软件之间是如何竞争的?
        同类软件之间的竞争往往体现在对于使用者的友好程度上,另一方面,某些软件的免费发行也会吸引大部分的使用者,而在这个过程中,软件的开发商会选择放弃出售,
        转而使用投入广告的方式来盈利,而不需要用户直接购买。

    - 5.列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
        最本质的区别在于软件的维护,而硬件中就不存在维护一说,软件一旦购买,就享有开发者维护的权益,开发者需要对出售的软件进行实时的维护,从而保证用户的体验
        效果。而硬件则不一样,硬件出售后除了短期内出现质量问题,会给与维修外,其他并没有什么维护的特性。

- 团队 :
    - 队长:季澈
    - 队员:李怡龙 、 贺鸿琨 、 胡浪

    具体详细介绍请移步[季澈的博客](http://www.cnblogs.com/jiche/)。
posted @ 2018-03-22 21:50  HULANG-BTB  阅读(198)  评论(4编辑  收藏  举报