Fork me on GitHub

UML(1)

面向对象系统分析与设计(1)

专有名词

  • 分析:建立模型,收集需求

    • 专业定义:探索问题和需求,而不是解决方案。涉及的词汇:需求、用例、约束。
  • 设计:模型的实现

    • 专业定义:对能够满足需求的解决方案的概念性的描述,而不是具体的实现。涉及的词汇:对象、结构、部署、UI。
  • 面向对象系统分析与设计:

    1. 面向对象分析:强调对问题相关的对象或者概念的描述
    2. 面向对象设计:强调**对象的定义**,以及为了满足需求对象之间的进行的**合作**
      
  • 面向对象模型 OO 的作用:

    1. 便于找到解决关键问题的答案;
    2. 便于将现实世界的实体建模成软件对象,完成复杂管理;
  • 抽象数据类型 ADT:例:将后进先出的序列抽象为栈
  • 面向过程设计(设计思维:做某些事的规范、方法、理论等):
    1. 过程做选择;
    2. 选择过程实现的最好的算法,专注于 action 而不是 data;
  • 模块开发:
    1. 划分成细小的彼此关联的模块;
    2. 概括 + 抽象 = 信息隐藏
    3. 使用接口,接口的作用:
      1. 概括模块的内容,外部开发者无法获取到内部信息;
      2. 模块内部的改变不会改变接口,更不会影响到外部其他模块;
    4. 挑战点:
      • 定义好的模型;
      • 选择合适的软件结构;
      • 仅凭模块化并不足够;
  • 面向对象模型的 4 个元素:数据抽象,概括、继承、多态。
  • Programming 经历的几个阶段:
    1. 面向过程;
    2. 模块化编程
    3. ADT 编程;
    4. 面向对象编程;
  • 面向对象编程的优势:
    1. 编程人员精力偏向于软件接口和数据类型的设计,而不是底层实现;
    2. 提供增量的、迭代性软件开发,尽早发现 error,能够快速开发;
    3. 合适的接口,让软件稳定性提升;
    4. 能够更多思考将来的需要;
  • 面向对象编程的步骤: dice game 为例
    1. 定义用例——play a dice game;
    2. 定义主要模型——拆解概念、属性、关联,构成可视化的概念
    3. 定义关系图——描述关系,而非对现实世界的模仿
    4. 定义设计类图——阐述属性和方法,展示类 class,而不是现实世界的概念。
  • SDLC 系统开发生命周期,是理解信息系统如何支持业务需求,如何设计、此系统如何构建和如何移交给用户的过程。
    • 步骤分为:
      1. 项目设计阶段:识别问题;
      2. 分析阶段:调查、理解问题和需求;
      3. 设计阶段:详细描述解决方案;
      4. 实现阶段:建立解决问题的系统;
      5. 支持阶段:系统使用、维护、功能扩展
    • 有瀑布流、分步开发、并行开发、模板、即时模板等等表现形式
  • 方法、模型、工具、技术
    • 方法:综合性的指导,是模型、工具、技术的集合。
    • 模型:代表真实世界的某一面,但不完全等同于真实世界。举例:图表、项目计划。
    • 工具:创建模型等时的软件支持,从小的画图代码到大的软件工具都属于此类。
    • 技术:指南的集合,一步步的精准指示、或者简单的建议都属于此类。
  • 其他趋势:UP、XP、Scrum、Crystal Methods、TDD、FDD等,不详述
-------------The End-------------