面向对象的基本概念有对象、类、抽象、封装、继承、多态性、接口、消息、组件、模式和复用等。
对象 是由数据及其操作所构成的封装体,包含三个基本要素,分别是对象标识、对象状态和对象行为。
类 是现实世界中实体的形式化描述,类将该实体的数据和函数封装在一起。类的数据也叫属性、状态或特征,它表现类静态的一面。类的函数也叫功能、操作或服务,它表现类动态的一面。
对象是类的实际例子。如果将对象比做房子,那么类就是房子的设计图纸。
类和对象的关系 可以总结为:① 每一个对象都是某一个类的实例。② 每一个类在某一时刻都有零或更多的实例。③ 类是静态的,它们的存在、语义和关系在程序执行前就已经定义好了,对象是动态的,它们在程序执行时可以被创建和删除。④ 类是生成对象的模板。
抽象 是通过特定的实例抽取共同特征以后形成概念的过程。
封装 是将相关的概念组成一个单元,然后通过一个名称来引用它。
继承 表示类之间的层次关系,这种关系使得某类对象可以继承另外一类对象的特征(attributes)和能力(operations),继承又可分为单继承和多继承,单继承是子类只从一个父类继承,而多继承中的子类可以从多于一个的父类继承。
多态性 是一种方法,这种方法使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。多态性使得一个属性或变量在不同的时期可以表示不同类的对象。
接口 就是对操作规范的说明。接口在面向对象分析和设计过程中起到了至关重要的桥梁作用,系统分析员通常先把有待实现的功能封装并定义成接口,而后期程序员依据此接口进行编码实现。
消息 (Message)是对象间的交互手段。
组件 是软件系统可替换的、物理的组成部分,它封装了实现体(实现某个职能)。并提供了一组接口的实现方法。
模式 是一条由三部分组成的规则,它表示了一个特定环境、一个问题和一个解决方案之间的关系。
复用 是指将已有的软件及其有效成分用于构造新的软件或系统。
面向对象系统分析的步骤:①发现角色∕参与者;②发现用例;③建立用例模型;④进行领域分析;⑤建立对象—关系模型;⑥建立对象—行为模型;⑦建立功能模型。
“4+1”模型:从五个不同的视角来描述软件体系结构,每个视角只关心系统的一个侧面,五个视角结合在一起才能反映软件体系结构的全部内容。这五个视角分别为:逻辑视图、开发视图、进程视图、物理视图、场景视图。
统一建模语言 (Unified Modeling Language,UML)是一个通用的可视化建模语言,它是面向对象分析和设计的一种标准化表示,UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。UML标准包括相关概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。
UML中主要有4种关系:依赖关系;关联关系;泛化和实现关系。
UML具有如下的语言特征。
(1)不是一种可视化的程序设计语言,而是一种可视化的建模语言。
(2)是一种建模语言规范说明,是面向对象分析与设计的一种标准表示。
(3)不是过程,也不是方法,但允许任何一种过程和方法使用它。
(4)简单并且可扩展,具有扩展和专有化机制,便于扩展,无须对核心概念进行修改。
(5)为面向对象的设计与开发中涌现出的高级概念(如协作、框架、模式和组件)提供支持,强调在软件开发中,对架构、框架、模式和组件的重用。
(6)与最好的软件工程实践经验集成。
UML中的各种组件和概念之间没有明显的划分界限,但为方便起见,用视图来划分这些概念和组件。视图被划分成三个视图域:结构视图、动态行为和模型管理。
(1)结构视图包括静态视图、用例视图和实现视图。
(2)动态行为描述了系统随时间变化的行为。行为用从静态视图中抽取的瞬间值的变化来描述。动态行为视图包括状态机视图、活动视图和交互视图。
(3)模型管理说明了模型的分层组织结构。包是模型的基本组织单元,特殊的包还包括模型和子系统。模型管理视图跨越了其他视图并根据系统开发和配置组织这些视图。
UML提供了如下9种主要的图来对待建系统进行建模。用例图(Use Case Diagram)、类图(Class Diagram)、对象图(Object Diagram)、构件图(Component Diagram)、部署图( Deployment Diagram)、状态图(State Diagram)、序列图(Sequence Diagram)、协作图(Collaboration Diagram)和活动图(ActMty Diagram)
设计范式(也称为范式、数据库设计范式、数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范式。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF)。范式级别越高,存储同样数据就需要分解成更多张表,数据库性能(速度)也将提高;随着范式级别的提高,数据的存储结构与基于问题域的结构之间的匹配程序就随着下降;随着范式级别的提高,在需求变化时数据的稳定性将变差。
RUP是软件工程的过程。它提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算的前提下,确保满足最终用户需求的高质量产品。
RUP的6个基本最佳实践经验如下:迭代式开发;需求管理;使用以组件为中心的软件架构;可视化软件建模;验证软件质量和控制软件变更。
RUP将周期又划分为4个连续的阶段,即初始阶段、细化阶段、构造阶段和交付阶段。
面向对象的分析模型由用例和场景表示的功能模型(用例模型)、用类和对象表示的静态模型(对象模型)、由状态图和顺序图表示的动态模型(交互模型)组成。