OOA:软件开发过程中分析并综合用户需求,建立问题域精确模型的过程
结果是,对问题论域的清晰精确的描述。
一是:形式地说明所面对的应用问题,最终形成软件系统基本构成的对象,还有系统所必须遵从的,由应用环境所决定的规则和约束。
二是:明确地规定构成系统的对象如何协同合作,完成指定的功能。
三类模型:对象模型、功能模型和动态模型。
对象模型->动态模型->功能模型->对象模型
对象模型:对象模型是三个模型中最关键的一个模型,作用是描述系统的静态结构,包括构成系统的类和对象,他们的属性和操作以及它们之间的联系。
五个层次:类与对象、属性、服务、结构和主题。
关联:组成系统的类与类之间联系
两种形式:整体与部分的结构和泛化与特化的结构。
整体与部分的结构:也叫组装结构,表示聚合。
泛化与特化结构:也叫做分类结构,具有继承性。
其他关联结构:
主题:可看成是高层的模块或是子系统,通过对主题的识别,将这些对象和类做进一步的组合。
动态模型:着重于系统的控制逻辑。
包括两个图:状态图和事件追踪图。
功能模型:着重于系统内部数据的传送和处理。
功能模型定义做什么,动态模型定义何时做,对象模型定义对谁做。
OOD:四个组成成分,问题论域、用户界面、任务管理和数据管理。
UML:两大类九种图形支持建模。
静态建模:用例图、类图、对象图、构件图和配置图。
动态建模:顺序图、协作图、状态图和活动图。
UML特点:统一的建模语言、支持面向对象、支持可视化建模和强大的表达能力。
用例图:用例图用来建模系统所要实现的功能。
包括:角色(Actor)、用例(Use Case)、系统边界、角色与用例之间和用例与用例之间的关联(Association)。
角色:指的是与系统有交互行为的类,可以是人、外部系统和时间等。
用例:是系统要执行的动作序列,用来描述系统的功能。通常由角色驱动,并把执行结果反馈给角色。
关联:表示的是角色与用例之间的驱动与反馈关系,也可以表示用例间的包含(Include)与扩展(Extend)关系。
简单用例图:
类图与对象图:类图反应了系统中对象之间的抽象关系,如关联(Association)、聚合(Aggregation)和泛化(Generalization)等关系。
简单类图:
关联:可分为,普通关联、限制关联、多重关联、递归关联、有序关联和关联。
普通关联:类之间的一种连接关系,它的存在时类的双方能够通过指向对方类的指针(私有属性)而索引到对方。具有方向性。
限制关联:用于一对多或者多对多的关联。
泛化:描述类之间一般与特殊的关系,表示类之间的继承关系。
在UML中类之间的泛化关系用带空心箭头的实现表示,从派生类指向基类。
聚合:描述类之间整体与部分的关系。表示整体的类称作聚合体,部分的类称作聚合元素。
在UML中聚合关系用一条带空心的菱形箭头的实线表示,从聚合元素指向聚合体。
共享聚合:聚合元素对象可以属于多个不同的聚合体对象。
组成聚合:当聚合体对象被删除或撤销时,它所拥有的聚合元素对象随之消亡的聚合关系。
类图和对象图的关系:和类与对象之间的关系一样,是抽象与具体的关系。
对象图是类图中的类在某时刻全部实例化后的快照框图。
类图:
包:吧系统划分成不同的主题曾或子系统,属于同一个主题层的元素放在同一个包中,主题层之间的依赖关系表现为包的依赖关系。
构件图:用来建立系统实际结构的模型,由最终组成系统的各种构件组成,并表示这些构件之间的依赖关系。
配置图:用于整个系统的物理配置建模。
UML中配置图包括三种元素:处理器、设备和连接。
动态建模:建立系统的动态结构模型。
UML动态建模机制包括交互图、状态图和活动图。
交互图分为:顺序图和协作图。
顺序图:顺序图是用来描述用例中对象之间的动态交互关系,着重体现对象间交互时的时间顺序关系。
对象图:
协作图:对象间的动态交互关系,强调对象间的协作关系。
状态图:用来建模系统中的某个类对象、子系统或整个系统在起生命周期内出现的状态、状态的迁移和迁移条件。
活动图:用于描述用例。
重要作用,描述系统中多个并发活动。