软件工程概述

发布时间 2023-11-28 21:32:45作者: 哆啦小火车

软件

  软件的定义,简单的说就是计算机程序和相关文档。软件产品可针对特定客户开发或为通用市场开发。
  值得说明的是,软件不等同于计算机程序,这种简单将其理解成计算机的理解是狭隘的。当我们讨论一个软件,他应该包括程序和所有使程序正确运行所需要的相关文档和配置信息。一个专业化的软件显然远远不止是一个程序。系统通常包含一些单独的程序,用于设置这些程序的配置文件,可能还包括描述系统结构的系统文档和解释如何使用该系统的用户文档,以及告知用户下载最新产品信息的Web站点。这里我提到了系统,实际上我认为 '系统' 一词就可以代表该软件的程序部分,该部分可能再包含了一系列的子系统。总之,上述的定义就已经说明了专业软件开发和业余软件开发的一个重要区别。如果你自己编写的这个程序,且除你外无其他用户,则无需大张旗鼓去书写指南和设计文档。但若是你的软件有其他的用户,会有别的工程师修改,则除了程序源码外,设计文档和指南等一系列附带信息,你就必须得提供。

软件工程

  软件工程是一门工程学科,涉及软件生产的各个方面,从最初的系统描述一直到投入使用后的系统维护,都属于其学科范畴。但是是在实际学习中,最开始我们的学习重心通常是落在开发方面,下面介绍两种开发方法的概述:

面向工程的结构化开发

  结构化开发方法由结构化分析,结构化设计和结构化程序设计三部分有机组成。结构化分析使用需求建模方法,以数据流图和控制流图为基础,由系统分析员划分出流变换函数,以得到系统的软件结构,并将其映射为软件功能。其次用状态迁移图来创建行为模型,用数据字典开发数据模型。
  从本质上说,它的关注点在函数过程来实现对现实世界的模拟,将其映射到计算机世界中。

面向对象的开发方法

  面向对象方法学认为,客观世界是由各种对象组成,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合起来。因此,面向对象的软件系统是由对象组成的,对象是软件模块化的一种新的单位。它将数据和过程封装在一起。适用于大型软件的开发。
  面向对象方法学有一个公式:面向对象方法 = 对象 + 类 + 继承 + 消息
  所以,如果做一个总结,那就是:面向对象方法学就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信的方法。具有稳定性好,可重用性高,可维护性强等优点。从过去至现在已经有了几十种面向对象方法。但尤其值得一提的是统一建模语言UML。

参考书籍

《软件工程》 鄂大伟 主编
《软件工程》 Ian Sommerville(英)
需要参考书籍的电子版可以和我联系: jiangdetutec@gmail.com