面向对象的设计( OOD )通过模块化信息及其加工方法而不单单是加工方法来让数据对象和加工操作得以互相连接。这个过程依赖于三个极其重要的设计概念:抽象、信息隐藏、和模块化。所有的设计方法都力争展现这些特性;但只有 OOD 的机制才能使设计者能够无需增加复杂性或加以折衷就获得所有三种特性。在 OOD 中,我们有 objects (对象) , operations (操作) ,和 messages (消息) 。 Objects (对象 ) , 又称作类,可以是人、机器、命令、文件、汽车、房子,等等。 operations (操作) , 包含了私有的数据结构和用于变换数据结构的加工方法。 messages (消息) 用于激活调用操作控制和对象的程序构造。这就是说对象的共享部分是其的接口而消息在接口之间移动并指定希望使用对象的何种操作,但并不知道操作是怎样具体实现的。对象在收到消息之后决定如何来执行消息。现在让我们来看看在面向对象的系统中的某些工具是如何使用的:
1. 伪代码 - 接近计算机编程语言的指令,但使用的是近似英语的语言而不是真正的编程语言以便于查看程序逻辑。下面是一个加工文件中的记录的范例 :
Start ( 开始 )
Initialize program ( 初始化程序 )
Read a record ( 读一个记录 )
Process record ( 加工记录 )
Move record to print area ( 将记录移至打印区 )
Write a line ( 写一行 )
End job ( 结束任务 )
Stop run. ( 停止运行 )
2. 原型 - 在开发软件包的第一个版本或模型,或者计算机硬件准备好作生产前测试时的步骤。通常可以使用您所喜爱的 RAD 工具来创建。
3. TOE 图表 - (Task 任务 , Object 对象 , Event 事件 图表 ) 用来展示需要完成的任务或工作、执行工作的对象、以及完成此过程的事件或动作。请看下面将两个数相加的 TOE 图表:
任务、对象、事件
启动程序 Main Form OnStartup
输入第一个数 EdtFirstNumber User types in
输入第二个数 EdtSecondNumber User types in
求和 EdtResult OnClick
程序退出 BtnExit OnClick
正如您在上例中所见,这正确说明了要执行什么、谁来执行、以及什么时候来执行。
软件开发过程是随着开发技术的演化而随之改进的。从早期的瀑布式(Waterfall)的开发模型到后来出现的螺旋式的迭代(Spiral)开发,以致最近开始兴起的敏捷开发方法(Agile),他们展示出了在不同的时代软件产业对于开发过程的不同的认识,以及对于不同类型项目的理解方法。其次,注意区分软件开发过程和软件过程改进之间的重要区别。诸如像ISO15504,ISO9000,CMM,CMMI这样的名词阐述的是一些软件过程改进框架,他们提供了一系列的标准和策略来指导软件组织如何提升软件开发过程的质量、软件组织的能力,而不是给出具体的开发过程的定义。例如:“敏捷开发”(AgileDevelopment)是软件工程的一个重要的发展。它强调软件开发应当是能够对未来可能出现的变化和不确定性作出全面反应的。敏捷开发被认为是一种“轻量级”的方法。在轻量级方法中最负盛名的应该是“极限编程”(ExtremeProgramming),简称为XP)。而与轻量级方法相对应的是“重量级方法”的存在。重量级方法强调以开发过程为中心,而不是以人为中心。重量级方法的例子比如CMM、PSP、TSP。
面向侧面的程序设计(AspectOrientedProgramming),简称(AOP)被认为是近年来软件工程的另外一个重要发展。这里的方面指的是完成一个功能的对象和函数的集合。在这一方面相关的内容有泛型编程(GenericProgramming)和模板。