1. 面向对象设计概述
在面向对象的方法中面向对象的分析和设计的界限是模糊的,分析设计是一个逐步扩充、逐步细化的过程,也是一个反复迭代的过程。
1.1 面向对象设计准则
- 模块化
结构化设计中,一个模块通常为一个过程或函数,而面向对象的设计中一个模块通常为一个类、对象或接口等。 结构化方法中,数据和对数据的处理是分离的,模块中封装的是一系列控制逻辑;在面向对象的方法中,数据和对数据的处理是封装在一起的,模块中封装的是事物的属性和操作。
- 抽象
面向对象方法不仅支持过程抽象,也支持数据抽象,类就是对一组具有相似特征的对象的抽象。
- 信息隐藏
信息隐蔽是通过类对象的封装性来实现的。对于用户来说,类对象中属性的表示方法和操作的实现算法是隐藏的,他们只能通过接口访问其属性和操作。
- 低耦合
耦合指的是不同类对象之间的关联程度。低耦合有利于降低由于一个类的改变而对其它类造成的影响。
- 强内聚
内聚是衡量一个类内部各元素之间彼此结合的紧密程度。一个类应该只有一个用途,否则就该分解为多个专用的类。
- 可重用性
软件重用是提高软件开发效率、提高软件质量的重要途径。首先,尽量使用已有的类,包括系统类库和以前开发软件时创建的类;其次,如果确实需要创建新类,应考虑将来重用的可能性。
1.2 面向对象设计步骤
面向对象的设计同样也可以分为概要设计和详细设计,概要设计主要是设计系统的环境模型、体系结构以及各个子系统,详细设计主要是类对象的设计。
- 设计系统的环境模型
定义与软件进行交互的外部实体以及它们之间的交互方式,外部实体包括人、其它软件系统和硬件设备。
- 设计系统的体系结构
将系统划分成若干子系统。可以采用自底向上的方法,即将某些对象组织成一个子系统,子系统一层一层组合,最后组合成软件的整体;也可以自顶向下,从划分子系统入手。
- 设计各子系统
包括问题域子系统、人机交互子系统、任务管理子系统和数据管理子系统。
- 对象的设计
首先对需求分析阶段类图细化和优化,重点是以问题域的对象设计为核心,最后得到一个详细的对象模型。
2. 设计系统的环境模型
2.1 环境模型设计方法和内容
在首先通过分析阶段的功能建模确定与软件进行交互的外部实体,包括人、其它软件系统和硬件设备;然后对它们的交互方式进行建模,并给出设计规格说明。
2.2 高校图书借阅系统案例
外部实体
- 图书管理员,对图书等信息进行维护和一些数据查询操作,需要为其设计合理的人机交互界面;
- 读者,包括高校的所有学生和教职工,所以登录、借书和还书以及查询界面应尽量简洁实用,操作简单、方便、快捷;
- 刷卡、扫码机,使用本软件完成借、还书功能的硬件,用于扫描校园卡和图书二维码,需要设计相应的软、硬件接口;
- 支付宝、微信支付系统,用于完成超期交罚款的功能,目前很多软件都与这些支付系统相关联,接口技术已成熟。对于本系统可以通过扫描二维码进行付款。
创建环境模型
3. 设计系统的体系结构
3.1 体系结构概念
体系结构是操作系统之上的基础设施软件、实现计算逻辑的主体应用程序、方便使用的用户界面程序。
Bass、Ctements和Kazman给出定义: 一个程序或计算机系统的软件体系结构包括一个或一组软件构件、软件构件的外部的可见特性及其相互关系。
“软件外部的可见特性”是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。
3.2 C/S体系结构
客户/服务器(Client/Server,C/S)体系结构是基于资源不对等,且为实现共享而提出来的,有三个主要组成部分:数据库服务器、客户机应用程序和网络。
3.3 B/S体系结构
览器/服务器(Brower/Server,B/S)体系结构,通过浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。
B/S简化了客户端,它无需像C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。
3.4 高校图书借阅系统案例
现在的PC机基本都是联网的,而通过浏览器上网浏览信息也是人们普遍的上网方式,所以如果图书借阅系统采用B/S体系结构,那么用户通过PC机网络进行图书借阅和信息查询会非常方便、快捷。
4. 面向对象设计案例
4.1 机票预定系统的业务流程
- 航空公司操作员录入航班信息并对其维护,可以查询、统计旅客信息、订单信息以及航班信息。旅客首次进入系统需要注册,在此系统中订票、取票和退票,系统对订票、取票和退票信息进行审核,旅客接收订票成功通知、机票和退票成功通知。旅客还可以查询航班信息,查询和修改个人基本信息,查询个人订单。另外系统时钟在旅客行程当日发送行程通知,提醒旅客有预订航班几点起飞,以免忘记行程。
- 航空公司操作员在旅客已取票情况下,可以在期限范围内为旅客完成退票,操作流程与旅客退票流程基本相同。
4.2 机票预订系统环境模型设计
4.3 机票预订系统体系结构设计
机票预订系统可以采用B/S体系结构,用户通过互联网预定机票会非常方便、快捷,其结构可以设计: