模块化的根据: 设函数C(x)定义问题x的复杂程度,函数E(x)确定 解决问题x需要的工作量(时间),对两个问题P1和P2: 如果C(P1)>C(P2),显然E(P1)>E(P2) 根据人类解决一般问题的经验 C(P1+P2)C(1+C(P2) 综上所述,得到下面的不等式 E(P1+P2)>E(P1)+E(P2)
模块化的根据: 设函数C(x)定义问题x的复杂程度,函数E(x)确定 解决问题x需要的工作量(时间),对两个问题P1和P2: ◼ 如果C(P1)>C(P2),显然E(P1)>E(P2) ◼ 根据人类解决一般问题的经验, C(P1+P2)>C(P1)+C(P2) ◼ 综上所述,得到下面的不等式 E(P1+P2)>E(P1)+E(P2)
每个程序都相 应地有一个最 最小成本区 软件总成本 适当的模块数 M 目M,使得系 接口成本 统的开发成本长 最小。 成本/模块 模块数目 模块化和软件成本
◼ 每个程序都相 应地有一个最 适当的模块数 目M,使得系 统的开发成本 最小。 模块化和软件成本
模块化的作用: 采用模块化原理可以使软件结构清晰,不仅容 易设计也容易阅读和理解。 模块化使软件容易测试和调试,因而有助于提 高软件的可靠性 模块化能够提高软件的可修改性。 模块化也有助于软件开发工程的组织管理
模块化的作用: ◼ 采用模块化原理可以使软件结构清晰,不仅容 易设计也容易阅读和理解。 ◼ 模块化使软件容易测试和调试,因而有助于提 高软件的可靠性。 ◼ 模块化能够提高软件的可修改性。 ◼ 模块化也有助于软件开发工程的组织管理
522抽象 抽象:现实世界中一定事物、状态或过程之间 总存在着某些相似的方面(共性)。把这些相似 的方面集中和概括起来,暂时忽略它们之间的 差异,这就是抽象。 抽象就是抽出事物本质特性而暂时不考虑细节。 “抽象是人类处理复杂问题的基本方法之 -Grady boach
5.2.2 抽象 ◼ 抽象:现实世界中一定事物、状态或过程之间 总存在着某些相似的方面(共性)。把这些相似 的方面集中和概括起来,暂时忽略它们之间的 差异,这就是抽象。 ◼ 抽象就是抽出事物本质特性而暂时不考虑细节。 ◼ “抽象是人类处理复杂问题的基本方法之 一。” ——Grady Boach
一般抽象过程: 处理复杂系统的唯一有效的方法是用层次的方 式构造和分析它。 个复杂的动态系统首先可以用一些高级的抽 象概念构造和理解,这些高级概念又可以用 些较低级的概念构造和理解,如此进行下去, 直至最低层次的具体元素。 例:过程抽象、数据抽象
一般抽象过程: ◼ 处理复杂系统的唯一有效的方法是用层次的方 式构造和分析它。 ◼ 一个复杂的动态系统首先可以用一些高级的抽 象概念构造和理解,这些高级概念又可以用一 些较低级的概念构造和理解,如此进行下去, 直至最低层次的具体元素。 ◼ 例:过程抽象、数据抽象