第8章 面向对象设计
分析模型:功能模型、分析对象模型、动态模型。
一、设计的概念
设计活动 设计也是一个建模活动,它在分析模型的基础上完成实现环境的类建模、状态图建模、协作建模、组件建模、部署建模、持久建模和用户界面原型,实现从需求分析到软件实现之间的跨越。
设计活动划分为系统设计和详细设计等两个主要阶段。
将系统模块化就是讲一个复杂的大系统分解成若干个相对简单的较小部分,称为子系统。子系统是一个定义明确的软件组件,它向其他子系统提供多种服务。
对系统进行层次分解,子系统划分为不同的层次,每一层次使用低层次提供的服务,并为高层次提供服务。系统分解的另一种形式是将系统分解为对等的子系统,每个子系统负责一个不同类型的服务子系统之间相互独立。
耦合度是表示两个子系统之间的关联程度。当一个子系统发生变化时对另一个子系统的影响很小,则称它们是松散耦合;反之,紧密耦合。耦合越低越好。
外部子系统访问语法分析树的两种方式:一种是使用分析树的属性,另一种是通过操作进行调用。
内聚性是子系统内部的相关程度。
系统设计的目标是划分子系统并使子系统之间是高内聚低耦合的,从而提高软件的可理解性和可维护性。
二、软件体系结构
软件体系结构涉及软件系统的总体组织、全局控制、数据存取以及子系统之间的通信协议等。
仓库体系结构,有两种不同的软件部分:一个表示当前的中心数据结构和一组相互独立的处理中心数据的子系统。
分层体系结构 层次化是一种概念,它将软件设计组织成为类或组件的层析或集合,在同一个层次上的类或组件完成一个特定的目的。
MVC体系结构 在MVC体系结构中,仔细划分为不同的三种类型:模型子系统负责存储系统的中心数据;视图子系统负责将模型中的数据展示给用户;控制器子系统负责管理与用户的交互控制。
客户机/服务器体系结构的两种形式:瘦客户机模型、胖客户机模型。
在管道和过滤器体系结构中,数据在不同的子系统之间流动,每一个子系统处理输入的一组数据,并将处理结构输出给其它子系统。这是,子系统称为过滤器,子系统只见得联系称为管道。
三、系统设计
在系统设计阶段,当选择软件体系结构策略之后,需要将分析模型中的分析类与设计模型的设计元素相对应。在确定设计元素之后,需要描述子系统的行为,也就是准确定义接口操作的集合。
常用的数据存储管理有3中方式:数据文件、关系数据库、面向对象数据库。
部署子系统。
系统设计评审。
四、详细设计:方法建模(方法的命名、方法的可见性、BorrowerInfo类的方法建模)、属性建模,状态建模、关系建模。
五、应用设计模式: Abstract Factory模式、Adaptor模式、Bridge模式、Facade模式。
六、用户界面设计
用户设计原则:用户控制式,一致性,个性化,宽容度,反馈,审美和可用性。