面向对象的方法学是一种在软件工程中广泛采用的现代软件开发方法,它旨在解决传统方法学在软件开发过程中遇到的问题,如生产率低下、重用性差、维护困难以及难以满足用户需求。本教程主要介绍了面向对象方法学的基本概念、对象模型和功能模型,以及软件项目估算的方法。
传统软件工程方法学的问题主要体现在生产率缓慢提升、软件重用程度低、维护难度大以及不能满足用户需求。这些问题源于僵化的瀑布模型,导致需求模糊、沟通不足,以及结构化技术的局限性。为了解决这些问题,出现了快速原型法和螺旋模型,这些折衷方案有助于提高需求理解和风险管理。
面向对象方法学的引入,旨在更贴近人类的思维方式,以对象为中心进行问题解决。它强调问题空间与解空间的一致性,模拟客观世界的动态特性,并通过类和对象、分类、继承和消息传递来建立模型。Coad & Yourdon在1991年的定义中,将面向对象方法学概括为对象、分类、继承和通过消息的通信。
在面向对象方法学中,类和对象是核心概念。对象是一个封装了数据结构和在其上操作的实体,而类是对具有相同属性和行为的对象的描述。类中的数据称为属性,操作称为方法。对象间通过消息传递进行通信,这是一种反映系统动态特性的构造。
此外,面向对象方法学还包括聚合关系、关联关系和继承关系。聚合关系表示“整体—部分”关系,如汽车与发动机之间的关系;关联则描述对象之间的相互依赖和作用,如电脑与显示器的关联。继承关系是“一般—特殊”的关系,允许子类继承并扩展基类的特性,例如轿车是汽车的一种,笔记本电脑是电脑的一种。
在软件项目估算方面,除了传统的行数(LOC)法,还介绍了功能点法。功能点法基于信息域值,而非直接的软件功能,通过对输入、输出、查询、文件和外部接口的估算,结合历史数据和平均生产率来计算项目成本和工作量。这种方法有助于更准确地评估项目的规模和复杂性。
面向对象方法学提供了一种更灵活、更适应变化的软件开发框架,通过类和对象的抽象、继承和多态性,提高了软件的可维护性和复用性。同时,功能点法等估算方法帮助软件工程师更好地规划和管理项目,以满足不断增长的软件需求。