软件设计基本概念

模块与构件

模块(Module)

  • 模块是一个拥有明确定义的输入、输出和特征的程序实体。如函数、过程、子程序、宏等。
  • 若模块的所有输入都是事先功能必不可少的,所有输出都有动作产生,即成为定义明确的模块。

软件构件(Software Component)

  • 可重复使用的软件组件。
  • 现有的可复用构件,大多是在对象的基础上创建。

抽象与细化

抽象

  • 提取客观世界中一群事物的某些本质共性,而暂时忽略他们的非1本质的细节,是一个从特殊到一般的过程。
  • 分层次考虑和处理问题(数据和过程)
  • 过程抽象:把完成一个特定功能的动作序列抽象为一个过程名和参数表,以后通过指定过程名和实际参数调用此过程。
  • 数据抽象:把一个数据对象的定义抽象为一个数据类型名,用此类型名可定义多个具有相同性质的数据对象。

细化

  • 从高到低的逐步分解过程。

信息隐藏

定义

  • 把系统分解为模块时应遵守的指导思想。

基本思想

  • 模块内部的数据和过程,不需要这些信息的模块不可访问;
  • 每一个模块只完成一个相对独立的特定的功能;
  • 模块之间仅仅交换那些完成系统功能必须交换的信息。

目的

  • 提高模块的独立性,当修改或维护模块时减少把一个模块的错误扩散到其他模块中去的机会。

软件复用

  • Design with reuse, design for reuse.
发布了236 篇原创文章 · 获赞 145 · 访问量 44万+

猜你喜欢

转载自blog.csdn.net/u011944141/article/details/103930287