面向对象系统分析和设计概述【研究生计算机高级面向对象技术课程PPT】

合集下载

面向对象系统分析与设计ppt课件

面向对象系统分析与设计ppt课件
◆ What is an automated information system?
data
people
software
procedures
hardware
系统分析与设计概论 (System Analysis and Design)
◆ What are the basic characteristics of an information system?

系统分析与设计概论 (System Analysis and Design)
◆ What makes systems analysis and design such a difficult human endeavor?
Seven reasons: 1. Analysis problems, at their inception, have ill-defined boundaries and structure(users are not certain of what they want), and have a sufficient degree of uncertainty about the nature of the solution.
面向对象系统分析与设计
Object-Oriented Systems Analysis and
Design
河北农业大学信息科学与技术学院 滕桂法 教授
主要内容
1、系统分析与设计概论 2、面向对象概念与术语 3、面向对象分析与设计 4、面向对象编程 5、UML面向对象设计基础 6、UML面向对象开发
第一章 系统分析与设计概论 (System Analysis and Design)
Chapter Objectives(You should be able to) 1. Define a system, information system,

面向对象技术概述.pptx

面向对象技术概述.pptx
面向对象方法的目的在于使分析、设计和实现一个软件系 统的过程与人类认识这个系统的过程同步,使用与人类认知 规律相近的方法和方式进行软件开发工作。
面向对象=对象+类+继承+通信
1.1.1 人类认知规律 1.1.2 面向对象基本原理 1.1.3 认知规律与面向对象 1.1.4 面向对象软件开发
第2页/共54页
类“职员”和“学生”的任何实例都具有类“人” 的属性和行为,即任一职员或学生都是“人”的一个 实例,因此类“人”相对类“职员”和“学生” 是具 有一般性质的类。“职员”和“学生”两类相对类 “人” 具有特殊性,它们之间构成一般特殊关系。
第14页/共54页
形式化的属性与 行为描述,风格 接近实现代码
2024/10/9
14
1.2.1 对象-3/5
1.对象的形态与静态特征(2)
Class CBook { char m_pczName; int m_nPages; int m_nEdition; …… } …… CBook b;
程序中的 类与对象
人们往往根据对象之间的各种关系去认识和描述一个复杂对象或系 统,因此,描述对象之间的各种静态联系将形成系统的内部结构。
对象间相互联系可以分类,这种划分与观察问题的角度有关,面向 对象方法学根据人类认知规律,将这些关系划分为一般-特殊、整体-部 分、实例链接三类。与此相应,具有上述关系的对象在系统或复杂对象 内部形成相应结构:一般与特殊结构、整体与部分结构以及关联结构。
[打印机忙] 暂存(文件)
e v e n t1
1
2
e v e n t2 3
2024/10/9
使用事件踪迹图描 受外界影响后属
性的变化
返回消息与事 件

第 2 章 面向对象的系统分析与设计方法PPT课件

第 2 章  面向对象的系统分析与设计方法PPT课件
第 2 章 面向对象的系统分析与设计方法
2.1 面向对象的基本思想和基本概念 2.2 面向对象的系统开发方法
返回主目录
2.1 面向对象的基本思想和基本概念
2.1.1 面向对象的基本思想
与传统的结构化程序设计方法用过程化的方式描述应用 系统不同,面向对象的方法认为,客观世界是由各种各样的 对象组成的,每个对象都有各自的内部状态和运动规律,不 同对象之间通过消息传送相互作用和联系就构成了各种不同 的系统。
2.1.4 继承性
人们在对客观世界的事物进行描述时,经常采取分类的方 法。类是有层次的,即某个大类的事物可能分为若干小类,而 这些小类可能又分为若干个更小的类。
面向对象思想采纳了事物分类的层次思想,在描述类的时 候,某些类之间具有结构和行为的共性。例如教师类与学生类, 在结构方面均具有姓名、年龄、身高、体重等,在行为(或操 作)方面均具有回答身高、回答体重等操作。将这些共性抽取 出来,形成一个单独的类——人,描述教师类和学生类中的共 性。类人的结构特征和行为特征可以被多个相关的类共享,例 如教师类和学生类继承了类人的结构和行为特征。
2.1.3 类与实例
采用面向对象方法进行系统分析与设计时,对于一个具 体的系统而言,可能存在很多具有相同特征的对象。例如, 对于一个学籍管理系统,存在许多学生对象,它们具有相同 的结构特征和行为特征,只是表示内部状态的数据值不同。 为了描述这种相同结构特征和行为特征的对象,面向对象方 法引入了类的概念。这一点与人们在认识客观世界的事物时 所采取的分类思想相同。人们在认识事物时总是将具有相同 特征的事物归为一类,属于某类的一个事物具有该类事物的 共同特征。
类是对一组具有相同特征的对象的抽象描述,所有这些 对象都是这个类的实例。对于学籍管理系统,学生是一个类, 而一个具体的学生则是学生类的一个实例。

ch01面向对象分析与设计PPT课件

ch01面向对象分析与设计PPT课件

复用
硬件逼软件发展
复用
为什么用复用
软件开发组越大,组中每 个成员的生产率就越低。 Philippe kahn,Borand 公司创始人
应变能力
面向对象分析 以稳定的问题 领域结构来封 装易变的部分, 以此形成具有 灵活性的系统 结构,使得系 统能够顺应需 求的变动。
减少变化引起的整理波动
“分析”一个含义广泛的词汇。在软件开发中, 我们关注两种类型的分析。
需求分析:调查研究系统要成功所必须满足的需求。 面向对象分析:调查研究领域对象以发现重要信息来
满足需求。
什么是设计
设计强调的是满足需求的概念上的解决方案(在 软件或硬件方面)。设计不是实现,虽然一个好 的设计在完成后可以被(编程)实现。
应用UML的三种方式
UML作为草图:非正式的、不完整的图(如白板 上的手绘草图)。用于讨论问题。
实现
在实现(Implementation)或面向对象程序设 计( Object-Oriented Programming,OOP )过程中,会实现设计出来的对象。如,, Java
中的“book”类。
实现又称为“编程”(Coding)或构建
(Construction)
如何进行面向对象分析与设计
科学的一个普遍问题是,必须对被观测的对象和 情况,建立一种有意义的分类方法,以便人们理 解这些观测结果,也有助于科学理论的持续发展
▪ Grady Booch
UML的统一(5)
UML的统一(6)
致力于并推动 UML 发展的一些重要公司有
Hewlett – Packard Microsoft Oracle IBM Unisys
“设计”一词含义也很广泛,应加以限定,如:

面向对象的分析和设计.ppt

面向对象的分析和设计.ppt
23
子系统的设计准则是: (1) 子系统应具有定义良好的接口,通过接口 和系统的其它部分通信; (2) 除了少数的“通信类” 外,子系统中的类 应只和该子系统中的其它类协作; (3) 子系统的数量不宜太多; (4) 可以在子系统内部再次划分,以降低复杂 性。
24
2) 标识问题本身的并发性,并为子系统分配 处理器 通过对对象--行为模型的分析,可发现系 统的并发性。如果对象(或子系统)不是同时 活动的,则它们不需并发处理,此时这些对象 (或子系统)可以在同一个处理器上实现。反 之,如果对象(或子系统)必须对一些事件同 时异步地动作,则它们被视为并发的,此时, 可以将并发的子系统分别分配到不同的处理器, 或者分配在同一个处理器,而由操作系统提供 并发支持。
15
5. 多态性(polymorphism) 多态性是指同一个操作作用于不同的对象 上可以有不同的解释,并产生不同的执行结 果。例如“画”操作,作用在“矩形”对象 上,则在屏幕上画一个矩形,作用在“圆” 对象上,则在屏幕上画一个圆。也就是说, 相同操作的消息发送给不同的对象时,每个 对象将根据自己所属类中定义的这个操作去 执行,从而产生不同的结果。
16
6. 动态绑定(dynamic binding) 动态绑定是指在程序运行时才将消息所请 求的操作与实现该操作的方法连接起来。 传统的程序设计语言的过程调用与目标 代码的连接(即调用哪个过程)放在程序运 行前(即编译时)进行(称为静态绑定), 而动态绑定则是把这种连接推迟到运行时才 进行。 动态绑定是一种在运行时确定被执行代 码的技术。
模型元素指模型中的实体以及实体间相互连接的关系
类 属性 操作 主动类 属性 操作 对象:类 属性 操作
用况
结点
状态

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

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

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中,子类通过在类名前使用 冒号":"来实现继承。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
包括系统设计、对象设计和持久对象设计。
系统设计主要给出分层的系统结构。
一个系统通常分为应用、支撑和服务三个层次, 每一层对应一个子系统。
3.设计阶段(续)
2)主要工作
系统设计主要给出分层的系统结构。
对象设计主要完成对分析模型的细化和精化以适应 实际的实现环境。
持久对象设计主要完成数据库服务器的设计,定义 数据库操作对象和模型对象之间的交互等。
2.分析阶段
1)分析阶段的目标
理解软件为满足需求所要解决的问题,描述系统应该 做什么、由谁做,而不是怎么做。可以看出分析阶段 所侧重的是软件方面的需求而不是用户方面的需求, 再者,还要确定实现特定功能的特定群体(协作)。
2)分析阶段的主要任务
在初步理解现实世界的基础上,建立系统的面向 对象模型(对象模型和动态模型),在建模过程中不 断地加深对问题的理解。
评价一个系统是否“合适”,有以下两条基本准则:
准则一、所实现的系统应能解决所给的问题,也即 满足功能性的需求。
这不仅仅是设计与实现阶段的任务,而且更要仰 仗需求描述的准确性以及分析阶段对问题域的建模等。
准则二、可用性达到使用户满意的程度。
可用性属于系统属性,是系统的非功能特性,包 含一些非功能性需求,比如性能等,此类需求与问题 域无关。
例如一个查询,尽管结果是正确的,但响应时间太长, 用户不满意就会产生不可用的感觉。
注意:
(1)一个系统只有同时满足功能性需求和非功能性需 求,它才是可用的。
(2)功能性需求可由领域知识和需求描述获得;非功 能性需求由域用户与专家协商得到。
(3)交互能力强的模型或者原型系统都可以使用户及 时体验未来的系统,从而能帮助系统开发人员更好地 了解上述两种需求。
6.维护阶段
维护阶段是整个软件周期中一个最为“漫长”的 阶段,我们已在第一章描述了软件维护的主要任务:
对系统潜在的错误进行检测和改正; 不断地面对用户的新要求以及为适应新环境对系统 进行改进与增强。
注意:以上两大任务贯穿于整个维护阶段,而 且每一次维护可能又是一个较小的应用开发过 程。
7.关于“合适”系统的讨论
所谓现实世界是指一个组织的现状(例如一个企业 用现有的业务过程为顾客服务),以及再工程后的状 态(对现有进程进行调整后的状态)。
面向对象的分析方法为后继阶段给问题构造解决方 案建立了坚实的基础,同时也为构建“合计阶段 1)目标
考虑如何构造一个好的软件系统框架。 2)主要工作
在每个开发周期中,通过增加新的功能使系统得以
扩充(增量)。
每个开发周期只针对比较小的一部分需求(一般是
第三章 面向对象系统分析、设计概述
面向对象系统分析简称为OOA,本章讨论OOA所 涉及到的一些主要问题和基本概念,并综述性地介绍目 前流行的各种OOA方法。 主要内容:
应用的开发过程概述,各个阶段的主要任务和侧重点, 基本方法等;
系统分析面临的主要问题,包括对问题域和系统责任 的理解和准确划分、交流问题、如何应对需求的不断变 化、软件复用的考虑等。
1.高层步骤
从高层上看,提交一个应用系统的过程应包括以下
阶段:
计划和细化
构造
实施
✓ 计划和细化(Plan and Elaborate)— 制定计划、定
义需求、创建原型等。
✓ 构造(Build)— 进行系统(模型)的构建。包含: 分析、设计、实现和测试等活动。
✓ 实施(Deploy)— 最终实现系统并投入使用。
3.2 用况驱动的、迭代式的、增量的开发方法简介
软件开发过程(Software development process)
软件开发过程是软件系统的创建、提交和维护等 相关活动的组织方法。
UML没有定义一个标准的开发过程,UML的作者也 承认健壮的建模语言和开发过程两者都很重要。
目前流行的开发过程(方法):用况驱动的、迭代 式的、增量的开发方法。它是对很普通的那些推荐的 过程和模型(Recommended Process and Model, RPM )所做的描述。
4.实现阶段
实现阶段的主要工作是对应用进行程序设计,把 设计阶段定义的结构和各种算法转化为程序代码。
5.测试阶段
分为单元测试和整体测试。
单元测试,也称为单体测试,是对每一个程 序模块所进行的功能测试。
整体测试,首先测试各模块(或子系统)间 的联接,然后测试整个应用系统是否能满足用 户的需求描述。
需求是“用户解决某个问题或达到某个目标所需 的条件或功能”。
需求描述也称为需求分析,它是系统分析的前期和 基础,需求描述中应该包含对系统的外部行为的尽可能 的详细的刻画。
2)需求描述阶段的侧重点
可以看出,需求描述侧重于功能方面的描述,因 此系统分析人员必须善于从功能需求中寻找功能的作 用者和相关体(“由谁做”),也即寻找存在于系统 中的一个个对象,或者说:将某一领域分割成各种对 象。否则很可能会诱导后继阶段围绕功能展开,这将 有悖于面向对象的宗旨。
面向对象系统分析的主要任务和目的。
几种常用的面向对象系统分析方法。
3.1 应用的开发过程概述
我们习惯于将一个应用(Appilication)的开发过 程(软件开发过程)划分为以下六个阶段:需求描述、 分析、设计、实现、测试、维护。下面分别对各个阶 段的主要任务作简单的介绍。
1. 需求描述
1) 需求的概念
2. 迭代开发方法概述 (1)方法的要点和优点
要点
迭代开发的生命周期是基于对一个系统进行连续 的扩充和精化,其要点如下:
软件开发过程要经历若干个开发周期,每个周期都
包含:分析、设计、实现和测试等活动。
在经过一个初步的计划和细化阶段后,开发进入 由一系列开发周期组成的系统构造阶段。所以迭代主 要发生在构造阶段、以及实施阶段。
2. 迭代开发方法概述(续) 软件开发过程要经历若干个开 发周期,每个周期都包含:分析、 设计、实现和测试等活动。
计划和细化
构造
实施
开发周期1 开发周期2 …… 精化计划 同步制品 分析 设计 实现 测试
2.
迭代开发方法概述(续)
软件开发过程要经历若干个开 发周期,每个周期都包含:分析、
设计、实现和测试等活动。
相关文档
最新文档