软件工程第一次作业

一、花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。

此次作业用c++完成。代码地址:

https://coding.net/u/xushoubao/p/sizeyunsuan/git/blob/master/1.cpp?public=true

写的不太好,还有缺陷,下次多多努力的。

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

问题一:第二章个人计技术与流程:23页单元测设,它有三个创建步骤,但是每次写的代码似乎没有涵盖完全,我看到书中有一段话是:“小飞说:软件有的写了好几年但还是没有发布,是因为单元测试没有写全,造成了很多bug要处理,在软件后期修复要花更多的时间”,我就感觉单元测试很麻烦,没有特定的模板,代码每次修改最好是由作者自己亲自动手,感觉对于软件是不是太浪费时间了?如果错误了是不是还需要本人修改呢?他人帮忙的话有可能会造成错误呢?
问题二:第六章敏捷流程:第117页上面说的是:“各个需求和任务之间是有种种复杂的依赖关系的,怎养在计划中体现依赖关系呢?”这种依赖关系是从那个方面考虑的?我们首先要考虑到它的优先级关系再其次是它的依赖度,但是如果出现依赖关系太复杂,而造成的时间不够的问题我们该如何解决呢?难道真是要向书上所述的那样冒风险在某些平台上实现吗?
问题三:第七章:215页MSF团队模型:“测试团队会要求做到下面两件事,1是要发现这些产品的问题,2是使这些问题得到处理”但是“处理”的结果并不能让用户满意该怎么办呢?书上说的处理方案感觉都是对用户的不负责任,这个模型似乎只是维护了团队里的利益,而并没有对用户的权益作出保障啊。
问题四:典型用户和场景:我们可以定义软件内部的典型用户,既然我们可以定义用户,我们为什么要定义这种不受欢迎的典型用户呢?从用户需求上来说我们这样定义并不能使每个用户都能使用,但我的看法是从宏观来说我们可以排除这些不必要的典型用户,使我们的软件更加符合某些特定用户。
问题五:软件测试:286页“探索类”的测试Ad hoc从书中的解释是特定的一次性的,这种测试方法感觉另辟蹊径,我们到底要不要掌握它呢?书上说正常使用软件时一般不会出现问题,但如果实际上出现的问题真的能用这种方式来找出问题的关键呢?

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

三、基于企业或学校或组织内部的软件、游戏和手机应用的相关论述
1企业或学校或组织内部的软件
你是如何成为他们的用户的?他们的目标都是盈利么?
首先可以了解一下它是怎么诞生的,他们对应的应该是员工、学生、成员这三种类型的人,它应该要求严格的保密性,应为该种类型人员特定使用,避免了有关内部消息的走漏,可以有效防止公共财产的损失。所以公司老总肯定会自己向有关开发商定制合适的软件,它并不盈利,或者说它说获取的财富是保证公司内部财产不流失。
这些软件是通过什么进入你手机里的?
当然首先它(软件)对自己有用而且大部分的应用是免费的,即使收费,它也能产生更
的经济效益,它获取而方式很简单,通过手机自带的软件商城你可找到适合自己的软件。
2游戏
这些软件开发者是怎么说服你成为游戏的用户的?
首先它的由来不必赘述了,基本上所有的男生都比较喜欢玩游戏。游戏可以放松紧张的工作压力,而且如果内部的游戏画面体验和快感很符合你的口味的话,你会不自觉成为它的拥护者的。
如果手机游戏出现问题该怎么办呢?又是如何更新新的版本的?
手机上可以通过它的方便携带的特性,刺激了消费人群在手机上下载游戏,如果出现不正常的游戏问题,如强退、密码登录失败等问题,它开通客服人员可以接收你反应的问题,一有问题技术人员就开始维修,很多游戏开发商是不定期更新来修补软件内部的bug,而且出一些全新的服务来吸引大众,并作出一定的补偿,避免了客户的流失。
3.手机应用
这些软件开发者是怎么说服你(陌生人)成为他们的用户的?
通过你对某些功能的需求,它们开发适合你的软件,并且用免费来吸引你的眼球。
这些软件是如何到你手里的?
通常都是自己下的,因为对自己有用,少部分是朋友介绍的,和他们进行相同的活动培养自己人际交往的能力。
这一类型的软件之间是如何竞争的?
用户通常都是介绍、大众点评的、看评分的人群,所以软件之间竞争激烈,要想脱颖而出,必须要有不同于他人的应用功能,内存小、功能多是成功的软件必备的。
4列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
首先这些软件大部分都是免费的,只有内部一些特殊的应用要收费,这样从消费人群那里获取足够的利益;其次它们都是可以反复卸载安装的,避免用户大部分流失。硬件就不同了,它的功能很强大,但是缺乏持久性,它不能随意卸载,一旦卸载就可能造成硬件件内部功能的缺失,且无法修补,软件就不同了,可是它需要不定时的维修保养,功能并不强大,所以说这两种各有千秋吧!

原文地址:https://www.cnblogs.com/xushoubao/p/8637983.html