zoukankan      html  css  js  c++  java
  • 软件工程第一次作业

    一、此次作业用C++实现了小学生简单四则运算,主要包括的功能有(生成用户要求的题目数量、判断正误、提示正确答案、结束时统计作答正确的次数并最后给予分数),倒计时功能查阅资料但为完全实现(代码中已注释)代码地址:https://git.coding.net/xhx1207317661/Arithmetic.git

    二、在一周之内,快速看完《构建之法》整部教材,我有以下五个不懂的问题:

    问题一:在《构建之法》第二章中第一节中(p26 2.1.2)提到”单元测试的独立性——单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。”之后阿超对小飞的解释:100%的代码覆盖率并不等同于100%的正确性!何为“代码覆盖率”?代码覆盖率可以体现什么?后来通过阅读书籍和查阅资料得知代码覆盖率对于“应该写但是没有写的代码”无能为力。例如代码申请了内存或其他资源,但并没有释放。比如代码中并没有处理错误情况。就像没有处理和文件、网络相关的一些异常情况,例如文件不存在、权限有问题。此外,代码覆盖率可以体现代码质量、为功能测试关注点提供情报、估计修改已有代码所需的时间等等。更深层次的认识和影响还要通过不断的学习、查阅资料、实践得知。

    问题二:在《构建之法》第五章中第一节中(P96 5.2)中提到各种团队模式,如何理解这些模式适用于什么类型的代码开发?如果选择错误的模式会造成什么样的影响?

    问题三:在《构建之法》第八章中第三节中提到一款成功的软件是建立在成功的需求分析上,而获取正确的需求却是比较困难的,我觉得我们普遍的认识是:用户知道需求是什么,我们所要做的就是和他们交谈从他们那里得到他们的需求,只要问用户系统的目标特征,什么是要实现的就可以了,但是实际上需求获取并不是想象的这样简单,我们应该如何实现一个切合用户的需求分析?

    问题四:在《构建之法》第十三章中第三节中(P298 13.2.2)中提到“错误报告”的缺陷:收到的报告有可能白白浪费时间,对于这种报告维护人员应该如何正确的处理“错误报告”?

    问题五:在《构建之法》第十六章中第一节中(P347 16.1)中提到整个社会对于创新都很感兴趣,但是目前我们如何区别认识”创新意识”和“迷思”?课本中对于“迷思”做了具体的分类,我们应该如何正确对待“创新意识”呢?希望在不断的认知和学习中可以得到答案。

    三、选取三种软件,并分析它们的特点

    问题:

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

    工具软件:有道词典

    • 1)查英语单词很方便,软件里的基本功能都是免费的,目的并不是为了赚取用户现金,只有一些相关推荐和广告;
    • 2)手机直接下载;
    • 3)通过用户反馈来修复软件bug;进入APP时提示有新版本,如优化了界面或者修复某某bug等等;
    • 4) 免费提供英语学习及复习资料,不断优化界面;
    • 软件产品是以程序和文档的形式存在,通过在计算机上运行来体现他的作用,而硬件是看得见、摸得着的物理部件或设备。软件存在缺陷时可以通过修补漏洞或者修复bug解决,硬件则是实体,不方便修复。

    手机应用:QQ

    • 1)QQ覆盖用户广泛,聊天交友日常生活必备;QQ一部分目的是为了盈利,一部分目的是为了占据市场;
    • 2)手机预装;
    • 3)测试人员发现bug后开发人员修改完后测试人员再次进行测试直至bug处理完毕;进入APP时提示有新版本,进入后“关于QQ”里有也有“有新版本”的选项;
    • 4) 通过本身影响力,便捷性,功能全面且完善;
    • 软件产品是以程序和文档的形式存在,通过在计算机上运行来体现他的作用,而硬件是看得见、摸得着的物理部件或设备。软件存在缺陷时可以通过修补漏洞或者修复bug解决,硬件则是实体,不方便修复。(同上)

     系统软件:Windows 10

    • 1)基本普及大众,一部分是以盈利为目的,一部分是为了打开移动市场;
    • 2)电脑预装系统;
    • 3)通过用户bug反馈,更新Windows Defender中会有提示,系统需要更新;
    • 4) 基本已经普及大众,系统稳定,用户数量庞大;
    • 软件产品是以程序和文档的形式存在,通过在计算机上运行来体现他的作用,而硬件是看得见、摸得着的物理部件或设备。软件存在缺陷时可以通过修补漏洞或者修复bug解决,硬件则是实体,不方便修复。(同上)

     

  • 相关阅读:
    结巴分词 0.14 版发布,Python 中文分词库
    Lazarus 1.0.2 发布,Pascal 集成开发环境
    Android全屏 去除标题栏和状态栏
    服务器日志现 Android 4.2 传将添多项新特性
    Percona XtraBackup 2.0.3 发布
    长平狐 Android 强制设置横屏或竖屏 设置全屏
    NetBeans 7.3 Beta 发布,全新的 HTML5 支持
    CppDepend现在已经支持Linux
    GromJS 1.7.18 发布,服务器端的 JavaScript
    Apache OpenWebBeans 1.1.6 发布
  • 原文地址:https://www.cnblogs.com/bearlucky/p/8627548.html
Copyright © 2011-2022 走看看