软件工程第一次作业补充

花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。

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

1.如何利用单元测试准确高效的保证程序基本模块的正确性?(第二章2.1)
* 单元测试是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。我在看完第二章时对单元测试这个问题感到困惑,在目前的学习生活当中,我从未接触过单元测试,不知道如何去写,也不知道怎样控制时长,也不理解如何能够将单元测试自动化。尤其是当我看到“100%的代码覆盖率并不等同于100%的正确性!”(见构建之法P27)的时候,我更加困惑,假使我完成了单元测试,又该怎样去判断它的准确性和高效性?

2.如何掌握效能分析的度?(第二章2.2)
* 效能分析是根据影响效能的主要因素,运用一般系统分析的方法,在收集信息的基础上,确定分析目标,建立综合反映某事物达到规定目标的能力测度算法,最终给出衡量某事物效能的测度结果。效能分析能有效地帮助我们分析程序的效能,让我们更好的优化程序,但是我们应该在什么时候,进行什么程度的效能分析呢?

3.在实际开发过程中如何判断是否需要选择敏捷流程?(第六章)
* 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。但是,我们如何判断我们所开发的项目是否需要敏捷开发呢?

4.怎样理解并有效运用MSF?(第七章)
* MSF是一套大型系统开发指南,它描述了如何用组队模型、过程模型和应用模型来开发Client/Server结构的应用程序,是在微软的工具和技术的基础上建立并开发分布式企业系统应用的参考。框架结构可以增强分析和开发大型项目的能力。MSF能够确定项目最大的风险在何处,强调制定计划和确定进度,确保成功发布一个产品所必备的条件。
* MSF积累了三个关键的成功因素:
* 一种帮助提供技术决策指南的观点。
* 一组反复跟踪、监控和管理项目及其进展的参考方法。
* 一致的重用性保证在灵活的计算环境中有效的利用已有的知识和技能。
但是我们从未接触过MSF,我们应该怎样着手去运用它呢?

5.如何培养自己分析和创新的能力?(第九章,第十六章)
* 在读完本书之后,我深知对一个软件开发人员来讲分析问题的能力和创新研发的能力有多么的重要,但我一直按部就班的学习和生活,自觉天资不够,分析问题只能看到片面的部分,发现问题时也想不出什么新颖的解决思路,这些都不利于我今后的发展和成长,我该进行怎样的训练才能有效的提高分析和创新的能力呢?

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

  • 一、QQ
    我从小学开始接触腾讯QQ这个软件,从一开始它只是聊天的工具,只具有简单的界面和单一的功能,到今天成为人人必备的通信软件,不仅能聊天,通话,视屏,还实现了游戏娱乐、张扬个性的功能。
    QQ的特点:
    1.高适用性:QQ用户多,可以不分人群。
    2.精准、有针对性:QQ的特点是一对一交流及圈子内小范围交流,而这种交流方式可以让我们对用户进行更加精准和有针对性的推广,甚至我们可以根据每个用户不同的特点进行一对一的沟通。这种特点,是其他方式所不具备的。
    3.操作简单:.与其他营销推广方法的专业性和繁杂程度相比,QQ推广真的非常简单。只要你会打字、聊天,那就可以成为一名QQ高手。
    4.近乎零成本:QQ申请是免费,近乎是不需要花钱的。
    5.持续性:由于QQ推广第一步是先与用户建立好友关系,所以我们可以对用户进行长期、持续性的推广。
  • 二、淘宝
    1.首先低廉商品价格是罪主要的优势所在,很多人都是为了低价去淘宝购买的。
    2.其次,淘宝在质量监管上面的力度比较得当,特别是在正品商品的限制上很多,采用的积分评价制度,可以让买家看到更多的信息,在有关投诉的问题上,处理的相当严格。
    3.许多重要信息都是采用身份证的验证制度,保障了卖家的身份有效性。便于客户维护自己的权益,特别是支付宝的使用,解除了众多买家对于钱财的担忧。
    4.为用户提供了庞大的信息量,满足了大部分用户的需求。
    5.以购物为目的行为,配合其他信息的服务,促进了商品浏览量,进而促进了商品的成交率。
    6.阿里巴巴、阿里软件、阿里妈妈、淘江湖、口碑网、淘宝平台环环相扣为卖家解决了从货源,库存到推 广销售等一系列的问题。
    7.社区营销提升了商品的交易率。
  • 三、王者荣耀
    5V5王者峡谷、5V5深渊大乱斗、以及3V3、1V1等多样模式一键体验,热血竞技尽享快感。海量英雄随心选择,精妙配合默契作战。10秒实时跨区匹配,与好友组队登顶最强王者。操作简单易上手,一血、五杀、超神,极致还原经典体验。实力操作公平对战,回归MOBA初心。
      1.5v5越塔强杀超神。5V5经典地图,三路推塔,呈现最原汁原味的对战体验。英雄策略搭配,组建最强阵容,默契配。
      2.随时开团。最适合手机的MOBA游戏,10分钟享受极致竞技体验。打野迂回,手脑配合,一战到底。人多,速来。
      3.公平竞技好玩不坑拼实力。凭实力carry全场,靠技术决定胜负。不做养成,不设体力,还你最初的游戏乐趣。
      4.指尖超神秀操作。微操改变战局。手速流、意识流,力压群雄,打出钻石操作。收割,连杀超神。
      5.手机开黑跨服匹配。掌上竞技,随时开黑,一次玩个痛快。亿万玩家同时匹配,跨区实战酣畅淋漓,争夺王者宝座。

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

  • 我用过的软件大多数情况都是通过身边的朋友介绍使用的。
  • 新软件的目标只是为了扩大用户群,提升知名度,并不注重盈利,但是当用户群扩大到一定范围,有了一定的知名度之后,盈利的目标就渐渐浮现出来了,像QQ,视屏网站就提供冲钻和冲会员服务,以微小的差距区分用户使用的满意度,游戏是通过花钱买装备,提升游戏的战斗力,其他软件在用户群扩大到一定范围时,通过融资、上市来盈利。最后的目标却不只是现金,而是名利双收。

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

  • 通过各大软件下载平台下载。

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

  • 通过用户反馈,制定修改方案,开发升级包,并向用户和各大软件下载平台推送升级包,供用户下载更新。

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

  • 通过推出不同的特色功能以及用户福利来竞争用户群。

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

  • 软件中有时存在一些bug,他们看不见,摸不着。不像硬件存在发热,响声大等现象。体现出了软件是程序或代码的集合的本质特征。
posted @ 2017-04-19 20:36  1500802064  阅读(154)  评论(0编辑  收藏  举报