目录
一、结构化设计常用工具
概要设计:结构图SC、层次图H图、HIPO图(IPO图I指输入、P处理、O输出+H图)
详细设计:程序流程图也即程序框图、盒图N-S图、PAD图(问题分析图)、PDL
二、面向对象设计
考的较少,面向对象为对象+分类+继承+通过消息的通信。核心概念包括对象、类、消息、继承、封装、多态性、动态绑定。
-
对象(Object)
- 对象是现实世界中某个实体的抽象表示,具有状态(属性)和行为(方法)。
- 对象是类的一个实例。
-
类(Class)
- 类是对象的蓝图或模板,定义了对象的属性和方法。
- 通过类,我们可以创建多个具有相同属性和方法的对象实例。
-
消息(Message)
- 在面向对象编程中,对象之间通过发送消息进行通信。
- 消息通常是一个方法调用,它告诉一个对象去执行某个操作或返回某个值。
- 消息传递是面向对象编程中对象之间交互的主要方式。
-
继承(Inheritance)
- 继承是一种类之间的关系,允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。
- 通过继承,子类可以重用父类的代码,同时添加自己的属性和方法。
- 继承是实现代码重用和扩展性的重要手段。
-
封装(Encapsulation)
- 封装是将对象的属性和方法隐藏在一个单一的单元(类)中,只对外提供必要的接口(公有方法)。
- 通过封装,我们可以控制对对象的访问,保护其内部状态不被外部程序直接修改,从而提高程序的安全性和可维护性。
- 封装是面向对象编程的三大特性(封装、继承、多态)之一。
-
多态性(Polymorphism)
- 可以有不同的权限。
- 多态性是指在同一个类或接口中,可以有多种不同的实现方式或表现形式。
- 在面向对象编程中,多态性通常表现为子类可以覆盖父类的方法,并在运行时根据对象的实际类型来决定调用哪个版本的方法。
- 多态性可以提高代码的灵活性和可扩展性。
-
动态绑定(Dynamic Binding)
- 动态绑定是指在运行时根据对象的实际类型来确定调用哪个版本的方法,而不是在编译时确定。
- 动态绑定是多态性的实现方式之一,它允许我们在运行时根据对象的实际类型来调用不同的方法。
- 通过动态绑定,我们可以实现更加灵活和可扩展的代码。
静态绑定是编译的时候就绑定了,面向对象设计是动态绑定。
三、UML
UML(Unified Modeling Language,统一建模语言)是一种用于对软件密集系统进行可视化建模的标准语言。UML 为软件开发的所有阶段提供了图形化建模的表示法,包括需求分析、系统设计、详细设计、编码和测试等。UML 定义了多种不同类型的图表,每种图表都针对软件开发的不同方面。
UML是统一建模语言,包括构造块、规则、公共机制。
父类到子类都是泛化关系,子类到父类是继承关系。
构造块包括事物、关系、图。
事物:结构事物、行为事物、分组事物、注释事物。
关系:依赖关系、关联关系、泛化关系、实现关系。
图:类图、对象图、包图、组合结构图、构件图、部署图、制品图、用例图、交互图(顺序图、通信图、定时图、交互概览图)、状态图、活动图。
以下是一些UML 中常用的一些图表类型及其简要描述:
-
用例图(Use Case Diagram)
- 展示系统的外部用户与系统之间的交互,以及这些交互所执行的功能。
- 主要元素包括参与者(Actor)、用例(Use Case)和它们之间的关系(如包含、扩展等)。
-
类图(Class Diagram)
- 展示系统中的类、接口以及它们之间的关系(如继承、实现、关联、聚合和组合等)。
- 类图中可以包含类的属性、方法和它们之间的可见性(如公有、私有、保护)。
-
序列图(Sequence Diagram)
- 展示对象之间交互的顺序,强调时间顺序。
- 主要用于描述用例的行为,显示对象之间的消息传递顺序。
-
活动图(Activity Diagram)
- 展示业务过程或操作的工作流,强调活动之间的流程控制。
- 活动图可以用于描述用例的详细行为或业务过程。
-
状态图(State Diagram)
- 展示类的对象在其生命周期中的状态变化。
- 主要用于描述类的行为随外部刺激而变化的方式。
-
通信图(Communication Diagram)
- 与序列图类似,但更强调对象之间的组织结构。
- 通信图通过展示对象之间的连接来反映系统的组织结构。
-
组件图(Component Diagram)
- 展示系统的物理结构,即软件组件之间的依赖关系。
- 主要用于描述系统的可部署单元(如文件、可执行文件、库等)。
-
部署图(Deployment Diagram)
- 展示系统的物理部署结构,即软件和硬件的物理配置。
- 主要用于描述系统中的节点(如计算机、设备)以及它们之间的通信和交互。
-
包图(Package Diagram)
- 展示系统中的包(即逻辑分组)以及它们之间的依赖关系。
- 包图可以帮助组织和管理复杂的模型结构。
-
对象图(Object Diagram)
- 是类图的一个实例,展示了类的对象实例(对象)以及它们之间的关系。
- 对象图主要用于描述系统在某一时刻的静态结构。
部分内容来自最近的听课内容的总结。