漫说软件工程

     说到软件工程,不得不提到我非常喜欢的一个计算机科学家Dijkstra对软件工程的形象概述,他说:“软件工程,是穷途末路的工程”。这句话,一方面说出了软件工程的起源,也形象的表达了对软件工程的无奈,和怀疑。

1.软件危机
     在计算机技术发展的初期,人们通常认为,软件就是程序,当时这样的说法是没人去怀疑的。那个时候,程序的开发通常是特定的硬件配合特定的程序,开发者和使用者通常为同一人,软件规模极小,很多很多程序都是一些简单的汇编。然后到了上世纪60年代后期,软件的规模已经发展到了一定的规模,人们逐渐发现开发的成本越来越高,软件的维护消耗的资源已经到了让人吃惊的地步,甚至不可维护。就这样出现了“软件危机的概念”,总得老说就是软件越来越难开发,越来越难维护,严重阻碍了计算机技术的发展,到了所谓的穷途末路。
2.软件工程
    “软件危机”的出现促使了软件工程的诞生。软件工程主要是对软件给出新的正确的认识,提出解决软件危机需要的开发方法和开发工具。比如,软件工程认为软件不仅仅是程序,它应该是程序、数据和文档的集合。
3.软件工程方法学
    软件工程主要包括方法学和管理方面的内容,是技术和管理结合成的工程学科。方法学主要是传统方法和面向对象方法。
3.1传统方法学
    传统方法学又叫结构化方法,就是结构化分析(SA)、结构化设计(SD)和结构化实现(SP),利用支持结构化方法的工具。
结构化方法将软件开发分为:需求、分析、编码、测试和维护。将软件周期分为不同的阶段,用相应的方法实现相应的阶段内容。
3.2面向对象方法
    当软件的需求比较模糊或者随时间变化比较大的时候,结构化方法开发和维护会很困难。最主要是结构化方法要么面向数据要么面向行为,没有将数据和行为结合起来。这时候出现面向对象方法,将现实世界抽象成数据和行为的结构体。
结构化方法是将一系列的工作顺序的实行,数据和行为分离,不符合现实世界的实际。而面向对象方法,完全模拟了现实世界的抽象归纳和继承发展。
当然面向对象的发展,主要得益于面向对象技术和工具的大力支持,比如从80年代兴起的面向对象语言以及统一建模语言(UML)。
4.软件开发过程
    软件开发过程是指软件开发的步骤和活动,,软件系统在实现过程中的所应用方法的。当然对应不同的开发方法,以及不同需求的项目,有不同适合的过程。常见的有:瀑布模型,快速原型模型,增量模型,螺旋模型。
统一过程模型是最数据化的过程模型,不过目前只适合在数学等相关研究领域用途。最近最热门的还由敏捷开发和极限编程,这样的方法对开发人员要求很高,更依赖开发人员的个人素质。
5.最新计算机技术发展
    新技术的发展将会对现有软件工程提出新的发展要求,以下主要说明云计算技术的发展以及对软件工程的发展。
最近几年发展最快的,感受最深的当属云计算技术,无论是快捷的阿里云服务还是随处可见的大数据服务,都是云计算发展的体现。云计算的发展改变了人们的生活方式,对软件开发的变革更是巨大无比。云计算将软件工程的面向对象,逐渐发展为面向服务。一个软件的很多子构建直接由云计算提供,使得人们将软件开发的重心从开发转移到需求分析,甚至有人提出了“网构软件”的概念。云计算还将用户和开发者联系到一起,完全改变了原有的软件工程的模式。虽然还不敢说云计算能够解决软件危机,但是其降低成本提高开发效率是看的见的,其使软件开发模式多元化,商业模式多样化是必然的。
    我个人来说,云计算对开发者的改变也是巨大的,我想有一天,小型的应用的开发者将就是用户本身,如果现在的程序员还停留在没有思想的码农生活中,势必会淘汰。
个人观点
    在我看来,软件工程如果是一个人,他一定是一个浪子。说他游手好闲,看起又是才华横溢,说他腹无实物,却又被普遍认可。回到起点,软件工程是在走投无路的情况下被逼的提出来的,他并不像其他工程那样建立在真正的科学的基础上,开发一个项目并不是说有软件工程就能很好的开发,没有软件工程就做不好,但是软件工程最大的好处就是在人们不知道怎么去开发的时候,告诉人们怎么去开发。
我觉得软件工程最大败笔就是被人过度的宣扬,膜拜,并没有认识到软件工程只是工具的本质。包括很多提出著名软件工程思想的科学家,他们并没有什么拿的出的实际作品,我就敢说他们就是胡吹而已,可是只要人们质疑他们提出的方法,他们总是能找出理由,开发者没有完全按照他的方法进行,我想他们自己真的能做到完全按照他们的开发思想做吗?就好像中国人发明的英语语法,语法确实有助于学习英语,但是把语法应试化,过度宣扬,导致了,哑巴英语,过度的软件工程宣扬造就的就是不会开发的软件工程师。

    不管是软件工程,还是新型的开发技术,都只是工具而已,这需要有充分的认识。工具的使用,只能使制造力的提高,加强了中国制造的标签,而中国真正缺少的是科学的计算机科学技术的教育体系。

魏思政
2015.10.12
计算机学院楼
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值