190 likes | 440 Views
第十章 面向对象分析与设计. 面向对象分析 (OOA,Object-Oriented Analysis) 是软件开发过程中最重要的一步, OOA 的过程分为论域分析和应用分析。论域分析建立大致的系统实现环境,应用分析则根据特定应用的需求进行论域分析。. 10.1 面向对象分析( OOA ). 论域分析 应用分析. 10.1.1 论域分析. 论域分析是软件开发的一个基本组成部分,它给出一组抽象,这组抽象是论域知识的高层表示,它常常超出当前应用的范围,可以用来作为特定系统需求开发的参考。
E N D
第十章 面向对象分析与设计 面向对象分析(OOA,Object-Oriented Analysis)是软件开发过程中最重要的一步,OOA的过程分为论域分析和应用分析。论域分析建立大致的系统实现环境,应用分析则根据特定应用的需求进行论域分析。 软件工程(Software Engineer)
10.1面向对象分析(OOA) • 论域分析 • 应用分析 软件工程(Software Engineer)
10.1.1论域分析 论域分析是软件开发的一个基本组成部分,它给出一组抽象,这组抽象是论域知识的高层表示,它常常超出当前应用的范围,可以用来作为特定系统需求开发的参考。 论域分析是一个持续的活动,它所涉及的范围可超出特定应用,当论域变化时,可不断更新相关的抽象和关系。论域分析的结果可积累更多的有关论域的经验和细化的抽象。 软件工程(Software Engineer)
10.1.2应用分析 应用分析的依据是在论域分析时建立起来的论域分析模型,并把它用于当前正在建立的应用当中。客户对系统的需求可以当作限制来使用,用它们缩减论域的信息量。就这一点来说,保留的信息受到论域分析视野的影响。论域分析产生的模型并不需要用任何基于计算机系统的程序设计语言来表示,而应用分析阶段产生的影响则伴随着某种基于计算机系统的程序设计语言的表示。响应时间需求、用户界面需求和某种特殊的需求,如数据安全等,都在这一层分解抽出。 软件工程(Software Engineer)
10.2对象模型技术 • 对象模型 • 动态模型 • 功能模型 软件工程(Software Engineer)
10.2.1对象模型 对象模型是三个模型中最关键的模型,它表现了静态的、结构化的系统数据性质,描述了系统的静态结构,它从客观世界实体对象的关系角度来描述,表现了对象的相互关系。事实上,这个模型可以当作扩充的实体—关系模型(E—R)。 软件工程(Software Engineer)
10.2.2 动态模型 动态模型描述了系统的涉及时序和改变的状态,该模型表示了瞬时的行为化的系统控制性质,它体现了系统的控制、操作的执行顺序,它从对象的事件和状态的角度出发,表现了对象的相互行为。该模型描述的系统属性是触发事件、事件序列、状态、事件与状态。使用状态图作为描述工具。涉及的重要概念是事件、状态、操作等。 软件工程(Software Engineer)
10.2.3 功能模型 功能模型描述了系统的所有计算。功能模型侧重于系统内部数据的传送和处理。功能模型表明一个计算如何从输入值得到输出值,它不考虑所计算的次序。功能模型由多张数据流图组成。数据流图说明数据流是如何从外部输入、经过操作和内部存储输出到外部的。功能模型也包括对象模型中值的约束条件。功能模型说明对象模型中操作的含义、动态模型中动作的意义以及对象模型中约束的意义。相关的概念有数据流图中的处理、数据流、动作对象、数据存储对象等。 软件工程(Software Engineer)
10.3实例 • 见教材 软件工程(Software Engineer)
10.4面向对象设计(OOD) • 类设计的目标和方针 • 通过复用设计类 软件工程(Software Engineer)
10.4.1 类设计的目标和方针 1.类设计的主要目标 • 单一概念的模型 • 可复用的“插接相容性”构件 • 可靠的构件 • 可集成的构件 软件工程(Software Engineer)
10.4.1 类设计的目标和方针 2.模块设计的方针 • 信息隐蔽 • 消息限制 • 狭窄界面 • 强内聚 • 弱耦合 • 显式信息传递 • 派生类当做派生类型 • 抽象类 软件工程(Software Engineer)
10.4.2通过复用设计类 • 选择 • 分解 • 配置 • 演变 软件工程(Software Engineer)
10.5设计模式 • 设计模式概述 • 设计模式实例 • 如何使用设计模式 软件工程(Software Engineer)
10.5.1设计模式概述 1.设计模式的历史 2.为什么要使用设计模式 3.设计模式的基本要素 4.设计模式的分类 软件工程(Software Engineer)
10.5.2设计模式实例 1.创建型模式 2.结构型模式 3.行为型模式 软件工程(Software Engineer)
10.5.3如何使用设计模式 要使用好设计模式首先要打好基础,即你已经完全掌握了设计模式的意图和适用性。当遇到类似的问题和情形时,你将条件反射似地联想到哪个设计模式可以帮助你解决问题。更进一步的,你应当已经就该设计模式进行了多次的思想实验,尝试着编写了多次程序。同时,你也应当在思想实验和编写程序的过程中了解了设计模式的效果、实现方式、局限性等。 当遇到一个设计问题时,应当分析问题是什么,你的设计目标是什么,要怎样解决,然后往设计模式的意图和适用性上去靠。有时候有多个设计模式都可以解决同一个问题,这时就要从效果、实现方式和局限性方面去考虑,挑选最适合的设计模式。 软件工程(Software Engineer)
小结 本章主要介绍了面向对象分析与设计的内容,包括面向对象分析的概念、任务,面向对象分析过程中的论域分析和系统分析,其中重点介绍了对象模型技术,它把分析时收集的信息构造在三类模型中,即对象模型、功能模型和动态模型。从不同的侧面反映了系统的实质性内容,综合起来则全面反映了对目标系统的需求。介绍了面向对象类设计的目标和方针,介绍了设计模式的概念,组成要素和分类,并介绍了Façade、Adapter、Abstract Factory等常用设计模式的结构、意图和适用性,最后通过一个实例,说明如何使用设计模式。 软件工程(Software Engineer)
习题十 1、基于复用的面向对象的需求分析过程主要分为两个阶段:论域分析和应用分析。试讨论它们各自承担什么任务?如何衔接? 2、类和对象的表示方法是什么?并通过实例进行说明。 3、什么是设计模式,设计模式的基本组成元素是什么? 软件工程(Software Engineer)