软件开发主流开发方法:
- 结构化开发方法
- 面向对象开发方法
结构化程序设计
结构化程序设计:自顶向下、逐步求精、模块化
结构化程序设计步骤:
- 结构化分析(Structured Analysis,SA):需求分析
- 结构化设计(Structured Design,SD):系统概要设计、详细设计
- 结构化编码(Structured Program,SP)
主张按照功能将软件系统划分,也称为面向功能程序设计,每个功能都有输入输出,函数就是结构化程序设计的最小单位。
自顶向下:每个模块包含子模块,子模块又包含子模块
逐步求精:先完成大体结构,再具体到小功能(主函数作为入口, 将其他众多函数串起来)
缺点:
- 不直观,需要将客观世界抽象为具体功能
- 扩展性差,修改实现方式,需要自顶向下的修改模块结构
面向对象程序设计
面向对象:使用类、对象、封装、继承、消息等基本概念进行程序设计,根据客观事物进行抽象来构造软件系统。
类是面向对象程序设计的最小单位,是具有共同属性方法的一类事物,是对客观事物进行抽象模拟,通过公共方法暴露该类提供的功能,从而提高内聚性,降低耦合,类是由方法和属性组成:
成员变量(状态数据) + 方法 (行为) = 类定义
对象:是类的具体实例,反应客观事物,具有标识唯一性、分类性、多态性、封装性、模块独立等。
消息:对象直接相互通信合作,需要“消息”机制完成
面向对象的三大特征:
- 封装(Encapsulation)
- 继承(Inheritance)
- 多态(Polymorphism)
- 封装是指将对象的具体细节隐藏起来,使用公共方法暴露对象的功能
- 继承是面向对象实现软件复用的手段
- 多态则是指子类对象赋值给父类引用,编译时类型为父类,运行时类型为子类,意味着统一类型对象,可能表现多种特征。
抽象也是面向对象的重要组成部分,但是所有编程语言都需要抽象,抽象只考虑部分可归类的问题,不考虑所有细节。
面向对象软件开发三个阶段
面向对象软件开发,需要经过三个阶段:
- OOA(面向对象分析):建立分析模型,文档化
- OOD(面向对象设计):使用面向对象对OOA细化
- OOP(面向对象编程):实现OOD