软件工程第一次作业

Posted qqhuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程第一次作业相关的知识,希望对你有一定的参考价值。

一、自动生成小学四则运算题目

  我用的是C++写的自动生成小学四则运算,实现了简单的小学加减乘除计算并判断是否正确,支持整数及真分数运算,最后显示答对题目的个数   coding地址为:https://coding.net/u/huang180/p/Childrenmath/git/tree/master/?public=true

二、软件的特点

1.手机应用:主要指安装在智能手机上的软件,完善原始系统的不足与个性化

现在的手机应用软件很多,有手机浏览器,视频播放器,游戏,音乐播放器等等。大部分是以盈利为目的,记得以前的酷狗音乐是不收费的,到现在听一些音乐便开始收费了,一些应用一开始确实会让你免费使用,当有了足够的用户来使用的时候,他们便开始增加一些收费项目,以此来盈利(不过现在大部分软件都是为了能赚钱来更好的维持应用的成本)。他们通过在QQ,浏览器,网页上打广告来推广自己的应用,这些应用一般只要点开就开始询问你是否要下载,有的甚至直接开始下载。目前的手机应用大部分是用户反馈其BUG,例如闪退,卡屏等,之后他们会开始修复BUG,不过一些小的应用可能不会去修复,因为使用的人不多。手机应用大部分在手机软件商店里都可以进行更新,有的会当你打开该应用时询问你是否更新,有的则必须要更新才能继续使用。同一类型的软件依靠自己的页面设计,创新功能,用户需求等来竞争。同一款软件最后存活下来的只有最好的几个,大部分用户都会选择人气高,使用方便,功能更完美的软件。

2.操作系统:操作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。

现在最常用的操作系统有:WINDOWS操作系统 、UNIX操作系 、MAC操作系统 、Linux操作系统,我现在电脑的操作系统是windows10,windows10以前一开始是收费的,现在是免费的,我的电脑刚买的时候就安装的是windows10系统,一开始的时候还是试用版。现在的盗版软件很多,百度上搜索免费windows系统很多,一些软件也有免费版的。当我的电脑关机的时候,有时候会出现正在更新系统,以此来更新版本。

3.工具软件:在使用电脑进行工作和学习时经常使用的软件

我们的电脑上都会安装一些工具软件,这些工具软件分为办公软件:Office、WPS        聊天软件:QQ、旺旺        浏览器:搜狗浏览器、谷歌浏览器、360浏览器          杀毒软件:360、金山毒霸      音乐播放器:QQ音乐、酷狗音乐      视频播放器:腾讯视频、优酷视频、暴风影音      等等还有很多不同功能的软件,这些软件都是为了方便用户操作,实现其目的。大部分用户都不懂计算机该怎么怎么用,他们喜欢这些软件一键式操作,例如卸载软件,他们不会在电脑中慢慢寻找怎么卸载程序,而是喜欢打开360软件管家或其他软件,来一键卸载。软件产生的目的就是为了方便用户操作。现在大部分软件都是从网上百度下载,或是下载一个软件管家,在里面一键下载安装所要的软件。hao123这个网站在以前一直以来为用户的默认网址,因为在这里面用户可以很快捷的打开他们所需的网页。

这些软件的特点都是方便快捷来满足用户的需求,使用比较方便。

硬件和软件最大的区别是一个不仅能看到还可以用手触摸,如硬盘,光驱等等,而软件你能在设备上使用,不能触摸到。二者缺一不可,没有软件,光看硬件也做不了什么,而没有硬件,软件也使用不了。软件是人类创造的最复杂的系统类型,我们看不到它的运行方式,而且软件也在不断地更新。

 

三、在一周之内快速看完《构建之法》,列出你不懂的5-10个问题

1.我看了第22页:让单元测试产生”demouser.dll“的代码覆盖报告;有这个问题:单元测试是什么?怎么用来测试的?代码覆盖率用来干什么?;我查了资料,单元测试指对软件中的最小可测试单元进行检查和验证,检验被测代码的一个很小的、很明确的功能是否正确。代码覆盖率是软件测试中的一种度量,描述程式中源代码被测试的比例和程度,衡量测试好坏的指标。如何进行测试?测试的用例怎样才能完整?

2.我看了第六章:敏捷流程;有这个问题:怎样才能做到敏捷?敏捷流程做项目就一定快,质量高吗?;我查了资料,敏捷是在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。;但是我还是不太懂,在敏捷流程中将项目切分,到后期一定能将子项目连接起来吗?当一个重要子项目很难实现或无法实现时,其他项目就算实现了还能成功吗?

3.我看了第212页:网站地址栏允许最长输入400万个字符,适合做缓冲区溢出攻击;有这个问题什么是缓冲区溢出?怎样进行缓冲区溢出攻击?我查了资料,缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统宕机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程序转而执行其它指令,以达到攻击的目的,但我还是不懂,该怎样避免缓冲区溢出?怎样禁止输入过长字符?

4.我看了第346页:伟大的创新就紧随其后,我不是很赞同作者的观点,一个创新确实要紧随其后,不过这个创新最后是否有价值,是否只要坚持就能实现。答案当然是不一定,国外有个科学家在研究以光来传输wifi信号,在室内只要开了灯就可以上网,大大提高人们的网速。不过没多久这个项目就销声匿迹了,也许是难以实现,也许是开发成本太高,最后难以推广。有创新固然好,不过还是要考虑最后是否有价值,是否能实现。

5.我看了第350页:迷思之三;一开始我也不习惯使用Dvorak式键盘,但由于经常使用也就渐渐习惯了,我认为一个好的键盘布局确实更加适用,不过由于习惯问题导致一直以来我们都没有去使用其他键盘布局,我反对作者原始布局的优点反而变成了缺点,既然它是优点,又怎么会是缺点呢。我们需要的是时间去习惯或者是从小的时候就开始接触。这个键盘布局应该推广给没有接触电脑键盘的人或是刚开始使用电脑的人,将它的优点推广出去,从刚开始去接触去习惯,当有了推广实践,优点自然不会成为缺点。

 

以上是关于软件工程第一次作业的主要内容,如果未能解决你的问题,请参考以下文章

软件工程第一次作业

21软件工程第一次作业

软件工程第一次作业

软件工程实践 · 团队项目 第一次作业

软件工程第一次作业补充

软件工程管理——第一次作业