• 软件工程第一次作业


    • 关注《构建之法》的作者邹欣老师的博客
    • 作业采用博客园的markdown排版,可以参考极简MarkDown排版介绍
    • 软件工程第一次作业要求
    • 本次作业的标题命名为“软件工程第一次作业”
      • 花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。

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

        • 1)书中第八章需求分析中关于获取用户需求分为了很多方面,其中关于用户的日志研究的工作量信息量巨大,如果对于每个用户的日志进行逐一研究往往不切实际。而当用户在使用过程中出现了问题,又会产生抱怨情绪,更不愿意花时间以及精力去为工程师提供相应的log。有什么方法可以解决这一问题?
        • 2)书中第九章项目经理中提到PM带领团队开发项目。如果在一个项目过程中开发团队的PM由于某些原因被更换,而新的PM对于项目的发展方向与原来的有所不同,导致团队的开发人员与PM产生分歧,那应该用什么方法来解决这样的问题。
        • 3)书中第九章项目经理中提到PM除了进行一些项目的开发与测试还得管理项目的风险。风险有很多不确定性,PM既要避免一些风险发生,又要在某些风险发生后对项目进行挽救及修补。如果一些风险对整个项目的开发造成了不可逆的破坏,这责任就得有项目的PM一人承担?
        • 4)书中第十三章软件测试中提及到按照不同的方面可以将测试分为很多种类,书中也详细介绍了每一分类的测试内容。但在一个软件编写出来后,对于该软件进行测试是否具有先后顺序或者说可以同时对于该软件进行多种测试?或者是否可以将多种测试内容编写到一段测试代码中以提高软件优化
        • 5)书中第十四章中质量保证中关于质量的成本中关于软件测试中。很多情况下一个大型创新性软件在测试过程中往往会耗资巨大而且成效甚微,该如何避免这种情况的发生?
      • 软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。

        • 1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?

        • 2)这些软件是如何到你手里的(邮购,下载,互相拷贝)

        • 3)这些软件是如何处理Bug的?又是如何更新新的版本的?

        • 4)同一类型的软件之间是如何竞争的?

        • 列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?

           - MIUI操作系统(基于安卓开发的手机操作系统)
           - 1)通过和我介绍该操作系统的优点,例如功能全面、系统流畅、系统UI设计简易清新等等来说服我成为他们的用户。不一定都是盈利。首先得通过这种方式积累一定的客户人群,进一步在通过与手机捆绑销售,进一步让该操作系统成为手机销售的加分项
           - 2)手机操作系统一般都是与手机进行捆绑销售,也就是买手机一般内置操作系统。
           - 3)用户反馈,以及公司内部负责系统优化的工作人员进行详尽的项目测试,再之后操作系统一般通过定期发布更新来处理Bug。开发版一般一个星期更新一次,而稳定版一个月更新一次。操作系统一般通过版本推送来让用户进行系统更新。
           - 4)操作系统之类的竞争分为两种。其一:就是操作系统操作流畅性、功能的齐全性以及应用兼容性等(这类竞争一般存在于新兴操作系统之间)。其二:就是该操作系统整体UI设计是否迎合大众审美(这类竞争一般存在于成熟操作系统之间,由用户的喜好决定)
          
           - 手机应用——网易云音乐
           - 1)通过介绍该应用的优点,例如网易云音乐的最重要优点就是很多人会对歌曲进行评论,而且其中的很多评论都很有意义,就像一个音乐播放器与一个音乐论坛的结合。
           - 2)通过应用商店中的应用推荐之后下载
           - 3)用户反馈,然后进行详尽的测试,再通过推送的方式,应用市场的更新提示以及进入应用时的推送提醒。
           - 4)根据个人喜好以及某些不可抗因素决定使用哪款手机音乐应用。
          
           - 游戏——球球大作战
           - 1)通过创新化的游戏玩法以及公平的竞技平台等多方面特点吸引我,该游戏盈利主要并不靠游戏内盈利。个人觉得这款游戏并没有以赚取用户资金为目的。
           - 2)通过下载
           - 3)通过详尽的项目测试,之后修复Bug然后同样再通过版本更新来处理Bug。
           - 4)暂时没有同类型的操作游戏与其竞争,但该游戏软件已开始处于衰落期,俗话说就是已经过气了。
           
           - 软件与硬件不同
           - 1.从本质上来说,软件是抽象的而硬件是形象的。
           - 2.软件具有很大的优化空间,而硬件被制作出来后就很难对其功能有较大的优化。
           - 3.软件的运行需要硬件的支持,软件与硬件只有协同工作才能发挥用处。
           
           - 软件的本质特性
           - 1.软件是抽象的、无形的
           - 2.软件必定会经历开发、成长、成熟、衰落;而软件工程师很大一部分作用就是尽可能延长成熟这一阶段的时间        
          
        • 团队作业:同学们根据自己的爱好和情况组成5-6人的项目小组,选出组长。

        • 将上述作业在作业截至之前发布在自己的博客,不准抄袭,一经发现,本次作业倒扣5分。

  • 相关阅读:
    FormsAuthentication.HashPasswordForStoringInConfigFile方法再.net core中的替代代码
    git 删除分支和回退到以前某个提交版本
    .net core 2.1控制台使用Quartz.net实现定时任务执行
    CodeForces
    CodeForces
    CCF 201709-2 公共钥匙盒
    POJ
    CodeForces
    (转)Django vs Flask vs Pyramid: Choosing a Python Web Framework
    (转)Seven Ways of Centering With CSS
  • 原文地址:https://www.cnblogs.com/1500802029xy/p/6718440.html
Copyright © 2020-2023  润新知