软件工程第一次作业
软件工程第一次作业
——关注《构建之法》的作者邹欣老师的博客
——花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。(https://git.coding.net/Youmeme/dyg.git)
——大致地浏览完邹欣老师的《现在软件工程构建之法》,书是写得很有趣,还配有插图,这增强了我阅读它的兴趣。但是我也产生了以下几点疑惑:
1.浏览完以后,感觉就像读小说一样,但是我真的不知道它对我们有什么用?所以我更不知道怎样去学好这门课程?
2.开篇邹欣老师就说了“软件 = 程序 + 软件工程”,以前写软件或者说程序,就只是写程序,最多会考虑到数据结构的知识,很少会用到软件工程,但是随着学习的深入,代码量的累积,如果还是和以前一 样只是关心程序只要是可用的,实际可运行的,那么就没有意义了对吗?
3.读完第五章团队与合作之后,各种模式还是很模糊,团队开发的时候如何确定适合的模式,是不是很重要呢?
4.我个人认为第八章的需求分析在我们的生活中更适用吧,但是对于一个初学者的我来说,怎么样才能做到与用户更好的交流?最大限度地实现用户的需求?书上讲的都太抽象了,能不能再具体化一点呢?
5.我看了十三章软件测试最后的一部分后知道了还有历史上的20大Bug这回事,这让我很感兴趣,软件开发过程中Bug不可避免,我们可以不断测试找出错误加以修改,但是程序中的Bug一定能被找出来吗?那为 什么还有历史上的20大Bug呢?
——软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。
1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
3)这些软件是如何处理Bug的?又是如何更新新的版本的?
4) 同一类型的软件之间是如何竞争的?
——百度糯米(手机应用)
1)在百度上看到一些广告是关于百度糯米的,于是就下载了,最后发现百度糯米的活动真的是超多,优惠很多,货比三家以后,甚至于抛弃了最初的美团和后来又尝试的大众点评。他们的目标自然应该是盈利吧。
2)我是从应用商店里下载的。
3)同一类的像我用过的有美团和大众点评,竞争是一些活动上的竞争,比如节假日推出一些优惠活动吸引更多的用户使用。发展趋势我感觉还是蛮好的,因为随着智能手机的普及,现在几乎是人手一部手机,而且中青年的都是智能手机。下载使用都很方便,然后对于生活来说真的是很有利处,尤其是对于比较爱玩的年强人来说更是省钱娱乐的好助手。所以我觉得发展前景还是很好的。
4)我觉得一二十年应该不会被淘汰的,因为现在不管是手机还是娱乐餐饮业都很发达,随着人们生活水平的不断提高,这种软件只会越来越进步,越来越满足人们的需求,短时间之内我想应该不会被淘汰吧。
——腾讯QQ:
1)是在手机应用上下载的
2)很明显腾讯qq一系列附属业务全都是盈利性的,也就是聊天还能保持免费的属性。目标显而易见是为了赚取用户的现金。
3)刚开始使用也是跟着用户教程慢慢上手的,好处就是使很多年没见面的同学还能保持联系;坏处就是对此类软件也产生了一定依赖性。
4)还是会的,因为这个软件已经存活了十几年,用户范围太广了。大部分人的生活已经离不开他了。
——Cubase(工具软件)
1)我是从网上听说这款软件很专业且功能强大,然后也有很多教程和教学视频。这是一款加工音频的软件,目标应该是盈利吧,我不太清楚。
2)这款软件是我在买外置声卡的时候,卖家赠送的光盘,而且是正版的,于是我就安装了
3)学习就是看的网上的教学视频,好处就是能够进行简单的音频加工,不好的地方就是这款软件实在是太复杂了,而且我的是英文原版的,完全驾驭不了,感觉用起来很吃力。
4)我已经不用它了,如果需要音频加工的话,我也是用AU,因为Cubase实在是太复杂了,因为我不经常使用,所以学的东西很快就忘了,根本不能够顺利的操作这款软件。而且我是出于兴趣爱好用的,并不需要太强大的功能,我也只会用最最简单的那一点儿功能,那些简单易学的软件反而更适合我,所以我最后还是把这款软件卸载了。
5)应该会存在吧,毕竟音频编辑在生活中处处都可以用得到,声音作为人们接收信息的一种重要载体肯定不会消失,那么相应的加工软件应该也会一直都有。
——列举你在使用上述软件的时候观察到的 “特殊”现象,它们和硬件有什么不同? 这些能说明软件的某些本质特性么?
1)有时候会出现闪退,随着软件的更新占用的系统资源会越来越大,需要更加强大的硬件设施才能带的动
2)很人性化,会根据不同环境产生相应的适应性行为。硬件则是固定的,是什么就是什么。这就体现了软件的适应性,灵活性。