UML健壮性图解析与面向对象设计原则

需积分: 0 1 下载量 165 浏览量 更新于2024-07-11 收藏 13.99MB PPT 举报
"这篇资料主要介绍了Robustness图在系统分析与设计中的应用,强调了其在UML类图中的表现形式以及面向对象分析与设计的基本原则。" 在系统分析与设计的过程中,Robustness图是一种重要的建模工具,它最初由Ivar Jacobson提出,用于描绘系统的结构和交互。在UML中,尽管Robustness图最初的概念更接近于协同图,但现在通常表现为类图的形式。在这样的类图中,有三种特定的对象类型来表示系统的不同组件: 1. 边界对象(Boundary Object):边界对象代表了系统的用户界面或者外部系统与系统交互的接口,它们负责接收和传递用户的输入和系统的输出。 2. 实体对象(Entity Object):实体对象通常来源于领域模型,它们代表业务领域中的关键实体,如数据库中的记录或者持久化的数据。 3. 控制对象(Control Object):控制对象起到中介的作用,连接边界对象和实体对象,它们通常作为控制器,协调系统的操作,但并不总是表示实际的运行时对象。 Robustness图通过这种方式提供了一种可视化的方式来理解和设计系统的架构,确保系统在面对变化时具有一定的健壮性。面向对象设计的原则在此过程中扮演了核心角色,例如: - 封装:通过隐藏对象的内部细节,只暴露必要的接口,使得系统更易于维护和扩展。 - 继承:允许创建新的类基于已有的类,共享属性和行为,减少了代码重复并提高了灵活性。 - 多态:允许使用基类的指针或引用操作派生类的对象,提供了更大的可扩展性和代码复用。 - 模块化:通过将功能分解为独立的模块,每个模块都有明确的职责,降低系统的复杂性,便于管理和修改。 文章提到了在功能分解方法中遇到的问题,例如无法应对未来的变更,以及代码的维护困难。为了解决这些问题,面向对象设计倡导模块化和抽象,通过函数或方法封装特定的功能,使得修改或增加新功能时只需要影响有限的代码区域。例如,使用函数根据形状类型动态调用显示函数,当添加新形状时,只需要添加新的case到switch语句中,而不会影响到其他部分的代码。 此外,文章还提到了需求变化对软件开发的影响,用户需求和开发者理解随着项目进展可能会发生变化,软件开发需要适应这种变化,保持其灵活性和可扩展性。这进一步强调了面向对象设计原则的重要性,特别是设计时应考虑到未来可能的扩展和修改,以确保软件的健壮性和可持续性。