《软件工程》.

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
初级会计电算化 (用友T3) 制作人:张爱红.
证券投资技术分析.
淄博信息工程学校 ZIBOIT&ENGINEERING VOCATONAL SHCOOL 02 认识虚拟局域网 计算机网络技术专业.
Excel VBA视频教程 课程介绍-什么是VBA
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
UI(用户界面)集训班 Illustrator 高级班.
常用逻辑用语复习课 李娟.
第 五 章 面向对象的设计方法.
第三篇 组织工作.
第14章 c++中的代码重用.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
面向对象建模技术 软件工程系 林 琳.
R in Enterprise Environment 企业环境中的R
管理信息结构SMI.
走进编程 程序的顺序结构(二).
辅导课程六.
网络常用常用命令 课件制作人:谢希仁.
Windows网络操作系统管理 ——Windows Server 2008 R2.
第17章 网站发布.
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
数据挖掘工具性能比较.
整合思维导图的初中英语教学设计 主讲人:卢璐.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
DevDays ’99 The aim of this mission is knowledge..
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
实验1 信息系统分析与设计工具安装.
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
新一代安全网上银行 小组成员:杨志明 王晶 任毅 刘建中 关昊 刘超.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
解决变化问题的自底向上 流程建模方法 严志民 徐玮.
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
微机系统的组成.
VisComposer 2019/4/17.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
3.1.2 空间向量的数量积运算 1.了解空间向量夹角的概念及表示方法. 2.掌握空间向量数量积的计算方法及应用.
数据集的抽取式摘要 程龚, 徐丹云.
Chapter 18 使用GRASP的对象设计示例.
Visual Basic程序设计 第13章 访问数据库
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
Delphi 7.0开发示例.
OpenStack vs CloudStack
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第二节 C语言的特点.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第四章 UNIX文件系统.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
位似.
《偏微分方程》第一章 绪论 第一章 绪论 1.1.
《地理信息系统设计》教程 第三章 GIS设计方法.
学习数据结构的意义 (C语言版) 《数据结构》在线开放课程 主讲人:李刚
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
入侵检测技术 大连理工大学软件学院 毕玲.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

《软件工程》

7.2.2 面向对象的分析 面向对象的分析(OOA)方法是相当于软件开发过程中的问题定义和需求分析阶段,它是用面向对象的概念和方法为软件需求建造模型,分析的过程是提取和确定系统需求的过程。 面向对象分析的需求规格说明主要包括三种模型:对象模型、动态模型和功能模型。在面向对象方法中,类、对象和事物等概念之间的关系如图3.3.7所示。

1.面向对象分析过程 (1)分析过程概述 分析过程就是提取系统的需求的过程,是指为了满足用户的需求,系统必须“做什么”,而不是“怎么做”(系统如何实现)。系统分析通常是从一个需求文档(陈述)和用户一系列的讨论开始的。一般来说,由用户、领域专家、系统的开发者以及其他有关人员参加制定需求文档。 首先,系统分析员要对需求文档进行分析。需求文档通常是不完整、不准确的,也可能还是非正式的。通过分析可以发现和改正需求文档中的歧义性、不一致性,剔除冗余的内容,挖掘潜在的内容,弥补不足,从而使需求文档更完整、更准确。快速地建立一个原型系统,通过在计算机上运行原型系统,使得分析员和用户尽快交流和相互理解,从而能更正确地、更完整地提取和确定用户的需求。

然后,是需求建模。系统分析员根据提取的用户需求,深入理解用户需求,识别出问题域内的对象,并分析它们相互之间的关系,抽象出目标系统应该完成的需求任务,并用OOA模型准确地表示出来,即用面向对象观点建立对象模型、动态模型和功能模型。 最后,是需求评审。通过用户、领域专家、系统分析员和系统设计人员的评审,并进行反复修改后,确定需求规格说明。 (2)面向对象分析的三个模型与五个层次 面向对象分析的三个模型: 面向对象分析的模型包括:对象模型、动态模型和功能模型。对象模型描述了系统的静态结构;动态模型描述了系统的交互次序;功能模型描述了系统的数据变换。 其中,对象模型是最基础的、最核心的、最重要的。无论解决什么问题,首先要在问题域中提取和定义出对象模型。

当问题涉及用户界面与过程控制时,动态模型是重点。如果问题涉及大量数据变换,则功能模型非常重要。对象模型中的操作(即服务)可以出现在动态模型和功能模型内。 2) 面向对象分析的五个层次 面向对象分析由五个主要活动组成,即确定类-&-对象、识别结构、识别主题、定义属性和定义服务(方法)。对于一个复杂问题的面向对象的模型可用五个层次表示:类-&-对象层、结构层,主题层、属性层和服务层,见图3.3.8。

主题(Subject)层:主题给出分析模型的总体概貌,是控制读者在同一时间所能考虑的模型规模的机制。 类-&-对象(Class & Object)层:对象是数据及其处理的抽象。它反映了保存有关信息和与现实世界交互的能力。 结构(Structure)层:结构表示问题域的复杂性。类 - 成员结构反映了一般-特殊关系,整体 - 部分结构反映了整体 - 部分的关系。 属性(Attribute)层:属性是数据元素,用来描述对象或分类结构的实例,可在图中给出并在对象的储存中指定,即给出对象定义的同时,指定属性。 服务(Serves)层:服务是接收到消息后必须执行的一些处理,可在图上标明它并在对象的储存中指定,即给出对象定义的同时,定义服务。

3) 五个层次对应的五个活动 五个主要活动可以同时(并行)处理;可以从较高抽象层转移到较低的具体层,然后再返回到较高抽象层继续处理;当系统分析员在确定类-&-对象的同时,想到该类的服务,则可以先确定服务后,再返回去继续寻找类-&-对象;没有必要遵循自顶向下,逐步求精的原则。 4) 面向对象分析流程 一般情况下,面向对象分析过程可按照下列流程进行:确定类—&—对象、识别结构、识别主题、定义属性、建立动态模型、建立功能模型、定义服务(方法)。但是,对于大型的、复杂的问题,不可能严格按照上面流程进行,需要反复多次进行寻找、确定、识别、建立和定义来构造模型。

2.面向对象建模 (1)建模与模型 建模是将问题域的解空间定义成一种模型,以帮助系统分析人员更好地理解问题。 模型是为了理解问题而对问题所做出的一种抽象,而且是对问题的一种无歧义的描述。模型由一组图示符号和组织这些符号的规则组成。利用它们来定义和描述问题域中的术语和概念。 建模的目的主要是为了减少复杂性。 (2)面向对象模型 用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型三种模型。对象模型是描述系统数据结构的;动态模型是描述系统控制结构的;功能模型是描述系统功能的。

数据、控制和操作等是这三种模型都涉及到的共同概念,只不过是各自描述的侧重点不同罢了。一个典型的软件系统应包含数据结构(对象模型)、执行操作(动态模型)和完成数据值的变化(功能模型)。 3.常用的面向对象分析与设计模型 常用的面向对象分析与设计模型有四类: ● James Rumbaugh 等人的 OMT 模型; ● Coad 和 Yourdon 的模型; ● Booch 开发模型; ● UML 统一建模语言(在3.4节专门介绍)。

Rumbaugh的对象模型化技术OMT (object modeling technique) 对象模型化技术的三类模型:对象模型、动态模型和功能模型。 这个模型化的过程是一个迭代过程通过不断更新、细化,直到切合系统真正需求为止。。 动态模型 对象模型 功能模型

1. 对象模型 是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。 在OMT中,类与类之间的关系叫做关联。关联代表一组存在于两个或多个对象之间的,具有相同结构和含义的具体连接。关联可以是物理的,也可以是逻辑的。

类 类的实例 类定义示例 类名 自动售货机 (类名) 属性值 饮料编号 价格 属性 操作 投入货币 送出饮料 显示金额 按下按钮 按退币杆 显示售完

(0个或1个) (0个或多个) (1个或多个) (1~2个或4个) 聚合,代表整体与部分的关系,这是一种特殊形式的关联。 菱形框 表示整体侧对象 限定,用以对关联的含义做某种约束。 角色,用来说明关联的一端。由于多数关联具有两个端点,因而涉及到两个角色。 附加的:说明对象之间的连接属性。 (0个或1个) (0个或多个) 1+ (1个或多个) 12,4 (1~2个或4个)

整体 部分 段落 句子 聚合 类A 类B 限定词 目录 文件 文件名 限定 类A 角色 类B 公司 名字 个人 工作 职务 工资 雇主 雇员

泛化关联(继承性) 派生类A 基类

 金额计算器 金额 累加 找零 重置 自动售货机 饮料编号 价格 投入硬币 送出饮料 显示金额 按下按钮 按退币杆 显示售空 存量计算器 递减 退币杆 退币杆状态 顾客 姓名 硬币 取出饮料 选择按钮 按钮状态 按钮灯亮 按钮灯灭 售空灯亮   顾客按 购买 下按钮 属于

对系统的词汇建模(即建类图): 例:建立对象模型:P141 1、确定类----即标出来自问题域的相关的对象类,如下图所示: 排除假的类 选取名词 需求说明 类 暂定的类 从中去掉冗余类、不相干的类、模糊类、属性及操作。 2、准备数据字典:准确描述类的含义及范围(成员等)。 3、确定关联:常用描述性动词(或词组)表示。 4、确定属性:属性是个体对象的性质,常用修饰性的名词词组表示。 5、使用继承来细化类:指将现有类细化出父类及具体的子类。 6、完善类模型图(或对象模型图)

实例 设计支持银行网络的软件,银行网络包括出纳站和分行共享的自动出纳机。每个分析通信,出纳站录入用户和事务数据;自动出纳机与分行计算机通信,分行计算机与拨款分理处结帐,自动出纳机与用户接口接受现金卡,与分行计算机通信完成事务,发放现金,打印收据;系统需要记录保管和安全措施;系统必须正确处理同一账户的并发访问;每个分理处为自已的计算机准备软件,银行网络费用根据顾客和现金卡的数目分摊给各分理处。 出纳站 自动出纳机 分行计算机 分理处 计算机 账户 ……

[注意]对象之间的关联常用动词(词组)表示 出纳员 自动出纳机 分行 分行计算机 分理处 账户 顾客 现金卡 出纳事务 出纳站 远程事务 组成 所 有 通 信 雇用 访问 涉及 认可 录入 [注意]对象之间的关联常用动词(词组)表示 对象图

图3.3.16 某社区卫生综合管理系统的对象模型(一)

状态图 2. 动态模型 状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。 动态模型着重于系统的控制逻辑,它包括两个图,一是状态图,一是事件追踪图。 状态图 状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。 状态A 活动 状态B 状态A / 操作 事件B [条件] 起始状态 终结状态

取出饮料 结算找零 扣减存量 完成交易 显示售 货机就 绪,所 有灯灭 显示 金额 总数 饮料 售空 灯亮 显示总 额已够 饮料选 择灯亮 投入硬币 (有效的) 规定金额 金额不足 再投币 按下 选择 按钮 回到就绪状态 取消 无效硬币

事件追踪图 事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”。 场景也叫做脚本,是完成系统某个功能的一个事件序列。 场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件。

自动售货机售货脚本(事件序列) 顾客投入硬币 自动售货机计算并显示金额 顾客持续投入硬币直到足够的金额 自动售货机选择按钮灯亮 顾客选择饮料种类并按下选择按钮 自动售货机送出相应饮料并结算、找零 自动售货机扣除该饮料的存量 如自动售货机该饮料有存货,回到初始状态 如自动售货机该饮料无存货,显示该饮料“售空”灯亮,不再接受选择,回到初始状态 自动售货机售货脚本(事件序列)

顾客 售货机 金额计算器 选择按钮 存量计算器 售空灯 投入硬币 累加 总额 显示总额 金额足够 灯亮 选择按钮 按下按钮 送出饮料 结算 余额 找零 扣减存量 存量为零

3. 功能模型 顶层数据流图 功能模型由数据流图组成,指明从外部输入到外部输出,数据在系统中传递和变换的情况。 自动 顾客 售 货机 输入:投币、按选 择按钮、取消交易 输出饮料 投币金额 显示屏 选择按 钮灯 售空灯 显示投 币金额 钮灯亮 售空灯亮 顶层数据流图

数据流图 顾客 投入 按下选 硬币 择按钮 饮料按 钮灯亮 判断何 种饮料 判断 存量为 零否 饮料编号 存量非零 存量为零 计算 售空 扣减存量 找零 存量非零 送出饮料 售空 灯亮 存量为零 数据流图

1. 面向对象分析的概念模型 Coad 与 Yourdon 的分析 通过面向对象分析建立的系统模型是以概念为中心的,因此称为概念模型。 这样的模型由一组相关的类组成。 构造和评审面向对象分析概念模型的顺序和由五个层次组成,即类与对象、属性、服务、结构和主题。

类与对 象层 属性层 服务层 结构层 主题层 主题 服务 消息 属性 实例连接 类边界 实例边界

(聚合关系)

图3.3.20 某社区卫生综合管理系统的对象模型(二)

Booch 开发模型 在Booch方法中,用于说明系统要求的表示方法和手段非常丰富,相当灵活。 下面列出了几种基本的类与类之间的关系图示(图3.3.21):

小结: 1、掌握OOA的三种模型和五个层次。 2、掌握对象模型三种不同方法的建模方法。

作业: P171 三、1,2,3

谢谢使用 本课件!