软件工程——理论、方法与实践 之 面向对象基础
面向对象技术是软件工程领域中的重要技术,这种技术比较自然的模拟了人类认识客观世界的方式,是当前计算机软件工程学中的主流方法。面向对象方法认为:客观世界是由对象组成的,任何客观的事物或实体都是对象,复杂的对象可以由简单的对象组成;具有相同数据和相同操作的对象可以归并为一个类,对象是对象类的一个实例;类可以派生出子类,子类继承父类的全部特性(数据和操作),又可以有自己的新特征,子类与父类形成类的层次结构;对象之间通过消息传递相互联系;类具有封装性,其数据和操作等内容对外界是不可见的,外界只能通过消息请求进行某些操作,提供所需服务。面向对象的软件工程方法是面向对象方法在软件工程领域的全面运用,涉及到从面向对象分析、面向对象设计、面向对象编程、面向对象测试到面向对象软件维护的全过程。
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。由一组属性和对这组属性进行操作的一组服务组成。类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。封装是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。继承是指子类可以自动拥有父类的全部属性和服务。消息是对象发出的请求,一般包含提供服务的对象标识、服务标志、输入信息和应答信息等信息。关联是对象属性之间的静态联系,它通过对象的属性来表现对象之间的依赖关系。聚合是对象之间的组成关系,即一个(或一些)对象是另一个对象的组成或部分。多态性是指父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为。在日常生活中,建模已成为一项经过验证并被广为接受的工程技术。鉴于软件所具有的复杂性,以及人们对复杂问题理解的局限性,在软件开发过程中使用共同的建模语言进行软件建模是十分必要的,特别是对于大型复杂系统而言。软件模型一般包括数学模型、描述模型和图形模型3种类型,其中数学模型采用精确的数学公式来描述系统;描述模型采用自然语言以一种精确的方式描述系统的某一方面图形模型是以直观的方式示意性地表示系统的某些方面,有助于人们理解那些难以用自然语言来描述的复杂关系。
统一建模语言(UML)是一种直观化、明确化、构件和文档化软件系统产物的通用可视化建模语言。UML由视图、图、模型元素和公共机制等部分组成。常用的UML图包括用例图、类图、顺序图和状态图等。