课程主教材和参考教材
(一)软件的定义、种类
2种比较经典的软件的定义:
第一个定义来自于《计算机科学技术百科全书》, 它是指计算机系统中的程序及其文档。 程序是 计算任务的处理对象和处理规则的描述,而文档是为了了解程序 而做的阐明性资料。 那么程序加文档合在一起构成软件, 这与我们以前理解的软件只是指程序是有区别的。 文档作为软件很重要的组成部分,它可以来自于软件生命周期的各个阶段, 例如在需求分析阶段形成的软件需求规约,在设计 阶段形成的软件设计规约,在测试阶段形成的测试计划等等, 都是文档的重要组成部分。
第二个定义来自于 Sommerville 的《软件工程》一本书, 它是指计算机程序和相关的文档。 那么软件产品可以为特定的 客户开发,也可以为一个专门的市场开发。 那么这里面实际上指出了软件产品可以是 为定制的、特定的人群开发,但是同时也可以是为 一类的人群,一个市场来进行开发。
软件后续的维护,将会占据软件成本的很大的比例
按照功能的划分,软件一般分为系统软件、支撑软件和应用软件:
系统软件:如操作系统、编译程序、编译器
支撑软件是指 支撑软件的开发、 维护和运行的软件。软件开发环境以及中间件是现代支撑软件的代表。软件开发环境中的各类数据库、 各类接口软件及软件工具组等 构成了支撑软件的三个方面
应用软件 指的是 特定应用领域专用的软件。
(二)软件开发的本质和基本手段
1、软件开发的本质
注:程序设计环境和中间件等 就构成了软件的运行平台,也被称为计算平台
软件的开发就是希望实现 从问题域中的问题 到运行平台上的 软件解的映射,即实现 问题域中的概念和处理逻辑,到运行平台上的概念和处理逻辑的映射
但是呢,这一映射很复杂,不太可能一步完成,为了控制映射的复杂性,所以我们在这个映射过程进行分层,进而实现了从问题域到需求层, 再从需求层到设计层,以及从设计层到实现层 等等的自上而下的这样的一个映射。
那么这个映射过程 就是实现了问题域到不同抽象层次之间 概念和处理逻辑的映射这也是软件开发的本质。
2、软件开发中实现映射的基本手段是:建模
3、系统建模、设计模式、应用框架
系统建模、 应用框架、 设计模式等术语 这些术语的提出是为了实现 问题域到不同抽象层次概念和计算逻辑的更好的映射
系统建模可以帮助我们更好地实现 从问题域中的概念和处理逻辑到需求分析 和设计层次的概念和处理逻辑的映射。(强调不同层次间的逻辑和概念的映射)
而以 MVC Glade Server 等设计模式,可以 帮助我们进行更好的软件设计,以提高软件设计的质量和效率。(强调更好地设计)
应用框架可以帮助我们进行更好地实现 软件系统,以提高软件的质量(强调更好地实现)