软件建模与UML.

Slides:



Advertisements
Similar presentations
第 2 章 Java 运行环境搭建 2.1 Java 的运行系统 2.1 Java 的运行系统 2.2 JDK 的安装与配置2.2 JDK 的安装与配置 2.3 Java 开发工具包 2.4 Java 源文件编辑环境的选择 2.5 Application 和 Applet 程序的编写与运行.
Advertisements

Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第一章 Java 程序设计技术 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档.
Java 程序设计 案例教程 北京大学出版社 第 01 章. Java 程序设计案例教程 第 01 章 Java 语言与面向对象程序设计 Java 语言的历史 Java 语言的特点 Java 程序的分类 Java 环境配置 Eclipse 的安装 Java 程序的调试 教学目标.
Java 程序设计(第二版) 普通高等教育 “ 十一五 ” 国家级规划教材 辛运帷等 编著 徐小平 主讲.
系統分析與設計 楊子青 H-1 H 、物件導向技術 n 物件導向的基本概念 – 物件、類別 – 封裝、繼承 – 同名異式 ( 多型 ) 、超荷 ( 過載 ) n 物件導向分析與設計及塑模工具 n UML 塑模工具.
有教無類 因材施教 適性揚才 多元進路 優質銜接
第6章 对象和类.
<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
第1章 Java语言概述.
《 Java开发环境配置》 主讲人:耿力.
軟體工程 -物件導向程式設計與UML系統分析實作
我征服了黃山 林達的黃山之旅 2006春.
Java程序设计教程 第一讲 Java概述.
第一章 系統開發概論 1-1 系統開發概論 1-2 常見的資訊系統 1-3 系統開發生命週期 1-4 系統開發方法論簡介.
美学概论 主讲教师 孙建章 沈阳电大文法系.
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
第二章 UML簡介 課前指引 本章介紹什麼是UML以及利用圖形來塑模資訊系統的好處在哪裡。文中也介紹了何謂「4+1的觀點」、以及簡述各項UML圖形的使用目的。並且,我們從靜態以及動態這兩個觀點來分類、介紹各圖形的使用時機。
比爾蓋茲導讀.
第一章 面向对象程序设计.
第10章 考试系统的分析与设计 1.
普通高等教育“十一五”国家级规划教材 信息系统分析与设计 刘腾红 孙细明 主编 科 学 出 版 社.
《公共事物的治理之道》 Governing the Commons
類別與物件 Class & Object.
第9章 面向对象方法学引论 9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型
第八章 分析與設計階段 – 物件導向設計(OOD)
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
H、物件導向技術 物件導向的基本概念 物件、類別 封裝、繼承 同名異式(多型) 、超荷(過載) 物件導向分析與設計及塑模工具 UML塑模工具.
軟體工程 -物件導向程式設計與UML系統分析實作
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
第10章 使用個案塑模.
Chapter 9 設計的精細製作: 行動計算 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz.
物件導向系統分析與設計與UML.
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
第1章 .NET与C# 为什么要设计一门新的编程语言? C#在微软的.Net平台中占据什么样的地位?
开发Eclipse插件的基本步骤 插件通过添加到预定义的扩展点来向平台添加功能。要将程序代码变成插件,需要: 决定插件如何与平台集成
CH09 套件 物件導向程式設計(II).
软件建模精要 面向对象软件建模技术.
JUDE教學 Jude安裝教學篇 Jude初步介紹篇 Jude繪圖介紹篇 介紹jude的安裝和下戴 介紹jude的初基本功能
第9章 類別圖與物件圖 9-1 類別圖與物件圖的基礎 9-2 類別圖的符號 9-3 類別關係 9-4 物件圖 9-5 繪製類別圖與物件圖
第4章 物件導向分析與設計簡介 4-1 物件導向的軟體系統開發 4-2 物件導向分析與設計 4-3 UML的物件導向分析與設計
Java语言程序设计 第八部分 Applet小程序.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
UML类设计工具 任课老师:黄武 上午2时50分 10.
UML介绍.
實作一個電腦輔助軟體工程工具以提昇軟體文件 可追蹤性及軟體可維護性
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
Advanced Basic Key Terms Dependency Actor Generation association
两种不同类别的软件: 功能预定义软件;用户驱动的软件。他们对软件工程方法有不同的需求
第11章 系统结构与包模型模型.
UML语言.
管理信息系统 第九章 面向对象的系统开发方法.
《JAVA程序设计》 语音答疑 辅导老师:高旻.
第13章 設計模型 13-1 再談物件導向設計 13-2 建立互動圖 13-3 建立狀態機圖 13-4 設計模型的類別圖
ER Model.
用例图.
第十一章 物件資料結構塑模.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第6章 面向对象开发的 分析与设计.
IEEM 5352 Enterprise Integration
辅导课程十一.
第二章 Java基本语法 讲师:复凡.
UML ISKM Lab.
Applet.
----以《西北民族音乐学术资源数据库》为例 西安音乐学院 景 月 亲
第十章 面向对象 (2).
Summary
变量定位图形 Java中数据的类型分为四种:基本数据类型、数组类型、类类型以及接口类型。任何常量和变量都一定是上述四种数据类型中的一种。简单数据类型的实例化有两种:变量和常量。 变量名和常量名必须是Java语言中合法的标识符。 常量是在程序运行期间值不改变的量。 变量是在程序运行期间值可通过赋值改变的量,
Presentation transcript:

软件建模与UML

为什么要进行软件建模? 软件系统越来越大,任何个人都不可能单独管理这些代码; 没有参加开发的人员无法直接理解程序代码; 我们需要一种描述复杂系统的简单方法。

软件建模的概念 软件建模(Modeling):将所要设计的结构和系统的行为融汇贯通,对系统的体系结构进行可视化和控制,化解复杂性的问题,有效地管理开发风险,从而开发出高品质的软件。 面向对象的建模方法:人们在问题空间或解空间中识别各种对象,并对其进行抽象化描述,从不同的视角建立模型,形成系统的不同视图,并以对象或类作为软件系统的主要构造块 。始于80年代初。

UML的发展历史

什么是UML?(1) 统一建模语言(Unified Modeling Language,UML):一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言,从企业信息系统到基于Web的分布式应用,甚至严格的实时嵌入式系统都适合于用UML来建模。 它是一种富有表达力的语言,可以描述开发所需要的各种视图,并以此为基础组建系统。

什么是UML?(2) UML是一种语言 UML是一种可视化的建模语言 UML是一种可用于详细描述的语言 UML是一种构造语言 UML不是一种可视化的编程语言,但它所描述的模型可以映射(正向工程/逆向工程)成不同的编程语言,如JAVA、C++和Visual Basic等。 UML是一种文档化语言 UML不是过程,也不是方法,但允许任何一种过程和方法使用它。它可以建立系统体系结构及其详细文档。

UML的概念模型:视图(1) 视图(Views):每个视图代表系统的一个抽象,反映了系统中的一个特定方面,从而使不同的人员关注系统的不同方面。

UML的概念模型:视图(2) 用例视图(Use Case View) 设计视图(Design View) 描述系统应该具有的功能集,它从系统外部用户的角度出发,实现对系统的抽象表示。 角色(Actor)代表外部用户或其他系统,用例(Use-case)表示系统能够提供的功能,通过列举角色和用例,显示角色在每个用例中的参与情况。 其他视图的核心和基础,其他视图的构造和发展依赖于用例视图所描述的内容。 静态地描述系统功能,主要为用户、设计人员、开发人员和测试人员而设置。 设计视图(Design View) 用来揭示系统功能的内部设计和协作情况。 利用静态结构和动态行为描述系统的功能。 静态结构描述类、对象及其关系等,动态行为主要描述对象之间发送消息时产生的动态协作、一致性和并发性等。 进程视图(Process View) 进程视图描述系统的并发工作状况,它包含形成系统并发与同步机制的线程和进程,主要提供给系统开发商和集成商。 实现视图(Implementation View) 实现视图由一些独立的构件和文件组成,显示实现模块及其之间的依赖关系。 分布视图(Deployment View) 分布视图主要描述系统的物理架构,显示系统硬件拓扑结构的节点,提供给开发人员、集成人员和测试人员。

UML的概念模型:图(1) 图(Diagrams):系统模型中每一个视图的内容是由一些图来描述的,UML中包含九种图。 对整个系统而言,其功能由用例图描述,静态结构由类图和对象图描述,动态行为由状态图、时序图、协作图和活动图描述,而物理架构则是由组件图和分布图描述。

UML的概念模型:图(2) 用例图 类图 对象图 状态图 时序图和协作图 活动图 组件图 分布图 用例图定义了系统的功能需求,它完全是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。 类图 类图描述系统的静态结构,表示系统中的类以及类与类之间的关系。 对象图 对象图描述了一组对象以及它们之间的关系,表示类的对象实例。 状态图 状态图表示一个状态机,强调对象行为的事件顺序。 时序图和协作图 时序图和协作图均表示一组对象之间的动态协作关系,两者之间可以相互转换。 时序图反映对象之间发送消息的时间顺序,协作图反映收发消息对象的结构组织。 活动图 活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。 组件图 组件图描述组件以及它们之间的关系,表示系统的静态实现视图。 分布图 分布图反映了系统中软件和硬件的物理架构,表示系统运行时的处理节点以及节点中组件的配置。

售票系统的用例图

售票系统的类图

包图

顺序图

协作图

状态图

活动图

构件[组件]图

部署[分布]图(描述层)

部署[分布]图(实例层)

UML的概念模型:模型元素 (1) 模型元素(Model Elements):由一些基本的构造元素以及它们之间的连接关系组成 。

UML的概念模型:模型元素 (2) 类:对一组具有相同属性、相同操作、相同关系和相同语义的对象的描述。 对象:类的实例。 接口:描述一个类或组件的服务的操作集。 用例:对一组动作序列的描述。 状态机:描述了一个对象响应事件所经历的状态序列。 组件:系统中物理的、可替代的部件。 节点:在运行时存在的物理元素。 包:把元素组织成组的机制。 注解:依附于一个或一组元素之上,对其进行约束或解释。 依赖:一种使用关系,它描述了一个事物的变化会影响到另一个使用它的事物。 关联:一种结构关系,说明一个事物的对象与另一个事物的对象间的联系。 泛化:一种一般事物(父类)和特殊事物(子类)之间的关系。 实现:一个类元指定了由另一个类元保证执行的契约,例如接口和实现它们的类或组件之间的关系。

[类表示法]

[用例之间的关系]

[状态机]

[带接口的构件] [构件图中的构件]

[部署图中的节点]

[包和包间的关系]

[关联表示法] [限定关联] [关联的设计特性] [关联类]

[泛化表示法] [多重继承]

[实现关系] [接口和实现图标 ]

[依赖关系]

[约束关系]

UML的概念模型:语义规则 语义规则(Rules):用于建立语义一致、与其他模型协调的良好模型。 命名(Name):为事物、关系和图起名; 范围(Scope):给一个名称以特定含义的语境; 可见性(Visibility):如何使一个名字被外部识别和使用,它包括public(公共)、protected(保护)、private(私有)三种可见性,分别用“+”、“#”和“-”表示; 完整性(Integrity):事物如何正确地、一致地相互联系; 可执行性(Execution):运行或模拟动态模型的含义是什么。

UML的概念模型:公共机制 说明(Specification):规定了对于每一个UML图形的文字说明的语法和语义。 修饰(Adornment):对UML元素加上各种修饰,说明该元素最重要特征之外的其他方面的细节特征。 通用划分(Common Division):UML的模型元素有两种划分,即型-实例、接口-实现。 型-实例:是一个通用描述符与单个元素项之间的对应关系,如类与对象的划分、数据类型与数据值的划分; 接口-实现:接口声明了一个约定,而实现则负责执行接口的全部语义。 扩展机制(Extensibility):允许UML的使用人员根据需要在不用改变基本建模语言的情况下自定义一些构造型语言成分。 约束(constraint)扩展了UML构造元素的语义,它是用文字表达式表示的语义限制。 标记值(tagged value)扩展了UML构造元素的特性,它是附加到任何模型元素上的命名的信息块。 构造型(stereotype)扩展了UML的语汇,它是在一个已定义的模型元素的基础上构造的一种新的模型元素。

UML的概念模型:扩展机制示例

UML建模示例(1) import java.awt.Graphics; class HelloWorld extends java.applet.Applet { public void paint (Graphics g) { g.drawString("Hello, World!", 10,10); } } HelloWorld抽象模型

UML建模示例(2) 与HelloWorld直接相关的类

UML建模示例(3) HelloWorld的继承层次

UML建模示例(4) HelloWorld包

UML建模示例(5) painting机制

UML建模示例(6) HelloWorld构件

UML的应用 支持用例驱动 以体系结构为中心 迭代的或增量的开发过程 用例成为系统分析、设计、测试、编写文档的基础。 在开发过程中对系统进行抽象、构造、管理和改进。 迭代的或增量的开发过程 软件开发人员渐进地开发和逐步完善软件系统,每一次迭代都产生比上一次发布有所改善的新发布,而每一次发布都努力处理和降低项目风险。