1、软件建模技术中国水利水电出版社中国水利水电出版社高职高专计算机类专业“十二五”规划教材主编 曹静软件建模技术第一部分第一部分 基基 础础 篇篇1 第二部分第二部分 实实 践践 篇篇2第三部分第三部分 工工 具具 篇篇 3第10章 需求分析 10.1 需求分析概述 10.1.1 什么是软件需求 10.1.2 需求分析的目的 10.1.3 需求的类型 10.1.4 需求验证 10.1.5 实例需求验证 10.2 捕获及整理需求 10.2.1 信息收集的方法及策略 10.2.2 整理需求的一般方法 10.2.3 实例完善需求第10章 需求分析10.3 需求建模的要领10.3.1 需求建模的意义10.
2、3.2 需求建模的内容10.3.3 建立用例模型的步骤10.3.4 实例需求建模10.4 案例完善:书店借书系统需求整理10.5 案例完善:书店借书系统需求建模10.5.1 确定系统边界 10.5.2 识别参与者 10.5.3 识别用例 10.5.4 建立用例图 10.5.5 书写用例文档 10.5.6 通过关系整理用例 教学要求 掌握:需求整理的方法;需求建模的方法步骤。理解:需求分析在软件开发中的地位作用。了解:信息收集的方法策略。第第10章章 需求分析需求分析10.1 需求分析概述 v10.1.1 10.1.1 什么是软件需求什么是软件需求 软件需求与业务系统的关系 优秀的软件需求具有以
3、下几个主要的属性:(1)可验证性(2)可行性(3)优先级(4)唯一性(5)完整性(6)确定性10.1 需求分析概述 需求分析的过程:捕获需求、整理需求、确定软件需求、完善需求的过程。需求分析的目的:用于说明软件产品或软件项目需要满足的条件和限制,准确界定软件系统的边界,并在开发者和用户间达成一致。v10.1.2 10.1.2 需求分析的目的需求分析的目的 10.1 需求分析概述 面向对象的需求分析具有如下的两个特点:(1)需求分析是一个项目的开始。通过对软件需求的提取、分析、文档化和验证,为进一步的设计和实现提供依据。(2)需求分析将贯穿软件的整个生命周期。面向对象的软件开发过程是一个反复迭代
4、的过程。v10.1.2 10.1.2 需求分析的目的需求分析的目的 10.1 需求分析概述 v10.1.2 10.1.2 需求分析的目的需求分析的目的 需求分析师与其他开发人员间的关系 10.1 需求分析概述 系统需求分为功能需求和非功能性需求两类,分为如下几个方面:(1)功能性(2)可用性(3)可靠性(4)性能(5)可支持性(6)设计需求(7)实施需求(8)接口需求(9)物理需求v10.1.3 10.1.3 需求的类型需求的类型 10.1 需求分析概述 需求的验证需求从以下几方面进行:(1)正确性(2)无二义性(3)完整性(4)可验证性(5)一致性(6)可理解性(7)可修改性(8)可跟踪性(
5、9)设计无关性(10)注释 v10.1.4 10.1.4 需求验证需求验证 需求分析的稳定性 10.1 需求分析概述 “A:产品必须在固定的时间间隔内提供状态消息,且每次时间间隔不得小于60秒。”问题:需求不完整,导致需求不可验证。改进方案:需要明确是什么“产品”?“固定的时间间隔”确切的指多少?怎样显示“状态信息”?显示什么“状态信息”?v10.1.5 10.1.5 实例实例需求验证需求验证 10.2 捕获及整理需求 1信息的分类 业务信息。系统的目标和目的、产品和服务、财务结构和主要组织结构之间的相互作用。应用程序信息。支持业务流程的自动化和非自动化服务。运营信息。运行业务流程所需的信息。
6、技术信息。执行和支持业务任务的技术服务。v10.2.1 10.2.1 信息收集的方法及策略信息收集的方法及策略 10.2 捕获及整理需求 2.信息收集的方法 v10.2.1 10.2.1 信息收集的方法及策略信息收集的方法及策略 10.2 捕获及整理需求 3.信息来源 成品 系统 人 4.定义信息收集策略 收确定信息范围、信息收集的时间框架、记录信息的方法。放考虑所有的看法、信息类型和信息来源。比较从使用类似业务流程的不同工作组收集信息进行比较。v10.2.1 10.2.1 信息收集的方法及策略信息收集的方法及策略 10.2 捕获及整理需求 确定需求的任务主要是:(1)在收集信息的整个过程中创
7、建候选需求的清单。(2)扩展候选需求清单 重新检查收集来的所有信息,从中寻找潜在的候选需求。确定候选需求,候选需求是需要进一步收集的信息。收集这些信息。完善需求的任务主要是:(1)分清需求和期望之间的区别。(2)确定约束和假定 约束是一种已设定的边界,如预算。澄清假定可以避免误解。(3)识别隐藏的需求v10.2.210.2.2整理需求的一般方法整理需求的一般方法 10.2 捕获及整理需求 原始信息:验证用户可以通过网上银行查询并分析当月及过往的所有收支情况。由该项记录所引发的问题:怎样成为验证用户?怎样作当月及过往收支情况的查询、分析?完善后的信息:用户必须经过网上银行验证。用户可通过网上银行
8、查询当月收入、支出情况。用户可通过网上银行查询过往收入、支出情况。用户可通过网上银行分析当月收入、当月支出情况,进行当月收支比较。用户可通过网上银行分析过往收入、过往支出情况,进行过往收支比较。用户可通过网上银行进行过往收入和当月收入、过往支出和当月支出比较。进一步引发的问题:分析当月及过往收支情况指的是做哪方面的分析?v10.2.3 10.2.3 实例实例完善需求完善需求 10.3 需求建模 需求建模可以清楚地阐明复杂的问题。对于当前的状态,建模可以识别出当前需求、问题和风险、缺少的信息。这种形象直观的手段,有助于在开发人员和用户之间更好的进行沟通。v10.3.1 10.3.1 需求建模的意
9、义需求建模的意义 10.3 需求建模 需求建模的主要内容是:通过用例模型(用例图+用例文档)捕获、表示系统的功能性需求;结合活动图、顺序图等动态模型建模用例的行为;用领域类图描述系统的一些重要的业务概念之间的关系。需求模型的主体是建立用例模型。v10.3.2 10.3.2 需求建模的内容需求建模的内容 10.3 需求建模 整个用例模型的创建过程是一个迭代过程,步骤如下:(1)确定系统边界。(2)识别参与者。(3)识别用例。(4)区分用例的优先次序。(5)书写用例文档。(6)通过关系整理用例(确定泛化、包含、扩展关系)。v10.3.3 10.3.3 建立用例模型的步骤建立用例模型的步骤 10.3
10、 需求建模v10.3.4 10.3.4 实例实例需求建模需求建模 Windows操作系统自带的“画图”软件 10.4 案例完善:书店借书系统需求整理 一开发一个可理解的需求 二倾听相关人员的需求 三书店借书系统需求建模 (1)确定系统边界。(2)识别参与者。(3)识别用例。(4)建立用例图(5)书写用例文档。(6)通过关系整理用例。本章小结需求分析是从用户的角度看问题,描述系统需要“做什么”。我们可以将其分为需求捕获和需求分析两个阶段,它的目标是得到一个稳定的需求,在用户和开发人员之间达成一致。需求建模主要是对功能性需求的建模,用例模型是需求建模的主要内容,我们认为用例模型由用例图和用例文档两
11、部分组成,没有用例文档的用例图不具有任何可操作性。为表达业务流程我们也会辅以活动图或高层顺序图。为表达业务领域的主要概念及其相互关系,我们可以绘制领域类图,这个阶段的类图由于使用的是业务领域的概念,得到的是用户都很容易理解的类。中国水利水电出版社软件建模技术中国水利水电出版社中国水利水电出版社高职高专计算机类专业“十二五”规划教材主编 曹静软件建模技术第一部分第一部分 基基 础础 篇篇1 第二部分第二部分 实实 践践 篇篇2第三部分第三部分 工工 具具 篇篇 3第11章 系统分析 11.1 系统分析的内容及方法 11.1.1 系统分析与分析模型 11.1.2 建立分析模型的方法 11.2 如何
12、识别对象 11.2.1 确定问题域内的对象 11.2.2 确定对象间的关联关系 11.2.3 确定对象的属性 11.2.4 建立继承关系 11.2.5 定义服务 11.2.6 实例建模“电子办公桌系统”的类模型第11章 系统分析 11.3 识别实体对象 11.3.1 识别实体对象的方法 11.3.2 实例超市收银系统的实体类图 11.4 建立分析类模型 11.4.1 建立分析类模型的方法 11.4.2 实例“网上购物系统”的分析模型 11.5 案例完善:书店借书系统的分析模型 11.5.1 建模实体类图 11.5.2 建模分析模型 11.1 系统分析的内容及方法 需求分析是从“用户”的角度说明
13、系统即将“做什么”系统分析是从“开发者”的角度来描述系统需要“做什么”分析模型的典型输入是用例模型和领域类图 系统设计需要解决“怎么做的问题”v11.1.1 11.1.1 系统分析与分析模型系统分析与分析模型 11.1 系统分析的内容及方法 建立分析模型5个基本原则是:建模信息域;描述模块功能;表示模型行为;分解,以模型显示更多细节;早期模型表示问题的本质,而后期模型提供实现细节。v11.1.2 11.1.2 建立分析模型的方法建立分析模型的方法 11.1 系统分析的内容及方法 1.系统分析过程中的静态模型 进行分析建模的第一步,是以用例模型为输入,对用例模型进行分析,把系统分解为相互协作的分
14、析类。v11.1.2 11.1.2 建立分析模型的方法建立分析模型的方法 11.1 系统分析的内容及方法 这一过程中所做的主要工作是识别对象,提取出类。考虑目前应用程序常用的MVC模式,我们需要识别实体、控制和边界三种对象。(1)实体对象:一般是系统中长效且持久的对象。(2)边界对象:处理系统与环境之间的通信,建立系统与参与者间的交互模型。(3)控制对象:执行与特定用例有关的行为,建立系统与参与者间的交互模型。v11.1.2 11.1.2 建立分析模型的方法建立分析模型的方法 11.1 系统分析的内容及方法 2.系统分析过程中的动态模型 建立起对象模型之后,就需要考察对象的动态行为。动态模型表
15、示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的行为特征、状态特征等。分析阶段可以借助以下四种图进行动态建模:顺序图:描述对象间的动态交互关系;协作图:描述相互协作的对象的交互关系和关联关系;状态图:描述某一特定对象所有可能的状态及状态间的转移;活动图:描述用例内部的工作流程。v11.1.2 11.1.2 建立分析模型的方法建立分析模型的方法 11.1 系统分析的内容及方法 面向对象分析方法的步骤归纳如下:(1)识别对象,提取类;(2)为对象标识属性和操作;(3)定义组织类的结构和层次;(4)构造对象关系模型;(5)构造对象行为模型。v11.1.2 11.1.2 建立分析模型的
16、方法建立分析模型的方法 11.2 如何识别对象 v11.2.1 11.2.1 确定问题域内的对象确定问题域内的对象 1.找出候选的对象2.筛选出正确的对象11.2 如何识别对象 v11.2.2 11.2.2 确定对象间的关联关系确定对象间的关联关系 1.初步确定关联 2.筛选,筛选时主要根据下述标准删除候选的关联:(1)已删去的对象之间的关联。(2)与问题无关的或应在实现阶段考虑的关联。(3)瞬时事件。关联应该描述问题域的静态结构,而不应该是一个瞬时事件。(4)三元关联。三个或三个以上对象之间的关联,大多可以分解为二元关联。(5)派生关联。通过父类已经表示清楚的关联不用再每个派生类中重新表示。
17、11.2 如何识别对象 v11.2.3 11.2.3 确定对象的属性确定对象的属性 1.分析 2.筛选认真考察经初步分析而确定下来的那些属性,从中删掉不正确的或不必要的属性。通常有以下几种常见情况:(1)误把对象当作属性。(2)误把关联类的属性当作一般对象的属性。(3)误把限定当成属性。(4)误把内部状态当成了属性。(5)过于细化。(6)存在不一致的属性。11.2 如何识别对象 v11.2.4 11.2.4 建立继承关系建立继承关系 一般说来,可以使用下述的两种方法建立继承(即泛化)关系:1.自底向上2.自顶向下 11.2 如何识别对象 v11.2.5 11.2.5 定义服务定义服务 1.常规
18、行为 2.从事件导出的操作 3.利用继承减少冗余操作 11.2 如何识别对象 v11.2.6 11.2.6 实例实例建模建模“电子办公桌系统电子办公桌系统”的类模的类模型型 一家公司决定通过一个“电子办公桌electronic desks”网络,实现文档在它的各个办公室间的传递,每个办公桌提供下列服务:记事簿blotting pad,能够保存用户当前处理的文档,提供基本的字处理设施。文件柜filing cabinet,模拟现实的文件柜。分成多个抽屉,每个抽屉分为多个文件夹。文档可以存储在抽屉中,或者存储在抽屉的文件夹中。邮件服务mail service,允许用户和网络上的其他用户通信。每个办公
19、桌配有三个托盘tray,对应于传统办公室中的IN(收)、OUT(发)和PENDING(未决)文件盘。网络会自动将新邮件放入IN托盘,并定时从OUT托盘取走文档邮寄给接收者。文件可以在邮件托盘和记事簿之间、记事簿和文件柜之间移动,但不能直接在托盘和文件柜之间移动。在任何时间记事簿上只能有一个文档。11.2 如何识别对象 v11.2.6 11.2.6 实例实例建模建模“电子办公桌系统电子办公桌系统”的类模型的类模型(1)确定对象(2)确定对象间的关联关系 (3)确定对象的属性 (4)建立继承关系(5)定义服务11.3 如何识别对象 v11.3.1 11.3.1 识别实体对象的方法识别实体对象的方法
20、 实体对象的来源是以下两个方面的内容:系统有哪些需要分析和处理的数据,谁使用系统(参与者对象)。实体对象一般是系统中长效且持久的对象。11.3 识别实体对象 v11.3.2 11.3.2 实例实例超市收银系统的实体类图超市收银系统的实体类图 超市收银系统实体图 11.4 建立分析类模型 v11.4.1 11.4.1 建立分析类模型的方法建立分析类模型的方法 建立分析类模型的方法通常是从用例实现出发,分析表达类的行为、关系、状态等。11.4 建立分析类模型 v11.4.2 11.4.2 实例实例“网上购物系统网上购物系统”的分析模型的分析模型 库存查询缺货拒绝接收发货商品删除商品修改商品增加员工
21、修改员工删除员工增加销售查询员工信息维护报表维护商品信息维护管理员普通员工订单处理网上购物系统的用例模型 11.5 案例完善:书店借书系统的分析模型 一建模实体类图 二建模分析模型(1)初始分析类图 (2)动态建模 (3)完善分析类模型 本章小结 面向对象的系统分析是从开发者的角度看问题,描述系统需要“做什么”,而不考虑如何去做。分析建模的常规步骤是:识别实体对象,建模实体类图;以用例为输入,建立分析类图;将行为分配到对象,通过动态建模表达系统各功能的业务流程,建模对象间的交互;在静态建模和动态建模反复迭代的过程中得到完善的分析类模型。这一阶段的主要任务是:发现构成系统的对象;描述它们的职责;
22、确定它们之间的交互。中国水利水电出版社软件建模技术中国水利水电出版社中国水利水电出版社高职高专计算机类专业“十二五”规划教材主编 曹静软件建模技术第一部分第一部分 基基 础础 篇篇1 第二部分第二部分 实实 践践 篇篇2第三部分第三部分 工工 具具 篇篇 3第12章 系统设计 12.1 系统设计的内容及方法 12.1.1 选择技术方案设计前的工作 12.1.2 架构设计 12.1.3 由分析类到设计类 12.1.4 设计类库结构 12.2 数据库建模 12.2.1 定义数据需求 12.2.2 定义概念模型 12.2.3 设计逻辑数据模型 12.2.4 设计物理数据模型 12.2.5 数据模型的
23、优化与发布第12章 系统设计 12.3 案例完善:书店借书系统设计模型 12.3.1 选择技术方案 12.3.2 架构设计 12.3.3 由分析类到设计类 12.3.4 另一种解决方案 第12章 系统设计 教学要求 掌握:系统设计类图的导出。理解:架构设计的内容及作用。了解:系统设计的内容、思路,数据库建模方法。12.1 系统设计的内容及方法 v12.1.1 12.1.1 选择技术方案选择技术方案设计前的工作设计前的工作 1.1.技术方案涵盖哪些方面的内容技术方案涵盖哪些方面的内容 技术方案的选择需要首先考虑以下问题:准备使用什么样的客户端?准备采用什么编程语言?准备采用什么框架技术?如果是分
24、布式系统,准备采用什么通信机制?12.1 系统设计的内容及方法v12.1.1 12.1.1 选择技术方案选择技术方案设计前的工作设计前的工作 2.2.实例实例某某“图书馆管理系统图书馆管理系统”的技术方案选择的技术方案选择“图书馆管理系统”拓扑结构图 12.1 系统设计的内容及方法v12.1.2 12.1.2 架构设计架构设计 1.1.什么是架构设计什么是架构设计 在架构设计中的几点常用技巧是:(1)分层(Layer)规则。(2)包(package)之间不要产生循环依赖。(3)设计模式的应用。12.1 系统设计的内容及方法v12.1.2 12.1.2 架构设计架构设计 1.1.什么是架构设计什
25、么是架构设计 系统架构分为逻辑架构和物理架构两大类。逻辑架构完整地描述系统的功能,把功能分配到系统的各个部分,详细说明它们是如何工作的。用于描述逻辑架构的图有:类图、对象图、状态图、活动图、协作图和顺序图等。物理架构详细地描述系统的软件和硬件,描述软、硬件的分解。物理架构关心的是实现,因此可以用实现图建模,其中,组件图显示代码本身的静态结构,部署图显示系统运行时的结构。12.1 系统设计的内容及方法v12.1.2 12.1.2 架构设计架构设计 2.2.实例实例11对某图书馆管理系统划分子系统对某图书馆管理系统划分子系统“图书馆管理系统”的系统架构 12.1 系统设计的内容及方法v12.1.2
26、 12.1.2 架构设计架构设计 3.3.实例实例2“IIS2“IIS日志分析器日志分析器”架构设计架构设计 需求:IIS服务器生成大量文本日志,需要对文本日志内容进行分析处理。实际要求:每天处理近100G左右文本文件每一个文件在10G以上文本中的内容分析不需要以时间为向量12.1 系统设计的内容及方法v12.1.3 12.1.3 由分析类到设计类由分析类到设计类 分析类展示的是高层次的属性和操作的集合,它面向问题域,表示设计类可能具有的属性和操作。分析模型是设计模型的输入。设计模型是把实现技术加入之后,对分析模型的细化。分析类可以成为设计模型中的单个设计类。分析类可以成为设计模型中具有聚集关
27、系的一组设计类。分析类可以成为设计模型中具有继承关系的一组设计类。分析类可以成为设计模型中一组功能相关的设计类。分析类可以成为设计模型的设计子系统、部件等。分析类可能成为某个设计类的一部分。12.1 系统设计的内容及方法v12.1.4 12.1.4 设计类库结构设计类库结构 通常,类库中包含一组类,这一组类通过泛化、组合等关系组成一个有机的整体,其中泛化(即继承)关系对于重用来说具有特别重要的意义。设计类库结构还包括对类的分包。12.2 数据库建模 v12.2.1 12.2.1 定义数据需求定义数据需求 “客户服务系统客户服务系统”的建模的建模 12.2 数据库建模v12.2.2 12.2.2
28、 定义概念模型定义概念模型 概念建模是把用户的信息需求统一到一个整体逻辑结构中,此结构能够能表达用户的要求,且独立于任何数据库管理系统软件和配件。12.2 数据库建模v12.2.3 12.2.3 设计逻辑数据模型设计逻辑数据模型 在概念模型中只需进行简单描述即可,而在逻辑模型中就必须更加详细的描述数据,如数据的类型,是否是主标识符以及是否可以为空等。12.2 数据库建模v12.2.4 12.2.4 设计物理数据模型设计物理数据模型 将上述逻辑模型映射为数据库中的表。下面描述的是转换规则。1一个实体型转换为一个关系模式 2一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式
29、合并。3一个1:n联系主要是与n端对应的关系模式合并,外键位于n端实体。4一个m:n联系可以转换为一个独立的关系模式。12.2 数据库建模v12.2.5 12.2.5 数据模型的优化与发布数据模型的优化与发布 发布数据库可以通过PowerDesigner的以下步骤来完成:1选择“DataBase”-“Generate DataBase”菜单命令。2点击“General”按钮,在出现的窗体中选择“Direct General”,如果没有配置好数据源,就要点窗体中的数据库的图标,配置Data Source。3选择“ODBC machine data source”选项,点击“Configure”按
30、钮。4点击添加Data Source,选择用户数据源(只用于当前机器)。5选择对应数据库驱动,填写新建的数据源的名字即可。12.3 案例完善:书店借书系统设计模型 一选择技术方案 二架构设计 三另一种解决方案 1.系统架构设计 2.设计模型 本章小结 面向对象的系统设计是从开发者的角度看问题,描述系统需要“怎么做”。它面向系统的实现技术和方案,并在这一基础上对分析模型作进一步的细化。设计阶段的主要任务是:选择合适的技术方案,设计系统架构,细化分析模型以得到设计模型,组织设计类的结构,设计数据库。由于设计是最具有创造性的劳动,设计模型也是最为丰富的。在静态模型中,类图通过反复迭代,贯穿设计建模的
31、始终,由最初的分析类图直到可以付诸实现的设计类图;组件图和部署图在表示系统架构方面发挥着重要作用;动态建模机制也得到了充分的应用,表示出实现过程中的交互和状态。在设计建模的后期,动态模型几乎可能模拟程序运行的过程。中国水利水电出版社软件建模技术中国水利水电出版社中国水利水电出版社高职高专计算机类专业“十二五”规划教材主编 曹静软件建模技术第一部分第一部分 基基 础础 篇篇1 第二部分第二部分 实实 践践 篇篇2第三部分第三部分 工工 具具 篇篇 3第13章 逆向工程 13.1 软件再工程 13.2 逆向工程 13.3 一个逆向工程应用的案例第13章 逆向工程 教学要求 掌握:源代码转换。理解:
32、软件再工程、逆向工程。13.1 软件再工程 软件再工程 对既存对象系统进行调查,并将其重构为新形式代码的开发过程,最大限度地重用既存系统的各种资源。从软件重用方法学来说,如何开发可重用软件和如何构造采用可重用软件的系统体系结构是两个最关键问题。13.1 软件再工程 再工程涉及到以下几种形式:1源代码转换:程序从旧的开发语言转换到一个新版本的相同语言或另一种开发语言。2逆向工程:对程序进行分析并从中抽取信息来记录它的结构和功能。3程序结构改善:对程序的控制结构进行分析和修改,使它更易读、易理解。4程序模块化:程序的相关部分被收集在一起,消除一定程度上的冗余。5数据再工程:改变程序处理的数据从而变
33、更程序。13.2 逆向工程逆向工程,通过分析来推导出具体的实现方法。逆向工程是以复原软件的描述和设计为目标的软件分析过程。程序本身经过逆向工程过程并无变化。软件源程序代码总是能得到的,用它作为逆向工程过程的输入推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。13.3 一个逆向工程应用的案例以Java Web网站项目中“用户登录模块”为例剖析逆向工程 13.3 一个逆向工程应用的案例 包结构图 13.3 一个逆向工程应用的案例1了解 MVC的设计模式。2基于MVC模式及包图结构图,构建出“用户登录模块”的组件图及部署图。3观察运行效果,利用软件建模方法分析“用户登录模块”,重构用例模
34、型。4利用UML软件建模方法分析“用户登录模块”,提取其类图模型、顺序图模型。5完成“用户登录模块”的数据库重构、网站页面设计框架。本章小结 逆向工程是以复原软件的描述和设计为目标的软件分析过程。程序本身经过逆向工程过程并无变化。软件源程序代码总是能得到的,用它作为逆向工程过程的输入推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。中国水利水电出版社软件建模技术中国水利水电出版社中国水利水电出版社高职高专计算机类专业“十二五”规划教材主编 曹静软件建模技术第一部分第一部分 基基 础础 篇篇1 第二部分第二部分 实实 践践 篇篇2第三部分第三部分 工工 具具 篇篇 3第14章 新闻发布
35、系统的实例 14.1 新闻发布系统概述 14.1.1 关于系统规模和目标的报告书 14.1.2 捕获及整理需求 14.1.3 系统的功能与要求 14.2 建模新闻发布系统用例模型 14.2.1 识别参与者与用例 14.2.2 建立用例图 14.2.3 用例文档 14.2.4 通过关系整理用例 14.3 建模新闻发布系统分析模型 14.3.1 使用的模式 14.3.2 建立分析模型 第14章 新闻发布系统的实例 14.4 建模新闻发布系统设计模型 14.4.1 系统的体系结构 14.4.2 技术方案选择 14.4.3 数据库的设计 14.4.4 前台界面设计 14.4.5 后台界面设计 14.4
36、.6 建立类图模型 14.4.7 建立顺序图模型 14.4.8 建立包图及程序代码结构图 14.4.9 建立组件图及部署图 14.5 建模新闻发布系统实现模型 14.5.1 数据库实施 14.5.2 数据库连接 14.5.3 部分实现代码 14.1 新闻发布系统概述 14.1.1 关于系统规模和目标的报告书 14.1 新闻发布系统概述 新闻发布系统 一个基于新闻和内容管理的全站管理系统。它将网站上需要经常变动的信息,类似公司动态、企业新闻、新产品发布、促销活动和行业动态等更新信息集中管理,并通过信息的某些共性进行分类,最后系统化、标准化发布到网站上的一种网站应用程序。v14.1.2 捕获及整理
37、需求捕获及整理需求 14.1 新闻发布系统概述 v14.1.2 捕获及整理需求捕获及整理需求 14.1 新闻发布系统概述 系统的功能与要求 对功能方面的规定 新闻管理 文章管理 用户管理 系统管理 对性能方面的规定 数据管理能力要求 v14.1.3 系统的功能与要求系统的功能与要求 14.2 建模新闻发布系统用例模型 谁使用系统的主要功能?新闻发布人员谁改变系统的数据?新闻发布人员、部门负责人谁从系统获取信息?教师、学生(普通用户)谁需要系统的支持以完成日常工作任务?新闻发布人员谁负责维护、管理并保持系统正常运行?超级管理员系统需要处理哪些硬设备?没有特殊的硬设施系统需要和哪些外部系统交互?无
38、谁对系统运行产生的结果感兴趣?教师、学生(普通用户)时间、气温等内部外部条件?时间 在整个新闻发布系统中,系统并不需要给教师、学生提供任何功能,新闻发布的操作由新闻发布人员、部门负责人完成,所以这个系统中只有三个参与者新闻发布人员、部门负责人、超级管理员。v14.2.1 识别参与者与用例识别参与者与用例 14.2 建模新闻发布系统用例模型 特定参与者希望系统提供什么功能?新闻头条管理、文章管理、通知发布管理、首页管理、个人信息管理、栏目管理、用户审批管理系统是否存储和检索信息,如果是,由哪个参与者触发?超级管理员当系统改变状态时,是否通知参与者?是是否存在影响系统的外部事件?否 在整个新闻发布
39、系统中用例有以下几个:新闻头条管理、文章管理、通知发布管理、首页管理、个人信息管理、栏目管理、用户审批管理。v14.2.1 识别参与者与用例识别参与者与用例 14.2 建模新闻发布系统用例模型 v14.2.2 建立用例图建立用例图 14.2 建模新闻发布系统用例模型 “管理头条新闻”用例文档 用例编号:001 用例名:管理头条新闻 参与者:超级管理员 前置条件:超级管理员已登录 后置条件:系统中头条新闻被更新 事件路径:1超级管理员选择管理头条新闻 2系统更新显示 3超级管理员编辑新闻 4超级管理员发布新闻 5系统更新数据 补充说明:1.已发布的头条新闻不能直接被修改,每次发布都将覆盖先前的内
40、容。v14.2.3 用例文档用例文档 14.2 建模新闻发布系统用例模型 v14.2.4 通过关系整理用例通过关系整理用例 14.3 建模新闻发布系统分析模型 使用的模式 MVC即Model View Controller,把一个应用的输入、处理及输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分为三层:模型层、视图层、控制层。视图(View)代表用户交互界面。模型(Model)是业务流程/状态的处理以及业务规则的制定。控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成对用户的响应。v14.3.1 使用的模式使用的模式 1
41、4.3 建模新闻发布系统分析模型 MVC设计模式 v14.3.1 使用的模式使用的模式 Model业务流程处理业务状态改变View用户界面信息交互用户请求ModelController接受用户请求到Model选择View响应定义应用行为选择View业务处理用户请求查询14.3 建模新闻发布系统分析模型 新闻发布系统的初始领域类图 v14.3.2 建立分析模型建立分析模型 14.3 建模新闻发布系统分析模型 新闻发布系统的初始领域类图 v14.3.2 建立分析模型建立分析模型 14.3 建模新闻发布系统分析模型 基于MVC模式的程序处理过程顺序图表示 :user :视图 :控制器 :模型 1:发
42、出请求 2:转发请求 3:调用模型 4:处理业务 5:返回响应数据 6:选择视图显示响应数据 7:显示数据 v14.3.2 建立分析模型建立分析模型 14.4 建模新闻发布系统设计模型 14.4.1 系统的体系结构 14.4 建模新闻发布系统设计模型 技术方案选择 本系统采用JSP作为开发环境,MySQL 作为数据库服务器,Tomcat作为测试服务器,实现对新闻类别分类设置、动态新闻的发布修改删除,以及后台管理等功能。JSP介绍 MySQL介绍 Tomcat介绍v14.4.2 技术方案选择技术方案选择 14.4 建模新闻发布系统设计模型 v14.4.3 数据库的设计数据库的设计 14.4 建模
43、新闻发布系统设计模型 v14.4.4 前台界面设计前台界面设计 11.4 建模新闻发布系统设计模型 由于后台管理人员分为三大类:超级管理员、部门负责人和系统用户,其登录系统后的管理页面功能有所不同,但使用同一个页面。管理页面中的菜单不同是通过菜单控件实现(menu.inc),在各项管理功能页面中,则通过页面中对应的内嵌表单来实现,用户的登录则是由login.jsp页面完成。v11.4.5 后台界面设计后台界面设计14.4 建模新闻发布系统设计模型 类图 与“管理文章”相关的类图(见书相关页面)与Article有关的类图 (见书相关页面)v14.4.6 建立类图模型建立类图模型14.4 建模新闻
44、发布系统设计模型 “管理文章”的逻辑控制的顺序图 :系统用户 :FbwzServlet :ArticleDAO :DBConnect 1:doPost()2:save(Article)3:executeUpdate()4:5:6:v14.4.7 建立顺序图模型建立顺序图模型 14.4 建模新闻发布系统设计模型 系统设计包图 JSP DAO MO servlet v14.4.8 建立包图及程序代码结构图建立包图及程序代码结构图 14.4 建模新闻发布系统设计模型 系统设计与“管理文章”相关的组件图 common DAO MO servlet ArticleDAO.java fbwzServlet
45、.java xgwzServlet.java Article.java v14.4.9 建立组件图及部署图建立组件图及部署图 14.4 建模新闻发布系统设计模型 系统设计“新闻发布”系统的部署图 客户端 Web 服务器 servlet MySQL 数据库 v14.4.9 建立组件图及部署图建立组件图及部署图 14.5 建模新闻发布系统实现模型 数据库实施代码详见书中相关内容 v14.5.1 数据库实施数据库实施 14.5 建模新闻发布系统实现模型 v14.5.2 数据库连接数据库连接 数据库访问模块使用到的类 数据库访问模块使用到文档 14.5 建模新闻发布系统实现模型 部分实现代码详见书中相
46、关内容 v14.5.3 部分实现代码部分实现代码 中国水利水电出版社中国水利水电出版社高职高专计算机类专业“十二五”规划教材软件建模技术主编 曹静软件建模技术第一部分第一部分 基基 础础 篇篇1 第二部分第二部分 实实 践践 篇篇2第三部分第三部分 工工 具具 篇篇 3第15章 Rational Rose使用精解 15.1 Rational Rose概述 15.2 Rational Rose的安装 15.2.1 安装前的准备 15.2.2 安装步骤 15.3 Rational Rose的使用 15.3.1 Rational Rose的启动 15.3.2 Rational Rose的主界面 15
47、.3.3 Rose模型的4种视图 15.3.4 Rose的基本操作 15.3.5 关于用例图 15.3.6 活动图的画法第15章 Rational Rose使用精解 15.3 Rational Rose的使用 15.3.7 关于类图 15.3.8 关于顺序图 15.3.9 顺序图与协作图的相互转化 15.3.10 借助协作图的工具绘制对象图 15.3.11 关于状态图 15.3.12 图形的布局 15.3.13 发布模型 15.4 Rational Rose的逆向工程 15.1 Rational Rose概述 1Rational Rose在同类产品中的优势 Rational Rose并不是单纯
48、的绘图工具,它是专门支持UML的建模工具,有很强的校验功能,能检查出模型中的许多逻辑错误,还支持多种语言的双向工程(将模型转换成指定编程语言的代码,或将代码转换成模型),特别是对Java的支持非常好。Rose是Rational公司的产品,而Rational 公司拥有UML的三位创始大师。他们的产品也是世界领先的建模工具。15.1 Rational Rose概述 2Rational Rose的多个版本 Rose Modeler:可以对系统生成模型,但不支持逆向工程,也不支持由模型转出代码。Rose Professional系列:可以用一种语言生成代码。Rose Enterprise:支持用C+、
49、Java、Visual Basic和Oracle生成代码,支持逆向工程。15.2 Rational Rose的安装 15.2.1 安装前的准备 操作系统需要Windows 2000/XP及以上版本,如果是Windows 2000要确认已经安装了Server Pack 215.2 Rational Rose的安装 15.2.2 安装步骤(1)双击启动Rational Rose 2003的安装程序,进入安装向导界面 15.2 Rational Rose的安装 15.2.2 安装步骤(2)单击“下一步”按钮,进入产品选择界面,选择第二项,即Rational Rose Enterprise Editi
50、on 15.2 Rational Rose的安装 15.2.2 安装步骤(3)单击“下一步”按钮,使用其默认的选项,即Desktop installation from CD image 15.2 Rational Rose的安装 15.2.2 安装步骤(4)单击“下一步”按钮,开始加载安装包,之后进入 右图所示的界面。15.2 Rational Rose的安装 15.2.2 安装步骤(5)单击Next按钮,进入产品声明界面。15.2 Rational Rose的安装 15.2.2 安装步骤(6)继续单击Next按钮,进入协议许可界面。选择 I accept the terms in the