[置顶] 软件工程之基础篇

完成学生管理系统和机房收费系统后,一度以为自己对软件和软件工程已经有了一个清晰成熟的认知。但是学习过张洪志老师关于软件工程的教学视频后,才认识到自己之前对软件工程的了解还只是停留在一个感性认知的阶段。感谢张洪志老师和米老师给我提供一个系统学习软件工程的机会! 现在首先向大家介绍我对软件工程基础的理解,即对软件和软件工程的再认识。

软件

Mind Map

[置顶] 软件工程之基础篇_第1张图片

什么是软件?

软件是一个逻辑实体,它包括程序、数据和文档的完整集合。通俗点讲:做为计算机系统的灵魂,软件这一逻辑实体就相当于我们的思维;而做为计算机系统物理实体的硬件,相当于我们的躯体。

软件的特性

  • 首先,做为一种逻辑实体,一款优秀的软件具有良好的抽象性。
  • 软件的生产过程更多的体现的是逻辑思维的具象化,而没有硬件生成过程中明显的物理制造过程。
  • 在使用或者说运行阶段,软件没有硬件的磨损和老化问题;但这并不是说软件在使用过程中不会发生故障。

软件的发展和分类

  • 软件的发展

软件过程的发展经历了程序设计阶段、程序系统阶段和现在的软件工程阶段。而软件工程主要是为了解决软件危机,力争在系统科学的开发过程指导下,以最小的投入做出性能最优的软件。

  • 软件的分类

软件的分类方式比较多,一般我们可以按照软件的功能、规模、工作方式和服务方式等等一系列的分类标准对软件进行分类以方便我们的学习、整理和交流。

  • 按照软件功能进行软件的分类
按照此种分类方式,我们可以将软件分为支撑软件、系统软件和应用软件。我个人的理解是支撑软件是系统软件的基础,而系统软件又是应用软件的基础。其中支撑软件主要提供文本编辑、文件处理、数据传输以及提供半智能的功能;系统软件则为应用软件提供必要的运行环境:操作系统、数据库管理、设备驱动和通信处理;而应用软件则在支撑软件和系统软件的支持下,为工商农等行业的问题提供更为高效的解决方案。

至于按照其他分类方法对软件进行分类,请大家自行查看,我就不再赘述了。

软件工程

软件工程主要是为了解决软件开发过程中的问题,提供软件开发的科学合理的解决方案。张洪志老师的教学视频就是对软件工程进行详细解读的一份高效学习资料。

Mind Map

[置顶] 软件工程之基础篇_第2张图片

软件的定义和三要素

关于软件的定义,有众多专家提供的不同解释,有兴趣的伙伴可以自行查阅。我们完全没有必要记住每一个定义的具体内容,只要明白软件工程的使命是提供软件开发的科学合理的解决方案即可。而软件工程的三要素分别是:方法、工具和过程。具体来讲,软件工程的方法提供了软件开发的技术;软件过程的工具则为软件开发提供必要的开发环境;软件过程的过程规范了软件生命周期的各个阶段并提供质量管理。

软件生存期

就像我们人有人生旅程一样,软件同样具有自己的生命周期。软件的生命周期是为了以更小的投入获得更大的产出,主要包括下面这几个阶段:制定计划(问题分析、可行性研究)→需求分析→设计(概要设计、详细设计)→编码→测试(单元测试和组装测试等)→运行&维护。

结束语

           以上就是我对软件和软件工程的理论方面的认识,感谢大家的宝贵时间。虽然没有很具体的技术,但是我认为理论方面的学习也是非常必要的。一个技术如果没有一个优秀理论的指导,这个技术的合理性和发展性就值得我们仔细推敲了。

你可能感兴趣的:(开发,管理,软件开发,软件工程)