1、第三章 运用面向对象的思想一、 类的可视化class student可见性公 私 保属性 行为1、 绘图2、 绘图应注意问题 确定一个具体类-类名。属性。类行为 确定什么样的编程语言 确定类属性的可见性,数据类型 类行为返回值的数据类型。二、 类的其他表示方法 1带有路径的类 类名:类名-继承 域限定符 研究生:学生 2 虚基类的表示-,名称的斜体书写 3 类的省略表示三、 类的职责和约束 1 约束 2 注释四 如何发现类l 正式的方法1 可感知物理实体2 人或者组织的角色3 应该记忆的事件4 两个或者两个以上事物的交互5 需要说明的概念l 非正式的方法1 用自然语言书写需求陈述 并对其分析一
2、、 名词-类或者对象候选者二、 动词-行为三、 形容词-发现属性线索分析l 删除冗余者l 剔除无关者l 含糊不清楚笼统的概念l 删除可能是属性的名词l 删除可能是行为的名词10月12日第四章类与类C+、 JAVA 一、 继承 1 单继承 2 多继承 (1)多重继承 (2)多级继承二、 友元 三、 嵌套四、 一般化关系JAVA 继承-单继承接口友元嵌套一般化类与类UML关系如何表示一关联直线 普遍纯在的关系关联 关联约束关联类 类与类之间关联关系可能是一个类自身关联 司机 1乘客 4乘客限定关联 银行柜员1对多 储户 (本银行的储户)二泛化与继承继承-泛化语言 UML-空心三角尖头面向过程结构化
3、面向对象模型-过程(技术 方法 工具 环境)三依赖关系一个类使用了另外一个类(1) 关系联系 直线(2) 泛化关系 直线空三角(3) 依赖关系 虚线尖头第四章 聚集 组成 接口 实现一 类与类关系补充(4) 实现关系 直线 关节窝 直线(rose)(直线 圆圈)Visio 关联关系 1强 聚集 箭头空型的矩形2 弱 组成箭头实型的矩形10月19复习UML组成-同意建摸语言-工具-面向对象软件工程(oose)-OOSE-类-需求-需求陈述1、五类客观事物。(理解)2、头脑风暴法。(名词类与对象的、名词发现属性、动词行为 操作 方法) 类1、关联直线聚集实心箭头组成空心箭头2、泛化 三角箭头3、依
4、赖 虚线箭头4、实现关节窝类图 分析类图E-R图设计数据库篮球需求分析分析员开发人员教练用户 开发人员站在用户的角度理解需求提出需求用例用例图用例文档面向过程SP需求分析1、ER图。2、数据流图。3、状态迁移图。数据字典接(SP)瀑布模型第六章 介绍用例普通浏览者 浏览网站潜在会员 注册成为会员会员 下定单供应商提供零件目录员工打印信息内部工作人员查看员工信息货管员管理库存管理者审核销售记录1,什么是用例是开发人员站在用户立场 理解需求2,用例图的组成元素参与者 通信 用例 系统边界用例用动宾短语 参与者:发起事件的实体或受益者用例:系统的一组使用场景场景:描述一系列动作步骤的序列三 用例的关
5、系1参与者之间的泛化2包含关系:一个用例包含另一个用例中步骤3扩展关系:崭用例原用例基础上扩展了新的步骤。 4用例之间泛化5历组:一组相关用例分为一组 用色分组 它表示内容就是一个子系统四 用例文档描述 1 前置条件 2 用例的发起者参与者 3 场景(步骤序列) 4 后置条件 5 获益者自然语言书写 需求陈述用头脑风暴法分析10月26第八章 状态图一、什么是状态图 描述对象从一个时间点到另一个时间点,一段时间内它的状态发生变化工程的图形。二、状态图的组成元素1、初始状态(实心圆)2、终止状态(实心的圆环)3、 状态:状态 (圆角矩形) 复合状态(状态图中有状态)4、 转换:转换(直线,曲线)
6、转换分叉(1种导致多种) 转换连接(2种以上的导致一种)三、状态图与程序之间的关系四、状态图与其他图形之间的关系1、状态图与对象图之间的关系。状态图描述的对象图中对象状态变化2、状态图与类图之间的关系状态图中所描述的对象来自于 产生该对象的类状态图中的装换条件来自与产生该对象类的方法(行为操作)3、状态图和用例图之间的关系用例图 是由参与者 用例 前置条件 发起者参与者 场景 购买饮料 你钱币记录仪 货物分配器11月2日第九章一、什么是顺序图顺序图是一个交互图形,它描述的是类以及类之间相互交换完成期望行为的消息的图形。二、顺序图的组成元素1、带有生命线对象类角色2、激活期3、消息三、消息一个对
7、象向另一个对象传递的信息1、简单消息:一个对象到另一个对象控制流的转移2、同步消息:一个对象发送消息要等待接受该消息的对象应答后才能继续下一步的操作。3、异步消息:一个对象发送消息不等待接收该消息的对象应答继续执行下一步的操作。面向对象OOSE 顺序图 面向数据流(SP )系统结构图11。2图四、顺序图与其他图形之间的关系1、顺序图与状态图之间的关系 顺序图嵌入状态图2、顺序图与用例图之间的关系 顺序图描述用例场景动态交互3、顺序图与类图对象图之间的关系 顺序图中描述的对象是多对象,对象来自于类,用例图用例文档头脑风暴类|场景顺序图对象、对象之间交互贞化数据图第十章一、什么是协作图 协作图与顺
8、序图,也是展示对象与对象之间交互,它描绘一组给定对象和给定环境为了完成某个目标而交换消息,从而实现一种行为的图形。DFD数据源 (汇点、源点)实体 加工 (处理 函数 子程序 方法) 数据流 (消息 参数 处理数据 数据结构 传递的消息) 数据文件(库表类属性)对象类 实化消息 方法 数据文件 数据流 加工 数据文件(消息 方法 数据文件)二、语义等价:顺序图与协作图很相似 实际上两者语义等价 也就是说这两种图形表达的是同一种信息,并且顺序图可以转换成协作图,反之亦然三、协作图组成元素 分类四角色 对象关联角色关系消息四、协作图与顺序图区别 协作图是按照空间顺序布图 顺序图是按照时间顺序布图协
9、作图有路径并有顺序号五、协作图的用途 如果是按照空间组织控制流的建模应该选用协作图,协作图对复杂的迭代和分支以对多并发的控制流的可视化建模要比顺序图好。六、协作图与其他图形之间的关系参看顺序图第十一章 活动图面向过程的软件开发过程 SP需求分析概要设计结构图详细设计HIPO 文档 H系统组成 I输入 P处理 O输出(NS流 NS盒图 PAD转换 伪码 判定树 判定表)程序清单E-R图 数据库设计状态转换图 界面OOSE用例图参与者(对象)、用例的场景(动词+名词)、用例有用例文档利用头脑风暴法分析用例分析类图E-R图 一、概念活动图是描述系统动态行为图形之一,它用于展示参与行为的类的活动。或展
10、示对象操作的一个过程。二、组成泳道 、状态(活动状态、动作状态)初始、终止、控制流、转换分叉、转换连接三、状态1、动作状态:对象的动作状态是活动图的最小单位构造块,它表示的是原子动作,它是以执行指定的动作,并在此完成通过交换转向另一个状态设置的状态。特点:1 原子性 2 不可中断 3 瞬时性2、活动状态(状态状态机):可理解是一个组合,它的控制流由其他活动状态,或者动作状态组成。四、转移控制流:当一个活动状态或一个动作状态结束时。该状态机会转移(转换)到下一个状态。这种转移和描述该状态的类的行为相关五、泳道:将活动图中的活动或状态进行分类,每一个泳道表示负责该活动业务组织。六、活动图用途:1
11、对工作流建模 2 对对象操作建模P125页 十一章 图11。13七、如何使用活动图进行动态建模1 识别要其工作流进行描述的类2 对动态的状态建模3 对动作流建模4 对对象流建模5对建模结果进行精华第十二章 构件图一、构件是定义开发时运用时的物理对象类,是系统中可以替换的物理部件:C+builder5 |C+builder6 | 基本组件不变。二、构件图(组件、工件)是面向对象系统物理方面建模时使用的两种图形之一,它描绘的组件以及组件之间的关系。而构件本身是代码的物理模块 构件图显示了代码结构。 场景顺序图、协作图对象发送和接受消息、调用方法改变状态SPE-R图-| -|-数据库 数据流-|-数
12、据字典-|-结构图 DOP 处理逻辑 匡架代码 状态迁移图-| -|-界面设计三、构件图组成1,构件 1,接口 3,关系四、接口是一个类提供给另一个类的一组操作 (导出借口、导入借口)uml1X(线圈线) UML2.0(线关节线)导出借口:由提供操作类或者构件提供导入借口:访问服务的构件或者类使用导入接口关系关联、泛化、依赖、实现(接口)构件 and 构件|类 and 类 | 接口关系五、构件和类之间关系1构件是类的实施2一个构件可以是一个类或是多个类的实施。3构件是物理实体建模4类是概念建模六、构件举例 1代码 2子系统3动态连接库 DLL4JAVABean5javaservlet6java
13、 server page七、构件分类1配置构件winmine.exe2工作产品构件用户存储数据文件保存以前最好成绩3执行构件成绩更新用户文件中,执行构件某科技城,进销存mis基本信息管理子系统mis、进货信息管理子系统mis、库存信息管理子系统mis、分析控制子系统mis、销售管理子系统mis基本信息管理子系统:科技城数据管理维护、科技城数据查询统计、商品数据维护管理、商品数据查询统计、商品类建立文件管理、商品类查询统计、进口货物国别建立文件设置、进口货物国别查询统计、厂商类数据统计工作、厂商类数据查询工作、第十三章:部署图一、部署图概念:是面向对象系统的物理方面建模时使用图形之一,它表示软件
14、系统如何布署在硬件环境中,一个UML部署图描述了一个运行时硬件节点,以及在这个节点上运行的软件组件的静态视图。二、部署图的组成元素:节点: 构件: 通信:三、节点:它本事是一种实体元素,其本身代表一种运算的资源,一般节点具有内存运算能力。四、节点的分类:1、可执行构件节点。2、不可执行构件节点。五、部署图用途:它是显示软件系统和不同构件将在何处物理运行,以及他们将如何彼此通信。六、节点和构件比较相同点:1,两者都有名称。2、两者之间都使用关系。(关联,泛化,依赖,实现)3,构件和节点都可运用嵌套的方式放置到其他的节点迷惑构件里面4,节点与构件都实例不同点:1,节点是执行构件的事物,而构件是系统
15、执行的事物2,节点是代表构件的实体部署,而构件是代表其他逻辑构件的实体。3,节点是构件所部署的位置,构件则是合作类等逻辑元素组成。小结UML组成一、元素事物1、结构元素2、行为元素3、分组元素包4、扩展元素5、注释元素二、关系1、关联关系2、泛化关系3、依赖关系4、实现关系三、图形1、静态图形 类图对象图用例图构件图部署图2、动态图形 状态图 顺序图 协作图 活动图第14章 一、包UML中一个元素,分组(分类)元素, 把一组相关的用例封装在一个包内子系统,把一组相关类封状在一个包内相关功能模块大型仓库管理信息系统用户管理商品管理供应商管理销售商管理 红色为界面类采购订单管理入库管理仓库的日常管
16、理销售订单管理出库管理运输管理财务管理 子系统UML组成:1、三大基本组成事物 关系 图形事物结构事物行为事物分组事物备注事物 结构事物 150页 类 接口 节点 参与者 用例 构件 (静态图形)行为事物消息 状态机 (动态图形)分组事物包 备注事物注释2、关系 关联关系 泛化关系(继承)依赖关系 实现关系关联关系 :聚集和组成关系3、图形静态图形 动态图形逻辑模型 物理模型逻辑模型:类、对象、用例、顺序、协作、状态、活动。物理模型:构件图,部署图 其余都属于逻辑模型1、类图静态设计视图不强调类中的行为-E-R图中实体 数据库的逻辑模型2、对象图进程对象之间的一个交互顺序图、协作图对象类对象类
17、 抽象对象类 实例化对象和对象建立关系称为链3、顺序图交互图形之一,强调消息发生时间顺序按照时间布图 描述是我们模型流程的控制活动的发展过程数据流图 数据流控制流 消息控制流和数据流结构图(so)控制流4、协作图交互图形之顺序图之间相互转换消息与对象之间的关系按照空间部署协作图消息、控制流、数据流5、用例图业务活动中来 用例文档参与者-前置条件 步骤 场景 后置条件 获意。238页文档 (软件工程)6、状态图消息 响应消息 之后发生的变化 状态图明确对象?类分析类、设计类 分析类强调类名属性 (实体类)E-R图 设计类强调类名属性 行为用例小人职员 建立新用户 建立新订单 活动图(方法执行过程
18、)-NS流程图编程7、活动图 一、发现用户的业务活动业务流程 用例参与者、用例的场景 业务活动的理解=活动图泳道-参与者、活动用例场景用例分类包子系统二、描绘对象执行流程没有泳道N-S流程图=编码=语言8、构件图 分析类E-R图数据库设计 顺序图或协作图框架代码 设计类状态图功能代码 界面 (通过用例)界面类界面构件图) 测试单元测试(组装 集成)功能(功能)系统验收(啊尔法测试、贝它测试)开发人员在场不在场测试后 运行运行部署图9、部署图1,软件部署节点没有硬件系统 2,已有的环境 和软件的部署第十五章一、开发方法1,结构化SP 2,面向对象OOSE二、开发模型1,瀑布 2,喷泉三、开发过程
19、(一)面向过程1,可行性分析 2,开发任务计划 3,需求分析 4,概要设计 5,详细设计 6,编码 7,测试运行维护(二)面向对象1,可行性分析2,开发任务计划3,需求获取4,分析5,设计6,实现(测试在其中)7,部署8,维护四、采用的开发模型(一)SP 1,E-R图 2,DFD状态迁移图 3,HIPO文档 4,N-S流程图 (二)OOSE 1,活动图 2,用例图 3,类图 4,对象1顺序图 2协作图 5,状态 6,活动 7,构件 8,部署需求收集(获取)步骤结果纸质文件(文档)用例 活动理解客户需要什么1, 项目经理2, 系统分析员3, 高级程序员 数据库架构师 系统架构师 网络架构师4,
20、程序员 编码 测试5,文档 编制文档运行维护客服分析阶段, 用例图 用例文档5部分充实用例 分析第3章复习现场-系统不明确-相对较完善-时间长联合开发(开会)-系统明确-相对不完善-时间短需求获取 业务活动有一定了解1 泳道参与者2 活动场景用例图分析五类客观事物头脑风暴法名词 形容词 动词类对象分析类 参与者与用例之间有边界 界面界面类界面分析类关联聚集 组成 泛化 依赖 实现 分析类图数据库逻辑模型(黄色部分)分析类实化 对象与对象关系顺序图按照时间顺序 协作图按照空间顺序 相互发消息方法接下AA()B()C()接上某一个对象状态图 描述用例图的场景 一个顺序图可以表示一个用例红色字体产生框架代码功能代码设计:分析类图对象和对象之间的关系细化设计类进销存MIS 供应商 销售商 工作人员 第一次进货 新建用户 新建定单 客户类 定单类帐户类 方法体 功能代码的处理逻辑 界面 数据库 框架代码 功能代码处理逻辑实现界面从构件中来 文档 测试 编程 客服运行网络拓扑图部署图界面原形快速原形法开发人员进入现场 文档不做 先开发界面