第一周作业
1.我选的题目是第四题
Dijkstra曾经提到:“Software engineering, of course,presents itself as another worthy cause,but that is eyewash: if you carefully read its literature and analyse what its devotees actually do,you will discover that software engineering has accepted as its charter ‘How to program if you cannot.’”[i]
软件工程是不是教那些不怎么会写程序的人开发软件? 你怎么看?
答:软件工程不是教那些不会写程序的人开发软件,在我看来,软件工程是从整体到细节,不同于传统的写程序,软件工程是用工程化的方法对软件进行研究与分析,包括软件需求的获取,软件测试,软件开发等众多环节,它不仅仅可以教会不会写程序的人对软件进行构架,它同样也可以教会不会编写程序的人对软件进行整体的分析与研究,软件工程是一项工程,它不仅仅从技术层面对软件进行研究,更多的是从软件的整体来规划软件,如软件的模型,框架等。因此,即使有人不会写程序,但他仍然可以学会开发软件,他学会的不是具体到开发软件的代码,而是开发软件的步骤,方法等一个整体的开发框架。
2.选一种你比较熟悉的软件,点评它的优缺点,并描述此类软件的发展历史。
答:我选的是操作系统,在众多操作系统中,不同的操作系统有不同的优缺点,如Android系统,windows系统,Mac操作系统,Linux操作系统等,在这里选取windows操作系统和Linux操作系统,windows操作系统的优点是:用户界面比较友好,简单直观;丰富并且与设备无关的图形操作;可以同时运行多个任务。缺点是:windows系统不是开源的,用户不可以从根本上对系统进行更改;windows程序不是相对独立的,软件的崩溃可能导致系统的瘫痪或者死机;系统存在很多漏洞,需要经常更新;windows系统有很大的安全问题,用户使用的杀毒软件等会占用较多的系统资源;垃圾较多,难以清理,软件卸载不干净。Linux的优点是:Linux是开源的操作系统,用户可以对系统的源代码进行更改,从而改造成适合自己的系统;Linux内核优化比较好,占用系统资源较少,很适合作为服务器使用;Linux具有较高的稳定性和高效性。Linux系统的缺点有:没有特定的支持厂商,而windows的操作系统的支持厂商是微软;图形界面不够友好。
windows系统的发展历史:
1985年windows1.0发布->1987年windows2.0->1990年windows3.0,首次加入了多媒体,并且该系统逐渐占据了个人电脑系统->1992年windows3.1,完善了上一版本系统
->1992年windows3.11,加入了网络功能和即插即用技术->1994年windows3.2,开始出现了中文版->1995年windows95,dos开始退出历史舞台,图形界面开始越来越友好
->1996年windowsNT4.0主要面向服务器市场->1998年windows98,改良了硬件标准的支持->2000年windowsMe,首次加入了系统还原功能->2000年windows2000->2001年windowsXP,是过去十几年里使用率最高的操作系统->2003年windows2003,服务器操作系统->2009年windows 7,是兼容性最高的操作系统->2012年windows8->2014年windows10.
Linux系统的发展历史:
1991年19月份,Linux v0.01发布,大约有一万行代码->1992年,Linux系统被hacker使用较多->1993年,100余名程序员对Linux的上一版本进行修改,此时Linux0.99版本代码大约有10万行,用户有十万左右->1994年3月,Linux1.0发布,代码有17万行->1995年,Linux系统用户突破了50万->1996年,Linux2.0发布,大约有40万行代码,并且可以支持多个处理器,全球大约有350万人使用->1998年Linux迅猛发展,同年Redhat5.0获得了infoworld的操作系统奖项->1999年,第一届LinuxWorld大会召开,象征Linux时代的到来->2000年2月,Red Hat发布了嵌入式Linux的开发环境,Linux在嵌入式行业的潜力逐渐被发掘出来->2002年,Linux系统开始企业化->2003年,Linux系统进军手机领域->2004年,Linux实现了同时支持256个Itanium 2处理器。
3.选取三种软件,请分析他们各自的特点:
我选的是游戏,手机应用,操作系统。
游戏的特点:娱乐性最强,可用于娱乐消遣,图形界面丰富,交互友好,因为娱乐性强,因此成为它的用户,他们得目标不都是盈利,还有推广,我通过下载获取它们,这些软件是通过定期更新来修补bug的,通过安装补丁来更新版本,同一类型的游戏软件依靠创新来竞争,游戏软件的发展趋势是大型3d网游,3d单机游戏。我个人第一次用该类软件是上小学的时候,希望它可以有更强的娱乐性,那个时候是买的正版。我是通过朋友那里学会这些软件的,优点是可以娱乐消遣,缺点是一旦沉迷便会影响学业。我现在偶尔还用它,我觉得这种软件10年后可能会有新的突破,如,在该类软件中加入虚拟现实等。
手机应用的特点:主要是可以运行在移动设备上,因为智能手机的普及,所以我逐渐成为它的用户,它们的目标不都是盈利,有的只是为了推广手机应用,这些软件是定期发布新版本的方法来修改bug和更新版本的,同一类的手机应用同样是依靠创新,从用户的角度出发,能更多解决用户的实际问题成为竞争的主力,这种软件随着智能手机的出现而出现,我个人第一次使用该类软件是在高中的时候,那个时候通过上网下载来获取这些软件,当时对该软件的期望是能有更好的更丰富的图形交互界面,这类软件优点是可以在移动设备上运行缺点是不方便一直,对于不同的手机操作系统有不同平台的手机应用,我现在经常使用它,我觉得这种软件10年后可能会统一平台,增强可移植性。
操作系统的特点:操作系统是最基本软件,是运行在硬件上的软件,可以通过操作系统来管理硬件,系统资源,并且可以管理以上两种软件,操作系统的优点是可以全面的管理运行在系统上的程序,包括资源等,缺点是开发难度打,经常需要更新来增强安全性,如果想使用智能设备,那么必须成为操作系统的用户,当然操作系统的目标不都是盈利,比如windows系统和Linux系统,这些软件是通过发布补丁来修补bug,定期会发布新版本,操作系统是依靠安全性,性能,用户友好程度等因素来竞争的,操作系统的发展趋势个人感觉是逐渐统一。我个人第一次使用该类软件是在小学,当时还不知道有操作系统的存在,我现在经常使用它,希望10年后变得更加安全,性能更加强大。