面向对象分析和设计讲座6.从需求到设计

合集下载

面向对象分析与设计

面向对象分析与设计

面向对象分析与设计在软件开发过程中,面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是一种重要的方法论。

通过OOAD,开发者可以将现实世界中的概念和问题转化为软件系统的结构和行为。

一、什么是面向对象分析与设计?面向对象分析与设计是一种以对象为核心的开发方法。

它强调将问题领域的实体、关系和行为抽象为对象、类和方法。

面向对象的分析阶段主要关注问题领域的需求和约束,而设计阶段则更关注如何将需求转化为可执行的软件系统。

二、面向对象分析与设计的优势1. 模块化:面向对象的方法将复杂的系统拆分为多个独立的对象,每个对象都有清晰的职责和接口。

这种模块化可以提高代码的可维护性和可复用性。

2. 继承与多态:继承是面向对象编程中的重要特性,它允许新的类继承已有类的属性和方法。

多态则允许对象在不同上下文中表现出不同的行为。

这些特性使得代码更加灵活和易于扩展。

3. 封装与信息隐藏:面向对象的方法将数据和操作封装在对象内部,外界只能通过对象的接口进行交互。

这种封装和信息隐藏可以保护数据的完整性和安全性。

4. 规范化的开发流程:面向对象的分析与设计有一套规范的开发流程,包括需求分析、概念设计、详细设计和实现等阶段。

这种流程可以提高开发效率,并减少错误和重复工作。

三、面向对象分析与设计的过程1. 需求收集与分析:在这个阶段,开发者与用户密切合作,收集和分析系统的业务需求。

通过访谈、文档分析等方法,确定系统的功能、性能和约束等方面的要求。

2. 概念设计:在概念设计阶段,开发者将业务需求转化为概念模型。

通过绘制用例图、类图、状态图等工具,描述系统的结构和行为。

3. 详细设计:在详细设计阶段,开发者将概念模型进一步细化,确定具体的类和接口。

同时,还需要考虑系统的性能、安全和可维护性等方面的问题。

4. 编码与测试:在编码阶段,开发者根据详细设计的要求,使用具体的编程语言实现系统。

面向对象分析与设计基础知识全掌握

面向对象分析与设计基础知识全掌握

面向对象分析与设计基础知识全掌握在软件开发领域,面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是一种广泛应用的方法论。

它以对象为核心,通过抽象、封装、继承和多态等特性,实现对软件系统的理解和构建。

本文将全面介绍面向对象分析与设计的基础知识,帮助读者全面掌握这一方法。

一、面向对象思想的基本概念面向对象思想是现代软件开发的基石,理解其中的基本概念对于深入学习面向对象分析与设计至关重要。

1.1 类和对象在面向对象的世界里,类是对象的抽象和模板,定义了对象的属性和行为。

类可以看作是一种数据类型的定义,它具有封装、继承和多态的特性。

而对象是类的实例,是具体的、可以被使用的实体。

1.2 封装封装(Encapsulation)指将数据和对数据的操作封装在一个类中,通过访问权限控制,隐藏对象的内部细节,仅向外部提供必要的接口。

封装提高了代码的安全性和复用性,减少了代码的耦合度。

1.3 继承继承(Inheritance)是面向对象编程中的重要概念,它允许我们创建新的类,从已存在的类中继承属性和方法。

继承可以提高代码的可扩展性和复用性,实现了代码的层次化组织。

1.4 多态多态(Polymorphism)是面向对象编程中的另一个重要概念,它允许不同类的对象对同一消息作出响应,实现了不同对象之间的互换使用。

多态提高了代码的灵活性和可维护性。

二、面向对象分析与设计的过程面向对象分析与设计是一种系统化的方法,它通过一系列步骤来分析和设计软件系统。

下面是面向对象分析与设计的基本过程。

2.1 需求获取需求获取是面向对象分析与设计的第一步,通过与用户沟通、分析文档等方式,准确地理解用户的需求和期望。

在这一阶段,我们需要收集用户需求并进行整理和分析。

2.2 需求分析需求分析是根据获取到的需求,进一步分析需求的优先级、相互关系和约束条件等。

通过需求分析,我们可以消除需求的模糊性和冲突,为后续的设计工作提供准确的依据。

面向对象的软件需求分析与设计

面向对象的软件需求分析与设计

面向对象的软件需求分析与设计在当今信息时代,软件在人们的生活中扮演着越来越重要的角色,而软件需求分析与设计则是软件开发过程中的重要环节。

而对于软件需求分析与设计,面向对象的思想与方法更是成为了现代软件开发的主流。

一、面向对象的概念与基础面向对象编程(Object-Oriented Programming,简称 OOP)是一种以对象为基础、具有封装、继承和多态等特征的编程思想和编程方法。

在面向对象的世界里,一切都是对象。

对象是具有特定属性和方法的实体或事物,并与其他对象之间通过消息传递进行交互。

面向对象的设计模式则是针对软件设计过程中的一系列问题进行的总结和抽象,是为了解决软件设计中的一些常见问题而提出的通用解决方案。

常见的设计模式有工厂模式、单例模式、装饰器模式等,这些模式的封装、继承和多态等特征都体现了面向对象的思想。

二、面向对象的软件需求分析在面向对象的软件需求分析中,对象是指系统中的基本元素,每个对象都有自己的属性和方法。

面向对象的需求分析强调的是围绕对象进行分析和设计,通过对象之间的关系来分析和描述软件系统的需求,从而建立起系统的模型。

在面向对象的软件需求分析中,最主要的工具是用例,每个用例可以看成一个对象的描述。

用例中包含了该对象的名称、属性和方法等信息,可以与其他用例关联,形成用例间的关系。

通过对这些用例进行分析,可以得到系统所需要的对象及其之间的关系,从而形成系统的模型。

三、面向对象的软件设计在面向对象的软件设计中,对象则是软件的基本构建块,通过封装、继承和多态等特征来构建一个完整的软件系统。

面向对象的设计强调的是以对象为中心进行设计,通过划分模块和设计类与类之间的关系来构建软件系统。

在面向对象的软件设计中,最主要的工具是类图,类图是用来表示软件系统中的类和它们之间的关系的图形化工具。

类图中包含了类的名称、属性和方法等信息,以及类与类之间的关系。

通过类图可以更好地理解软件系统的结构,并可以帮助设计者进行设计和决策。

面向对象的需求分析与设计方法研究

面向对象的需求分析与设计方法研究

面向对象的需求分析与设计方法研究随着计算机技术的不断发展,软件的开发变得越来越重要。

在软件开发过程中,需求分析和设计是两个关键的环节。

随着软件系统规模的扩大,软件系统的复杂性逐渐增加,传统的软件开发模式面临着很大的挑战。

面向对象的需求分析和设计方法则成为了一种解决复杂性问题的有效途径。

本文将介绍面向对象的需求分析和设计方法,并分析其优点。

一、面向对象的需求分析方法面向对象的需求分析方法是一种基于面向对象的思想来进行系统需求分析的方法。

面向对象的思想是指将系统看作是由一系列对象组成的,每个对象都有自己的属性和行为,对象之间通过消息进行交互,从而完成系统功能。

面向对象的需求分析方法是基于这样一种思想进行的。

在面向对象的需求分析方法中,首先需要确定系统的用例。

用例是指系统中需要实现的功能,用例通常以场景来描述,描述清楚了用例中涉及到的角色、对象、操作等信息。

在用例的基础上,就可以进行对象建模。

对象建模主要包括四个步骤:识别类、识别属性、分析关系、识别行为。

在这个过程中,需要通过对象图、类图、活动图等UML图形建模工具来辅助分析建模。

面向对象的需求分析方法具有很多优点。

首先,它可以有效地控制系统的复杂性。

每个对象都有自己的职责,而对象之间协同完成整个系统的功能。

在这个过程中,每个对象承担的责任都会比较明确,系统的流程也会更为清晰。

其次,面向对象的需求分析方法可以提高系统的复用性。

在面向对象的设计中,每个对象都是可以被重复利用的模块。

在后面的设计和实现中,可以直接引用这些对象。

这样一来,可以有效地提高系统的可维护性、可重用性和可扩展性。

此外,面向对象的需求分析方法也有良好的可视化特性,可以辅助开发人员更清晰地了解整个系统的结构和功能。

二、面向对象的设计方法面向对象的设计方法是一种基于面向对象的思想来进行软件系统设计的方法。

在面向对象的设计方法中,需要完成三个阶段的工作:逻辑设计、物理设计和实现。

其中,逻辑设计阶段主要是通过建立类层次结构和类之间的关系来定义系统架构;物理设计阶段主要是通过选择数据存储结构、物理组成和外部接口等来概述系统实现;实现阶段则是通过编写程序代码,构建整个系统的实际功能。

面向对象分析和设计讲座6.从需求到设计

面向对象分析和设计讲座6.从需求到设计

《facade》:一个包仅仅是其它一些包的视图 《framework》:代表模型架构 《stub》:一个包是另一个包的公共内容的服务代理 《subsystem》:子系统 《system》:代表一个系统模型
2013-8-20
上海交通大学计算机科学与工程系
17
2.4 包的联系
2013-8-20
上海交通大学计算机科学与工程系
-GUI: 窗口
GUI 《import》
+窗口
+表格 #事件处理
对于“策略” 包中的类不可 视
2013-8-20
上海交通大学计算机科学与工程系
24
2.4.3 泛化
与类的泛化关系一样:表示一般与特殊的关系 两个包之间存在泛化关系,指其中的特殊性包必
须遵循一般性包的接口。 与类的继承相同,特殊包一般继承其所包含的公 共类,并且可以重载和添加自己的类。
9
2.3.2包的语义
包是一种对模型元素进行成组组织的通用机制。
包用于定义一个名字空间或容器(Container)。 运用包可以把语义上相近的可能一起变更的模型 元素组织在同一个包中,对包中的元素作为一个 整体对待,并且控制它们的可视性和存取。 包纯粹是一种概念性的模型元素,只存在于软件 的开发过程中,因而与组件的概念是不一样的。
?用户界面?应用逻辑和领域对象?技术服务上海交通大学计算机科学与工程系20195316domainuiswingnotthejavaswinglibrariesbutourguiclassesbasedonswingwebsalespaymentstaxestechnicalservicespersistenceloggingrulesengineoo技术可以适合于所有级别但本书的介绍着重于核心应用逻辑上海交通大学计算机科学与工程系2019531722软件架构?架构是一组重要决策其中涉及软件系统的组织对结构元素及其组成系统的接口的选择这些元素特定于其相互协作的行为这些结构和行为元素到规模更大的子系统的组成以及指导该组织结构这些元素及其接口协作和组成的架构风格上海交通大学计算机科学与工程系2019531823包的概念上海交通大学计算机科学与工程系20195319231包的引入?大型的软件系统中往往包含大量的建模元素?需要将它们有序的组织起来?包就是一种概念性的模型管理的图形工具上海交通大学计算机科学与工程系201953110232包的语义?包是一种对模型元素进行成组组织的通用机制

面向对象分析与设计

面向对象分析与设计

面向对象分析与设计面向对象分析与设计(Object-Oriented Analysis and Design,OOAD)是一种在软件工程中常用的方法论,它以面向对象的思维方式来进行软件系统的分析和设计。

本文将对面向对象分析与设计的概念、主要步骤和设计原则进行详细介绍。

一、概念面向对象分析与设计是一种将实际问题抽象为对象和类的方法。

它将问题空间中的实体、行为和关系转化为软件系统中的对象、方法和类,并且通过封装、继承和多态等机制来实现软件系统的模块化和可维护性。

二、主要步骤1. 需求分析:通过与用户沟通,获取系统需求,并将需求转化为用例模型或用户故事。

在需求分析阶段,可以使用用例图、活动图等工具来描述系统的功能和用户的交互过程。

2. 领域建模:通过分析问题领域中的实体、行为和关系,构建领域模型。

领域模型可使用类图、状态图等工具来表示,它可以帮助开发团队更好地理解和把握系统的核心概念。

3. 概念架构设计:根据需求和领域模型,设计概念架构,也称为系统架构。

概念架构是一个逻辑上的模型,它描述了系统的整体结构和各个模块之间的关系。

常见的概念架构模式有层次结构、客户-服务器和发布-订阅等。

4. 详细设计:在概念架构的基础上,对系统进行详细设计。

详细设计包括定义类的具体属性和方法、设计模块之间的接口和通信方式等。

可以使用类图、时序图等工具来进行详细设计。

5. 编码和测试:根据详细设计文档进行编码,并编写对应的单元测试和集成测试。

编码应遵循面向对象的编程原则,例如封装、继承和多态等。

测试阶段需要验证代码的正确性和功能完整性。

三、设计原则1. 单一职责原则(Single Responsibility Principle,SRP):一个类应该只有一个引起它变化的原因。

这样可以降低类的复杂度,提高代码的可维护性。

2. 开闭原则(Open-Closed Principle,OCP):软件实体应该对扩展开放,对修改封闭。

通过使用抽象和接口,可以实现系统的可扩展性,而不需要修改已有的代码。

面向对象分析与设计基础知识讲解

面向对象分析与设计基础知识讲解

面向对象分析与设计基础知识讲解面向对象分析与设计(Object-oriented analysis and design,简称OOAD)是软件工程领域中重要的一部分。

它是指通过对现实世界的事物进行抽象和建模,以实现软件系统的开发和设计。

本文将介绍面向对象分析与设计的基础知识,包括面向对象的概念、面向对象分析和面向对象设计的过程。

一、面向对象的概念面向对象是一种软件开发方法,将现实世界抽象成为对象和对象之间的关系。

在面向对象的设计中,对象是系统中具体的实体,它包含了数据和操作数据的方法。

对象之间通过消息传递来完成协作和交互,从而实现系统的功能。

面向对象的四个基本概念:1. 类(Class): 类是对象的抽象,它定义了对象的属性和行为。

每个对象都是根据类的定义创建的。

2. 对象(Object): 对象是类的实例,它具有类定义的属性和行为。

每个对象都有唯一的身份,可以通过引用来访问。

3. 继承(Inheritance): 继承是指通过已有的类创建新的类,新类继承了原有类的属性和行为。

继承使得代码的复用更加方便,也提高了代码的可维护性。

4. 多态(Polymorphism): 多态是指同一个方法可以根据不同的对象产生不同的行为。

多态通过继承和接口实现。

二、面向对象分析(OOA)面向对象分析是软件开发中的第一步,它的目标是理解系统的需求,确定系统中的对象以及它们之间的关系。

面向对象分析主要包括以下步骤:1. 确定系统的边界和范围:明确系统要解决的问题和目标。

2. 确定系统的对象:从需求文档中提取对象,并识别它们之间的关系。

3. 定义对象的属性和行为:确定每个对象的属性和操作。

4. 划分对象的责任:将对象的操作分配到合适的对象上,确保每个对象的职责明确。

三、面向对象设计(OOD)面向对象设计是根据面向对象分析的结果,通过定义类和交互关系来实现系统的设计。

面向对象设计要考虑到系统的可扩展性、可维护性和可重用性。

面向对象分析与设计

面向对象分析与设计

面向对象分析与设计一、引言面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是软件工程中的一种方法论,用于解决复杂系统的设计与开发问题。

本文将介绍面向对象分析与设计的概念、原则和过程,并结合实际案例说明其重要性和应用。

二、概念解析1. 面向对象分析(Object-Oriented Analysis,简称OOA):通过识别和描述系统所涉及的对象及其相互关系,以及对象的属性和行为,从而确定系统需求和问题领域的分析方法。

2. 面向对象设计(Object-Oriented Design,简称OOD):基于面向对象分析的结果,通过定义类、抽象数据类型、方法、接口等概念,设计出系统的结构和组织,以及类之间的关系和交互方式。

三、面向对象分析与设计的原则1. 单一职责原则(Single Responsibility Principle,简称SRP):一个类只负责一项职责,保证类的内聚性和高内聚性。

2. 开放封闭原则(Open-Closed Principle,简称OCP):系统中的类、模块等应该对拓展开放,对修改封闭,通过继承、接口等方式实现。

3. 里氏替换原则(Liskov Substitution Principle,简称LSP):所有引用基类的地方必须能透明地使用其子类的对象,即子类必须能够替换基类。

4. 依赖倒置原则(Dependency Inversion Principle,简称DIP):高层模块不应该依赖于底层模块,二者都应该依赖于抽象;抽象不应该依赖于具体,具体应该依赖于抽象。

5. 接口隔离原则(Interface Segregation Principle,简称ISP):客户端不应该依赖于它不需要的接口,接口应该进行细化拆分以适应不同的场景和客户端需求。

6. 迪米特法则(Law of Demeter,简称LoD):一个对象应该对其他对象有尽可能少的了解,减少耦合性,降低系统的复杂度。

面向对象的设计与分析课件

面向对象的设计与分析课件

WENKU DESIGN
2023-2026
END
THANKS
感谢观看
KEEP VIEW
WENKU DESIGN
WENKU DESIGN
WENKU
REPORTING
https://
PART 01
面向对象的基本概念
对象与类
对象
现实世界中的事物或概念在面向对象 编程中的表示。每个对象都有其属性 (状态)和方法(行为)。

对象的抽象,定义了一组具有相同属 性和方法的对象的共同特征。类是对 象的模板或蓝图。
封装与继承
封装
将对象的属性和方法封装在一起,隐藏对象的内部实现细节,只通过对象的方法来访问其属性。
目的
提高类的可维护性和可复用性,降低类之间的耦 合度。
示例
一个表示用户的类,只负责存储和提供用户数据, 不包含其他如登录、注册等操作。
开闭原则
定义
软件实体应该对扩展开放,对修改封闭。即软件实体应该通过扩 展来实现变化,而不是通过修改已有的代码来实现变化。
目的
提高软件的可维护性和可复用性,降低修改代码的风险。
目的
降低类之间的耦合度,提高系统的可维护性和可复用性。
示例
使用接口或抽象类来实现高层模块和低层模块之间的依赖关系, 而不是直接依赖于具体实现类。
PART 03
面向对象的分析方法
识别对象与类
01
确定问题域中的实 体
通过分析问题背景,识别出问题 域中的实体,如人、事物、组织 等。
02
抽象出对象的属性 和行为
VS
继承的实现
继承的实现方式因编程语言而异。在Java 中,子类通过使用关键字"extends"来继 承父类。在C中,子类通过在类名前使用 冒号":"来实现继承。

面向对象分析与设计方法

面向对象分析与设计方法

面向对象分析与设计方法在软件开发中,面向对象分析与设计(OOAD)是一种常用的方法和技术,旨在通过对问题领域中的对象进行建模和分析,然后基于这些模型进行软件设计和实现。

本文将介绍面向对象分析与设计方法,并讨论其在软件开发中的应用。

一、概述面向对象分析与设计方法是一种基于对象的思维方式和开发过程。

它将问题领域中的实体、关系和行为看作对象,通过识别、分类和定义这些对象,建立起领域模型。

面向对象分析和设计方法主要包括以下几个步骤:1.需求分析:分析用户需求,识别系统的功能和性能要求。

2.领域建模:通过抽象和分类,识别问题领域中的实体、关系和行为。

3.对象设计:定义对象的属性、方法和关系,确定对象之间的协作方式。

4.系统设计:将对象组织成类和模块,确定系统的结构和架构。

5.实现和测试:基于设计结果进行编码实现,并进行测试验证。

二、面向对象分析与设计方法的特点面向对象分析与设计方法具有以下几个特点:1.模块化:将系统划分为独立的、可重用的模块,从而简化系统的设计和实现。

2.封装性:将数据和处理逻辑封装在对象中,实现了数据和行为的统一管理。

3.继承性:通过继承机制,实现了代码的重用和扩展,提高了系统的灵活性。

4.多态性:通过多态机制,实现了对象的动态行为绑定,提高了系统的可扩展性。

5.抽象性:通过抽象机制,将对象的共性特征抽象成类的属性和方法,实现了模型的简化和易维护性。

三、面向对象分析与设计方法的应用面向对象分析与设计方法广泛应用于软件开发中,尤其适用于中大型软件系统的开发和维护。

它可以提高软件系统的可维护性、可重用性和可扩展性,并降低软件开发的风险和成本。

面向对象分析与设计方法在以下方面有着重要的应用:1.需求分析:通过面向对象的方法,将用户需求转化为面向对象模型,明确系统的功能和性能需求。

2.架构设计:通过面向对象的架构设计,组织系统的各个模块和类之间的关系,确保系统的稳定性和可扩展性。

3.模块设计:通过面向对象的模块设计,定义模块的接口和功能,实现系统的解耦和模块化。

面向对象分析和设计讲座面向对象方法学文稿演示

面向对象分析和设计讲座面向对象方法学文稿演示
上述这些变化,表面是不同的编程工具的流行,
但其背后反映的却是一种更为深刻的认识论的改 变,即你是用何种观点来认识这个世界的?
2. 开发模式(Paradigm)
开发模式又称为范型、范例、风范或模式
(Pattern)。开发模式定义了
➢特定问题和应用的开发过程中将遵循的步骤; ➢确定将用于表示问题和解的那些成分的类型; ➢利用这些成分表示与问题解决有关的抽象; ➢直接得到问题的结构。
80年代后期,面向对象的语言开始浮出水面,
C++借助使用C语言的庞大程序员队伍,一举建 立了面向对象语言的老大地位。从而OO的思想 正式统治了整个软件开发界。C++的流行甚至 使得美国军方从80年开始大力扶植的Ada语言 还未及推广便胎死腹中了。
90年代以后,计算机世界更是发生了天翻地覆
的变化,原先的单机平台让位于WEB,“网络 就是计算机”,新的语言不仅要是OO的, Visual的,更要是基于WEB的。 Java语言借 INTERNET的东风,横空出世,一夜红遍天下。
面向对象分析和设计讲座面向对象方法学文稿演示
(优选)面向对象分析和设计讲 座面向对象方法学
1.历史回眸
现在的计算机的数学理论基础是由计算机的开山鼻祖,
大名鼎鼎的图灵于1937年提出的图灵机模型。 随后不 到十年,电子计算机就诞生了(1945)。(埃尼亚克)
它当时的主要任务之一就是用于导弹弹道轨迹的计算。
程序员们先建立问题的模型(形式化),再用计算
机语言加以合适的表达,最后再输入计算机里进 行计算。
最早的高级语言大约诞生于1945年,是德国人
楚译为他的Z-4计算机设计的Plan Calcul,比 第一台电子计算机还早几个月;在电子计算机上 实现的第一个高级语言是美国尤尼法克公司于 1952年研制成功的Short Code;而真正得到推 广使用,至今仍在流行的第一个高级语言是美国 的计算机科学家巴科斯设计,并于1956年首先 在IBM公司的计算机上实现的FORTRAN语言。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2013-8-20
上海交通大学计算机科学与工程系
31
Worse mixes logical and deployment views
Better a logical view Domain(s) a logical representation of the need for data or services related to these subdomains, abstracting implementation decisions such as a database.
2013-8-20
上海交通大学计算机科学与工程系
10
2.3.3 包的表示
简单名字 GUI GUI
+窗口 +表格 #事件处理
拥有的对 象类
包的性质
COMMON: GUI
{Version 1.2}
路径名字 Common是GUI 所属的包
2013-8-20
上海交通大学计算机科学与工程系
11
包拥有内容,包括类、接口、组件、节点、协同。
Domain(s)
POS
Inventory
Technical Services
2013-8-20
上海交通大学计算机科学与工程系
20
领域
订货
顾客
Oracle接口
数据库接口 {abstract}
Sybase接口
2013-8-20
上海交通大学计算机科学与工程系
21
包的依赖关系没有传递性 包的依赖关系可以加上许多构造型规定它的语义,
其中最常见的是输入依赖

输入依赖(Import Dependency)是包与包之间的一种存 取(Access)依赖关系。输入(importing)允许一个包中 的元素存取另一个包中的元素
Use Case、图,甚至其它包 包与它所含的模型元素之间的关系是一种组合联 系,即一个包由一个或多个模型元素组成,每一 个模型元素都在该包中申明,一个模型元素只能 为一个包唯一地拥有,一个包消失了,该包中所 有元素都消失 不同包中的元素可以同名,但是同一包中的模型 元素不能同名
2013-8-20
包可以拥有其它包作为包内的元素,子包又可以
拥有子包,这样就构成一个嵌套结构 包的嵌套层次不能太多,一般最多不超过2~3层
2013-8-20
上海交通大学计算机科学与工程系
14
编辑器
通用的图形编辑器
控制器
《import》 《import》 《access》
图形元素
《import》 《access》
Application (AKA Workflow, Process, Mediation, App Controller)
上海交通大学计算机科学与工程系
27
代码:将代码组织映射为层和UML包 UML工具:对代码逆向工程产生包图
2013-8-20
上海交通大学计算机科学与工程系
28
领域层与应用逻辑层
2013-8-20
上海交通大学计算机科学与工程系
25
2.5使用层进行设计
系统的大型逻辑结构组织为独立的,职责相关的
离散层,具有清晰内聚的关注分离。较低的层是 低级别和一般性服务,较高的层则是与应用相关。 协作与耦合从较高层到较低层进行,避免从较低 层到较高层的耦合
2013-8-20
上海交通大学计算机科学与工程系
POS Vertical Layers Technical Services Persistence
Inventory
Tax
Security Horizontal Partitions
Logging
2013-8-20
上海交通大学计算机科学与工程系
30
不要把外部资源表示为最低层


大部分系统依赖于外部资源或服务,例如MySQL库 存数据库。这些是物理实现构件,而不是逻辑结构中 的层 就逻辑架构和层而言,对某个持久数据集合的访问可 以看作领域层中的子领域-库存子领域
width implies range of applicability
2013-8-20
dependency
handles presentation layer requests workflow session state window/page transitions consolidation/transformation of disparate data for presentation
low-level technical services, utilities, and frameworks data structures, threads, math, file, DB, and network I/O
Foundation (AKA Core Services, Base Services, Low-level Technical Services/Infrastructure)
领域元素
图形内核
2013-8-20
上海交通大学计算机科学与工程系
15
另一种表达
编辑器 +
图形元素
图形内核
领域元素
控制器
只能表示构成 ,不能表示依 赖
2013-8-20
上海交通大学计算机科学与工程系
16
2.3.5 标准构造型
构造型和标记值说明其特定的性质,如包的作者,
提供的服务等




用户界面 应用逻辑和领域对象 技术服务
2013-8-20
上海交通大学计算机科学与工程系
5
UI not the Java Swing libraries, but our GUI classes based on Swing
Swing
Web
Domain
Sales
Payments
Taxes
OO技术可以适合 于所有级别,但本 书的介绍着重于核 心应用逻辑
2013-8-20
上海交通大学计算机科学与工程系
7
2.3 包的概念
2013-8-20
上海交通大学计算机科学与工程系
8
2.3.1 包的引入
大型的软件系统中往往包含大量的建模元素 需要将它们有序的组织起来 包就是一种概念性的模型管理的图形工具
2013-8-20
上海交通大学计算机科学与工程系



典型的软件系统都有UI逻辑和应用逻辑,我们如何使 用对象设计应用逻辑 “全能类”? 从真实世界出发设计对象,分配应用逻辑职责,称为 领域对象,因此应用逻辑层被称为领域层 领域层和领域模型的关系:领域模型可以给我们领域 层命名的灵感
2013-8-20
上海交通大学计算机科学与工程系
29
Domain
(relatively) high-level technical services and frameworks Persistence, Security
Technical Services (AKA Technical Infrastructure, High-level Technical Services)
Technical Services
Persistence
Logging
RulesEngine
2013-8-20
上海交通大学计算机科学与工程系
6
2.2 软件架构
架构是一组重要决策,其中涉及软件系统的组织,
对结构元素及其组成系统的接口的选择,这些元 素特定于其相互协作的行为,这些结构和行为元 素到规模更大的子系统的组成,以及指导该组织 结构(这些元素及其接口,协作和组成)的架构 风格
-GUI: 窗口
GUI 《import》
+窗口
+表格 #事件处理
ቤተ መጻሕፍቲ ባይዱ
对于“策略” 包中的类不可 视
2013-8-20
上海交通大学计算机科学与工程系
24
2.4.3 泛化
与类的泛化关系一样:表示一般与特殊的关系 两个包之间存在泛化关系,指其中的特殊性包必
须遵循一般性包的接口。 与类的继承相同,特殊包一般继承其所包含的公 共类,并且可以重载和添加自己的类。
上海交通大学计算机科学与工程系
12
包的模型元素名前可以有可视性标志,其表示方
法与类中的属性和操作的可视性表示一样。


+,对于输入该包的任何包的模型元素都可见 -,对于外包不可见 #,只对其子包可见
客户机 +订货表 +追踪表 -订货
2013-8-20
上海交通大学计算机科学与工程系
13
2.3.4包的嵌套
26
GUI windows reports speech interface HTML, XML, XSLT, JSP, Javascript, ...
UI (AKA Presentation, View)
more app specific
handles application layer requests implementation of domain rules domain services (POS, Inventory) - services may be used by just one application, but there is also the possibility of multi-application services
《facade》:一个包仅仅是其它一些包的视图 《framework》:代表模型架构 《stub》:一个包是另一个包的公共内容的服务代理 《subsystem》:子系统 《system》:代表一个系统模型
相关文档
最新文档