1-UML-OOAOOD 介绍
- 格式:pdf
- 大小:2.01 MB
- 文档页数:32
第一章1、什么是分析与设计?1、分析强调对问题和需求的调查研究2、设计强调的是满足需求的概念上的解决方案2、什么是面向对象分析与设计?1、在面向对象分析过程中,强调的是在问题领域内发现和描述对象(或概念)2、在面对对象设计过程中,强调的是定义软件对象以及它们如何协作以实现需求。
3、简单示例:1、定义用例(use case)需求分析可能包括人们如何使用应用的情节或场景,这些情节或场景可以被编写成用例。
2、定义领域模型(domain model)面向对象分析的结果可以表示为领域模型,在领域模型中展示重要的领域概念或对象。
需要注意的是,领域模型并不是对软件对象的描述,它使真实世界领域中的概念和想象可视化。
(也被称为概念领域模型—conceptual object model)3、定义交互图关注的是软件对象的定义—它们的职责和协作。
顺序图(sequence diagram)是描述协作的常见方法。
它展示对象之间的信息流,和由消息引起的方法调用。
4、定义设计类图除了在交互图中显示对象协作的动态视图外,还可以用设计类图(design class diagram)来有效的表示类定义的静态视图。
这样可以描述类的属性和方法。
与领域模型表示的是真实世界的类,设计类图表示的是软件类要注意的是,尽管设计类图不同于领域模型,但是其中的某些类名和内容还是相似的。
第二章1、什么是UML?统一建模语言(UML)是描述、构造和文档化系统制品的可视化语言。
UML表示法的基础是UML元模型,它描述建模元素的语义,UML元模型对模型驱动架构(Model Driven Architecture, MDA)CASE工具供应商具有影响。
开发者并不需要对其进行学习。
2、三种UML应用方式1、UML作为草图—非正式的、不完整的图,借助可视化语言的功能,用于探讨问题或解决方案空间的负责部分。
2、UML作为蓝图—相对详细的设计图。
用于:①逆向工程;②代码生成。
OOAD基本概念学习⽬标:1.理解与掌握⾯向对象的概念与⽅法。
2.使⽤UML。
3.完成⾯向对象的分析与设计⼯作。
4.了解OO的设计原则及⼀些典型的设计模式什么是⾯向对象?1. ⾯向对象(Object-Orientation, 简称OO)是⼀种系统建模技术。
2. ⾯向对象编程(Object-Orientation Programming,简称OOP)是按照OO的⽅法学来开发程序的过程。
3. 通过分析系统内对象的交互来描述或建模⼀个系统。
4. 交互的对象最终以类的形式组织。
5. OO的⽅法由三部分组成:过程,标识,规则。
对象1. 是⼀个客观存在的、唯⼀的实体。
2. 是⾯向对象编程过程中分析与解决问题的出发点与基础。
3. 拥有⾃⼰的标识、数据与⾏为。
4. 可以简单或复杂。
5. 可以抽象或具体。
6. 在OOP中是⼀个类的动态实例。
7. 如Student—id,name,age(attribute)--setName,getName,countScore(methods)--new Student()类1. 类是对象的模板。
2. 对象通过类实例化产⽣。
3. ⼀个类可以创建多个对象OOADOOAD(Object Oriented Analysis and Design),⾯向对象的分析与设计。
OOAD是根据OO的⽅法学,对软件系统进⾏分析与设计的过程。
--OOA 分析阶段--OOD 设计阶段定义OOA阶段1. 分析阶段主要解决以下问题-- 建⽴针对业务问题域的清晰视图。
-- 列出系统必须完成的核⼼任务。
-- 针对问题域建⽴公共词汇表。
-- 列出针对此问题的最佳解决⽅案。
2.此阶段要解决的核⼼问题是“What to do?”定义OOD阶段1.设计阶段主要解决以下问题-- 如何解决具体的业务问题。
-- 引⼊系统⼯作所需的⽀持元素。
-- 定义系统的实现策略2. 此阶段要解决的核⼼问题是“How to do?”OOP的主要特征1 .抽象(abstract)2.封装(encapsulation)3.继承(inheritance)4.多态(polymorphism)5.关联(association)6.聚合(aggregation)7.组合(composition)8.内聚与耦合(cohesion & coupling)抽象1. 忽略掉⼀个对象或实体的细节⽽只关注其本质特征的过程。
OOAD与UML笔记UML基础介绍1.UML的定义统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素、构建模块、分析过程并可通过文档说明系统中的重要细节2.OOADOOAD是根据OO的方法学,对软件系统进行分析和设计的过程——OOA 分析阶段——OOD 设计阶段3.面向对象面向对象(Object-Orientation ,简称OO)是一种系统建模技术面向对象编程(Object-Orientation Programming,简称OOP)是按照OO的方法学来开发程序的过程通过分析系统内对象的交互来描述或建模一个系统交互的对象最终以类的形式组织OO的方法由三部分组成—过程—标识—规则4.OOP的主要特征抽象(abstract)•封装(encapsulation)•继承(inheritance)•多态(polymorphism)•关联(association)•聚合(aggregation)•组合(composition)•内聚与耦合(cohesion & coupling)域对象之间的关系1.关联(Association)2.依赖(Dependency)在BusinessService类中访问Customer类的方法,并且构造Customer类的实例3.聚集(Aggregation)聚集指的是整体与部分之间的关系,在实体域对象之间很常见4.一般化(Generalization)——泛化一般化指的是类之间的继承关系。
5.内聚与藕合•内聚:度量一个类独立完成某项工作的能力•耦合:度量系统内或系统之间依赖关系的复杂度•设计原则:增加内聚,减少耦合UML图的分类1.用例图(Use Case Diagram)用例图展示系统的核心功能及与其交互的用户用户被称之为“活动者”(Actor)用例使用椭圆表示为简化建模过程,用例图可标注优先级2.类图(Class Diagram)表现类的特征类图描述了多个类、接口的特征,以及对象之间的协作与交互由一个或多个矩形区域构成,内容包括:——类型(类名)——属性(可选)——操作(可选)3.对象图(object Diagram)表现对象的特征对象图展现了多个对象的特征及对象之间的交互4.组件图(Component Diagram)表现软件组件之间的关系5.部署图(Deloyment Diagram)表现用于部署软件应用的物理设备信息6.时序图(Sequence Diagram)捕捉一段时间范围内多个对象之间的交互信息强调消息交互的时间顺序图1图27.协作图(Collaboration Diagram)表现一定范围内对象之间协作的信息强调参与信息交流的对象之间的组织结构8.状态转换图(Statechart Diagram)强调一个对象在不同事件触发时,其内部状态的转变过程9.活动图(Activity Diagram)描述活动的流程10.包(package)引用一组相关实体通常可用于划分类的命名空间包可用于——命名(Naming)——成员可见度(Member visibility) ——导入(Importing)——继承(Extending)——泛化(Generalization)几种常见模式1.观察者模式(Observer)2.组合模式(Composite)3.装饰模式(Decorator)4.适配器模式(adapter)5.代理模式(peoxy)。
OOA、OOD、OOP分别是什么?
什么是⾯向对象分析(OOA)?
"⾯向对象分析是⼀种分析⽅法,这种⽅法利⽤从问题域的词汇表中找到的类和对象来分析需求。
"
什么是⾯向对象设计(OOD)?
“⾯向对象设计是⼀种设计⽅法,包括⾯向对象分解的过程和⼀种表⽰法,这种表⽰法⽤于展现被设计系统的逻辑模型和物理模型、静态模型和动态模型”。
这⾥定义2个要点:
(1)⾯向对象设计导致了⾯向对象分解
(2)⾯向对象设计使⽤了不同的表⽰法来表达逻辑设计(类和对象结构)和物理设计(模块和处理架构)的不同模型,以及系统的静态和动态特征。
什么是⾯向对象编程(OOP)?
”⾯向对象编程是⼀种实现的⽅法,在这种⽅法中,程序被组织成许多组互相协作的对象,每个对象代表某个类的⼀个实例,⽽类则属于⼀个通过继承关系形成的层次结构“
这⾥定义有三个要点:
(1)利⽤对象作为⾯向对象编程的基本逻辑构建块,⽽不是利⽤算法
(2)每个对象都是某个类的⼀个实例
(3)类与类之间可以通过继承关系联系在⼀起。
它们之间的关系基本上,⾯向对象分析的结果可以作为开始⾯向对象设计的模型,⾯向对象的设计结果可以作为蓝图,利⽤⾯向对象编程⽅法最终实现⼀个系统。
OOAD 与UML---------author:Lujianyu一、基本内容:OOA/D 面向对象的分析与设计。
方法论、哲学;架构师、项目经理、设计人员OOA ——Object Oriented Analysis面向对象的分析,以业务为中心来分析解决问题,不涉及求解方案。
(问题空间)OOD ——Object Oriented Design面向对象的设计,计算机世界来体现现实世界。
(解空间)UML ——统一建模语言。
是一种图形化的语言,它可以帮助我们在OOAD 过程中标识元素、构建模块、分析过程并可通过文档说明系统中的重要细节。
(外企注重UML )面向对象的好处:让分析阶段和设计阶段平滑地过渡。
可以用解决日常问题的思路来解决计算机世界的问题。
二、开发过程:1.瀑布模型特点:用户需求一改,过程从上到下不可逆。
适合于小项目。
一般不推荐使用。
2.统一开发过程(USDP )由Retional 公司(已经被IBM 收购)提出。
特点:◆大项目分解为一些子项目——用例◆使用UML 工具◆统一软件开发过程是一个迭代、递增的开发过程每一次迭代均会越来越接近最终目标①初试②构造③细化④提交四个阶段:说明:图中蓝色部分面积表示工作量;第一次迭代需求等过程比较多;第二次迭代分析、设计、实现过程较多;第三次迭代…每次迭代都有各自重点。
一般一次迭代持续2周左右。
时间顺序Test这种方式的优点:过程中需求的改变不会影响到整体项目开发,项目控制比较灵活。
◆降低成本◆便于更好地维护项目进度◆便于团队的协作开发◆便于适应用户需求的动态变化80/20原则:把80%的精力花在20%的重点上。
三、OO设计:1.OOP的主要特征(1)、抽象:对现实生活中的建模。
(2)、封装:控制对象的边界以及控制对象对外的接口;封装使我们对边界内部代码的修改不会影响到边界外部代码的实现。
(3)、继承:is a关系。
从一般到特殊,表现了一种分类关系。
(4)、多态:一种行为在不同的条件下会表示出不同的行为方式。