> 文档中心 > 软件工程概述——现在才知道自己喜欢的不是计算机,而是软件开发

软件工程概述——现在才知道自己喜欢的不是计算机,而是软件开发

软件工程概述

    • 软件工程概述
      • 一、软件工程的由来
      • 二、软件工程的基本原则
      • 三、CASE?
      • 欢迎关注我、共勉:star:

软件工程概述

最开始的时候,我以为自己喜欢的是计算机,到现在才发现,自己喜欢的是做软件——这二者之间的差别实在是太大了

在我草草学完Java基础,学完Python基础,甚至是学完C那会儿,就有很大的冲动做一个属于自己的小游戏,但是尽管提出的idea很小,其实现如果没有严谨的步骤支撑,很很难达到预想的效果

对于非软件工程专业,但也还是计算机大类的我来说,尽管已经学习了很多东西:但是当到了自力更生做一个”小东西“,却发现开头难,过程难,结果…那时候已经没有结果了

软件工程概述——现在才知道自己喜欢的不是计算机,而是软件开发

慢慢看,好好学,多练练——基础确实是很重要的,但是更重要的是学会使用,这些大道理也是摆在许多书上的“基础知识”

一、软件工程的由来

一切的个人遇到的问题都可以在时代的洪流中找到对应的启示

——在20世纪60年代前,那时的软件基本上就是自给自足,完成一个小小的功能即可,但是随着需求的增加、设计的复杂、规模的增长,自给自足的生成模式已经完全不能满足当时的需求了。

类似于从一个人的“刀耕火种”到集体的“屯田合作”,软件的开发也开始寻找起了科学的指导思想,而不是一股子劲蛮干——就像我一样,每次到达一定的规模,很小的规模就好似无从下手了。

软件危机的具体体现其实可以概括为以下几点:

  • 开发效率慢,难以按时交付
  • 结构差,不易理解,没有说明文档
  • 需求变更或者添加,难以修改扩张

从设计到开发,从开发到维护,那时的人们筚路蓝缕,在一片未知的海域随波逐流,就像我们中的一些一样——不知道怎么做,也不知道做成什么结果…

软件工程概述——现在才知道自己喜欢的不是计算机,而是软件开发

万幸!!!事情解决了,从1968年提出软件工程概念一来,软件的 工程化思想得到了长足的发展,如今我们有了经得起时间考验的软件开发的方法学——包含了:

  • 更规范的组织协同方法(软件开发过程模型)
  • 更成熟的实践经验技术(重构和设计模式)
  • 更好的软件工具(CASE-计算机辅助软件工程)

现在:我们应该把软件的生成看成一项严谨而规范的工程项目,就像修一栋高楼一样,不仅仅只是一点模糊的轮廓支撑,更需要学习系统的管理过程,设计结构,规范文档和编码

二、软件工程的基本原则

仅仅列出作为参考(由于作者资历浅薄故不做画蛇添足的补充),其中奥秘无穷,有很多值得延申迁移的地方:

  • 分阶段的生命周期计划来管理生产过程
  • 需要进行阶段性评审
  • 严格的产品控制
  • 在适当的基础上选择先进的技术
  • 结果可视以便审查
  • 开发人员应当少而精
  • 以上原则都因随时代进步

三、CASE?

自20世纪40年代电子数字计算机出现之后,软件开发一直约束了计算机的广泛应用。为缓解“软件危机”。60年代末提出了软件工程的概念.要求人们采用工程的原则、方法和技术开发、维护和管理软件,从此产生了一门新的学科.即软件工程。

制造业、建筑业的发展告诉我们,当采用有力的工具辅助人工劳动时.可以极大地提高劳动生产率.并可有效地改善工作质量。在需求的驱动下.并借鉴其他业界发展的影响.人们开始了计算机辅助软件工程的研究。早在80年代初,就涌现出许多支持软件开发的软件系统。从此.术语CASE被软件工程界普遍接受,并作为软件开发自动化支持的代名词。

从狭义范围来说,CASE是一组工具和方法的集合.可以辅助软件生存周期各个阶段的软件开发。广义地说,CASE是辅助软件开发的任何汁算机技术,其中主要包含两个含义:一是在软件开发和维护过程中提供计算机辅助支持;二是在软件开发和维护过程中引人工程化方法

从学术研究的角度来讲,CASE吸收了CAD、操作系统、数据库、计算机网络等许多研究领域的原理和技术.把软件开发技术、方法和软件工具等集成为一个统一而一致的框架。由此可见.CASE是多年来在软件开发方法、软件开发管理和软件丁具等方面研究和发展的产物

——百度百科

简单说——CASE是一套支撑软件开发的集合:

  • 工具:一致性检查工具、文档编辑器、程序编译器等
  • 工作平台:分析设计平台、程序设计平台、测试平台、代码管理平台等
  • 环境:软件集成开发环境…
    软件工程概述——现在才知道自己喜欢的不是计算机,而是软件开发

欢迎关注我、共勉⭐️

⭐️⭐️代码之狐⭐️⭐️
主要内容:

  • 时不时更新算法题解,算法与数据结构
  • 时不时分享心灵鸡汤,详见杂谈栏
  • 目前主要在学Java高级内容(虚拟机、框架什么的),会将书中的知识点提炼总结分享

怎么还没人关注我😢
软件工程概述——现在才知道自己喜欢的不是计算机,而是软件开发