目录
第1部分
第1章软件工程与面向对象方法
1.1软件工程
1.1.1软件工程的历史
1.1.2软件工程的目标和原则
1.2面向对象方法
1.2.1面向对象方法简介
1.2.2面向对象方法的历史
1.2.3面向对象方法的概念
1.2.4面向对象方法的优点
小结
习题
第2章统一建模语言UML<p>目录</p> <p>第1部分</p> <p>第1章软件工程与面向对象方法</p> <p>1.1软件工程</p> <p>1.1.1软件工程的历史</p> <p>1.1.2软件工程的目标和原则</p> <p>1.2面向对象方法</p> <p>1.2.1面向对象方法简介</p> <p>1.2.2面向对象方法的历史</p> <p>1.2.3面向对象方法的概念</p> <p>1.2.4面向对象方法的优点</p> <p>小结</p> <p>习题</p> <p>第2章统一建模语言UML</p> <p>2.1UML简介</p> <p>2.2UML的历史</p> <p>2.2.1UML出现的历史背景</p> <p>2.2.2UML的诞生与标准化</p> <p>2.2.3UML 2的诞生</p> <p>2.3UML的目标与应用范围</p> <p>2.3.1UML的目标</p> <p>2.3.2UML的应用范围</p> <p>小结</p> <p>习题</p> <p>第3章初识UML</p> <p>3.1UML构造块</p> <p>3.1.1事物</p> <p>3.1.2关系</p> <p>3.1.3图</p> <p>3.2UML通用机制</p> <p>3.2.1规格说明</p> <p>3.2.2修饰</p> <p>3.2.3通用划分</p> <p>3.2.4UML扩展机制</p> <p>3.3“4 1”架构</p> <p>3.3.1“4 1”架构的概念和组成</p> <p>3.3.2“4 1”架构要解决的问题</p> <p>3.3.3运用“4 1”视图方法进行软件架构设计</p> <p>3.4UML建模工具</p> <p>小结</p> <p>习题</p> <p>第2部分</p> <p>第4章用例图</p> <p>4.1用例图简介</p> <p>4.2用例图的组成元素</p> <p>4.2.1参与者</p> <p>4.2.2用例</p> <p>4.2.3用例图中的关系</p> <p>4.3用例描述</p> <p>4.3.1什么是用例描述</p> <p>4.3.2前置条件与后置��件</p> <p>4.3.3事件流</p> <p>4.3.4补充约束</p> <p>4.3.5用例文档</p> <p>4.4应用用例图建模</p> <p>4.4.1用例图建模技术</p> <p>4.4.2用例图使用要点</p> <p>4.5实验: 绘制机票预订系统的用例图</p> <p>小结</p> <p>习题</p> <p>第5章类图</p> <p>5.1什么是类图</p> <p>5.2类图的组成元素</p> <p>5.2.1类</p> <p>5.2.2接口</p> <p>5.2.3类图中的关系</p> <p>5.2.4类的**概念</p> <p>5.3应用类图建模</p> <p>5.3.1类图建模技术</p> <p>5.3.2使用类图进行正向工程与逆向工程</p> <p>5.3.3面向对象的设计原则</p> <p>5.4实验: 绘制机票预订系统的类图</p> <p>小结</p> <p>习题</p> <p>第6章对象图</p> <p>6.1什么是对象图</p> <p>6.2对象图的组成元素</p> <p>6.2.1对象</p> <p>6.2.2链</p> <p>6.3应用对象图建模</p> <p>6.3.1对象图建模技术</p> <p>6.3.2使用对象图进行逆向工程</p> <p>6.3.3对象图使用要点</p> <p>6.4实验: 绘制机票预订系统的对象图</p> <p>小结</p> <p>习题</p> <p>第7章包图</p> <p>7.1什么是包图</p> <p>7.2包图的组成元素</p> <p>7.2.1包</p> <p>7.2.2包的依赖关系</p> <p>7.3包图的建模技术</p> <p>7.4实验: 绘制机票预订系统的包图</p> <p>小结</p> <p>习题</p> <p>第8章顺序图</p> <p>8.1什么是顺序图</p> <p>8.2顺序图的组成元素</p> <p>8.2.1对象与生命线</p> <p>8.2.2激活</p> <p>8.2.3消息</p> <p>8.3顺序图中的结构化控制</p> <p>8.4顺序图建模技术</p> <p>8.5顺序图的变体——时间图</p> <p>8.6实验: 绘制登录用例的顺序图</p> <p>小结</p> <p>习题</p> <p>第9章通信图</p> <p>9.1什么是通信图</p> <p>9.2通信图的组成元素</p> <p>9.2.1对象</p> <p>9.2.2链</p> <p>9.2.3消息</p> <p>9.3通信图与顺序图</p> <p>9.4通信图建模技术</p> <p>9.5实验: 绘制查询航班用例的通信图</p> <p>小结</p> <p>习题</p> <p>第10章状态机图</p> <p>10.1什么是状态机图</p> <p>10.1.1状态机</p> <p>10.1.2状态机图概述</p> <p>10.2状态机图的组成元素</p> <p>10.2.1简单状态</p> <p>10.2.2转换</p> <p>10.2.3伪状态</p> <p>10.2.4复合状态</p> <p>10.3状态机图的建模技术</p> <p>10.4实验: 绘制航班类的状态机图</p> <p>小结</p> <p>习题</p> <p>第11章活动图</p> <p>11.1什么是活动图</p> <p>11.2活动图的基本组成元素</p> <p>11.2.1动作和活动节点</p> <p>11.2.2开始和终止</p> <p>11.2.3控制流</p> <p>11.2.4判断节点</p> <p>11.2.5合并节点</p> <p>11.2.6泳道</p> <p>11.3活动图的**组成元素</p> <p>11.3.1分叉节点与结合节点</p> <p>11.3.2对象流</p> <p>11.3.3扩展区域</p> <p>11.4活动图建模技术</p> <p>11.5实验: 绘制用户购票的活动图</p> <p>小结</p> <p>习题</p> <p>第12章组件图</p> <p>12.1什么是组件图</p> <p>12.2组件图的组成元素</p> <p>12.2.1组件</p> <p>12.2.2接口</p> <p>12.2.3端口</p> <p>12.2.4组件的内部结构</p> <p>12.3组件图的建模技术</p> <p>12.4实验: 绘制机票预订系统的组件图</p> <p>小结</p> <p>习题</p> <p>第13章部署图</p> <p>13.1什么是部署图</p> <p>13.2部署图的组成元素</p> <p>13.2.1节点</p> <p>13.2.2连接</p> <p>13.3部署图建模技术</p> <p>13.4实验: 绘制机票预订系统的部署图</p> <p>小结</p> <p>习题</p> <p>第3部分</p> <p>第14章统一软件开发过程</p> <p>14.1统一软件开发过程概述</p> <p>14.1.1什么是软件开发过程</p> <p>14.1.2统一软件开发过程简介</p> <p>14.1.3统一软件开发过程的发展历程</p> <p>14.2过程总览</p> <p>14.3阶段和迭代——时间维度</p> <p>14.3.1起始阶段</p> <p>14.3.2细化阶段</p> <p>14.3.3构建阶段</p> <p>14.3.4转化阶段</p> <p>14.3.5迭代</p> <p>14.4过程的静态结构</p> <p>14.4.1工作者</p> <p>14.4.2活动</p> <p>14.4.3制品</p> <p>14.4.4工作流</p> <p>14.4.5核心工作流</p> <p>14.5在统一软件开发过程中使用UML</p> <p>14.5.1起始阶段常用UML图</p> <p>14.5.2细化阶段常用UML图</p> <p>14.5.3构建阶段常用UML图</p> <p>14.5.4转化阶段常用UML图</p> <p>小结</p> <p>习题</p> <p>第15章小型网上书店系统</p> <p>15.1小型网上书店系统的需求分析</p> <p>15.1.1项目背景描述</p> <p>15.1.2系统需求分析</p> <p>15.1.3用户管理模块</p> <p>15.1.4订单管理模块</p> <p>15.1.5书目管理模块</p> <p>15.2系统的UML基本模型</p> <p>15.2.1需求分析阶段模型</p> <p>15.2.2基本动态模型</p> <p>15.3类的设计与实现</p> <p>15.3.1系统设计类</p> <p>15.3.2类的实现</p> <p>15.4系统的组件图和部署图</p> <p>15.4.1系统的组件图</p> <p>15.4.2系统的部署图</p> <p>第16章小型二手货交易系统</p> <p>16.1需求分析部分</p> <p>16.1.1子系统划分</p> <p>16.1.2系统功能需求</p> <p>16.1.3非功能需求</p> <p>16.2系统设计部分</p> <p>16.2.1系统设计类图</p> <p>16.2.2关键用例的动态模型</p> <p>16.2.3类的代码框架</p> <p>第17章汽车服务管理系统</p> <p>17.1汽车服务管理系统的需求分析</p> <p>17.1.1系统功能需求</p> <p>17.1.2车辆及路线管理模块</p> <p>17.1.3人员管理模块</p> <p>17.1.4信息管理模块</p> <p>17.2系统的UML基本模型</p> <p>17.2.1需求分析阶段模型</p> <p>17.2.2基本动态模型</p> <p>17.3系统中的类</p> <p>17.3.1系统类图</p> <p>17.3.2生成类的代码框架</p> <p>17.4系统的划分与部署</p> <p>17.4.1系统的包图</p> <p>17.4.2系统的部署图</p> <p>习题答案</p> <p>参考文献</p>显示全部信息前 言前言
随着人类迈进信息时代,计算机软件越来越多地应用到系统控制、资源调配、数据分析等工作中。因此,对软件产品的**性、稳定性和效率提出了更高的要求。而软件的开发需要人的智慧,很难工程化,这有可能导致在计算机软件开发和维护过程中遇到一系列问题。为解决好这些问题,软件工程学科应运而生。
在软件工程学科发展历程中,UML(Unified Modeling Language,统一建模语言)作为一种定义良好、易于表达、功能强大且使用范围广泛的标准建模语言,获得了工业界、科技界的广泛支持。它融入了软件工程领域的许多新兴的思想、方法和技术,支持从需求分析开始的软件开发的全过程。时至**,UML已然成为世界公认的面向对象标准建模语言。熟练使用UML建模,是软件工程师、软件设计师的基本素质。对于学生而言,UML可以起到**认识软件工程核心要素,以体系化、工程化方法思考软件开发过程,清晰各部分逻辑的重要作用。<p> 前言</p> <p>随着人类迈进信息时代,计算机软件越来越多地应用到系统控制、资源调配、数据分析等工作中。因此,对软件产品的**性、稳定性和效率提出了更高的要求。而软件的开发需要人的智慧,很难工程化,这有可能导致在计算机软件开发和维护过程中遇到一系列问题。为解决好这些问题,软件工程学科应运而生。</p> <p>在软件工程学科发展历程中,UML(Unified Modeling Language,统一建模语言)作为一种定义良好、易于表达、功能强大且使用范围广泛的标准建模语言,获得了工业界、科技界的广泛支持。它融入了软件工程领域的许多新兴的思想、方法和技术,支持从需求分析开始的软件开发的全过程。时至**,UML已然成为世界公认的面向对象标准建模语言。熟练使用UML建模,是软件工程师、软件设计师的基本素质。对于学生而言,UML可以起到**认识软件工程核心要素,以体系化、工程化方法思考软件开发过程,清晰各部分逻辑的重要作用。</p> <p>我们阅读了市面上大量与UML相关的书籍,发现了其中一些缺陷和不足。例如,使用的规范过旧(如UML 1规范,*新则是UML 2.4); 将案例与UML概念的讲解分离开,开发过程不符合软件工程过程的工作流,甚至不提供开发案例,无法让读者从开发过程中深入体会UML的作用,也不能加深读者对概念的印象; 讲解过于针对实例,读者很难根据其描述扩展到解决自己的问题上; 结构混乱,描述过于抽象; 讲解枯燥,缺少实例; 等等。</p> <p>本书在以下几个重要方面有突出特色:</p> <p>目标针对性强。本书针对国内计算机、软件相关专业学生,旨在让有一定程序编写能力、未来有志从事软件开发和设计工作的学生学习标准的建模语言,获得设计软件的逻辑能力以及对软件内部各种组织结构的表达能力,为后续课程的学习和求职打下坚实的基础。</p> <p>内容保持*新。本书结合了互联网时代软件思想更新快的特点,坚持使用*新的UML标准; **介绍使用新技术的案例,避免使用老式的、可能导致潜在风险的分析和设计方法。</p> <p>结构合理,引人入胜。本书结构安排合理,由浅入深,先从读者了解的现实世界入手,抽象出UML的核心概念,而不是“填鸭式”地灌输。在简要介绍UML的元素后,通过提出一个现实需求,引发读者的思考。之后展示UML的十种图,由于读者对核心概念已了然于心,只需要专注于将元素对应到图例符号,减轻了学习难度,激发了学生的思考。</p> <p>理论结合实践。在讲解UML的视图和图的过程中穿插进了一个实际的软件开发案例,让学生从实践中体会UML的简洁性和重要性,加深对UML概念的印象。在书的*后几章给出了更多的软件工程具体实例,让教师能采用丰富的例子进行教学,同时学生也能够了解到更多的工程相关知识,提高软件分析和设计的综合能力。</p> <p>需要说明的是,本书遵照UML 2规范,主要使用Enterprise Architect软件进行绘图。因此,可能会有部分术语以及图的细节与UML 1.x规范中的图不同。例如: UML 1.x中的“协作图”改名为“通信图”,UML 2规范中顺序图与协作图中不再在对象名称下添加下画线,等等。</p> <p>本书的作者为吕云翔、赵天宇、丛硕,曾洪立、吕彼佳、姜彦华负责了素材整理及配套资源制作等工作。由于我们的水平和能力有限,本书难免有疏漏之处。</p> <p>编者</p> <p>2018年2月</p> <p> </p> <p> </p> <p> </p>显示全部信息免费在线读第5章类图
类图用来描述系统内各种实体的类型以及不同的实体之间是如何彼此关联的,显示了系统的内部静态结构,因此类图的描述对于系统的整个生命周期都是有效的。如果说用例图是系统的“面子”,那么类图就是系统的“里子”。类图不仅包含了系统定义的各种类,还包含了各种关系,如关联、泛化和依赖等。类图大部分涉及对系统的词汇建模、对协作建模或对模式建模。作为面向对象系统的建模中*常见的图,类图是组件图与部署图的基础,它不仅对结构模型的可视化、详述和文档化很重要,而且对通过正向与逆向工程构造可执行的系统也很重要。
5.1什么是类图类图(class diagram)是显示一组类、接口、协作以及它们之间关系的图。一个类图主要通过系统中的类以及各个类之间的关系来描述系统的静态结构。类图与数据模型有许多相似之处,区别就在于类不仅描述了系统内部信息的结构,也包含了系统的内部行为,系统通过自身行为与外部事物进行交互。类图主要包含七种元素: 类、接口、协作、依赖关系、泛化关系、实现关系和关联关系。类图中还可以含有包或子系统,用来把模型元素聚集成更大的组块。与其他UML图类似,类图同样可以创建约束和注释等。图51显示了一个类图,读者可以在学习完本章全部内容之后再来尝试阅读这个类图所描述的情境。
图51类图
5.2类图的组成元素本节将**介绍类图的组成元素: 类、接口以及类图中的四种关系。5.2.1类类(class)是一组拥有相同的属性、操作、方法、关系和行为的对象描述符。一个类代表了被建模系统中的一个概念。根据模型种类的不同,此概念可能是现实世界中的(对于分析模型),也可能是包括算法和计算机实现的概念(对于设计模型)。类是面向对象系统组织结构的核心。类定义了一组有着状态与行为的对象。类的状态由属性和关联来描述,个体行为由操作来描述,对象的生命周期则由附加给类的状态机来描述。在UML中,类表达成一个有三个分隔区的矩形。其中顶端显示类名(name),中间显示类的属性(attribute),尾端显示类的操作(operation),如图52所示。其中,可选择显示属性和操作的可见性、属性类型、属性初始值、操作的参数列表和操作的返回值等信息。此外,也可以选择隐藏类的属性或操作部分,隐藏了这两部分的类简化为一个只显示类名的矩形,如图53所示。
图52类
图53隐藏属性和操作的类