1、单元七 系统分析软件工程与UML任务一:建模系统的实体类图 任务二:建模系统的分析类图 目 录CONTENTS【知识目标】掌握建立分析模型的方法步骤理解分析模型在软件开发过程中的地位作用了解实体对象与数据模型之间的关系【能力目标】能准确识别系统的实体类,建模系统的实体类图能运用分层的思想,建模系统的系统分析模型能将实体类模型映射成数据库模型引 例 描 述 如果说需求分析是从“用户”的角度说明系统即将“做什么”,系统分析则是从“开发者”的角度来描述系统需要“做什么”。面向对象的系统分析产生分析模型。在本单元中我们将完成两个任务,“任务一”中将分析“电子办公桌”网络系统,并对其进行实体类图建模;“
2、任务二”中将根据“新闻发布系统”的用例模型推导出其分析类模型,包括分析类图及初始顺序图。任务一 建模系统的实体类图 01 任务陈述 一家公司决定通过一个“电子办公桌electronic desks”网络,实现文档在它的各个办公室间的传递,每个办公桌提供下列服务:记事簿blotting pad,能够保存用户当前处理的文档。提供基本的字处理设施文件柜filing cabinet,模拟现实的文件柜。分成多个抽屉,每个抽屉分为多个文件夹。文档可以存储在抽屉中,或者存储在抽屉的文件夹中。邮件服务mail service,允许用户和网络上的其他用户通信。每个办公桌配有三个托盘tray,对应于传统办公室中的
3、IN(收)、OUT(发)和PENDING(未决)文件盘。网络会自动将新邮件放入IN托盘,并定时从OUT托盘取走文档邮寄给接收者。文件可以在邮件托盘和记事簿之间OUT,记事簿和文件柜之间移动,但不能直接在托盘和文件柜之间移动。在任何时间记事簿上只能有一个文档。知识准备7.1 系统分析的内容及方法7.1.1 系统分析与分析模型 7.1.2 建立分析模型的方法 7.1.3 如何识别对象 7.1.4 建模系统的实体类图7.1.5 实体类图与数据库的实现 需求分析是从需求分析是从“用户用户”的角度说明系统即将的角度说明系统即将“做什么做什么”系统分析是从系统分析是从“开发者开发者”的角度来描述系统需要的
4、角度来描述系统需要“做什么做什么”分析模型的典型输入是用例模型和领域类图 系统设计需要解决系统设计需要解决“怎么做的问题怎么做的问题”系统分析与分析模型 系统分析的内容及方法 建立分析模型5个基本原则是:建模信息域;描述模块功能;表示模型行为;分解,以模型显示更多细节;早期模型表示问题的本质,而后期模型提供实现细节。建立分析模型的方法 系统分析的内容及方法 1.系统分析过程中的静态模型 进行分析建模的第一步,是以用例模型为输入,对用例模型进行分析,把系统分解为相互协作的分析类。建立分析模型的方法 系统分析的内容及方法 这一过程中所做的主要工作是识别对象,提取出类。考虑这一过程中所做的主要工作是
5、识别对象,提取出类。考虑目前应用程序常用的目前应用程序常用的MVC模式,我们需要识别实体、控制模式,我们需要识别实体、控制和边界三种对象。和边界三种对象。(1)实体对象:一般是系统中长效且持久的对象。(2)边界对象:处理系统与环境之间的通信,建立系统与参与者间的交互模型。(3)控制对象:执行与特定用例有关的行为,建立系统与参与者间的交互模型。建立分析模型的方法 系统分析的内容及方法 2.2.系统分析过程中的动态模型系统分析过程中的动态模型 建立起对象模型之后,就需要考察对象的动态行为。动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的行为特征、状态特征等。分析阶段可以借
6、助以下四种图进行动态建模:分析阶段可以借助以下四种图进行动态建模:顺序图:描述对象间的动态交互关系;协作图:描述相互协作的对象的交互关系和关联关系;状态图:描述某一特定对象所有可能的状态及状态间的转移;活动图:描述用例内部的工作流程。建立分析模型的方法 系统分析的内容及方法 面向对象分析方法的步骤归纳如下:(1)识别对象,提取类;(2)为对象标识属性和操作;(3)定义组织类的结构和层次;(4)构造对象关系模型;(5)构造对象行为模型。建立分析模型的方法 系统分析的内容及方法 确定问题域内的对象 1.找出候选的对象2.筛选出正确的对象如何识别对象 确定对象间的关联关系 1.初步确定关联 2.筛选
7、,筛选时主要根据下述标准删除候选的关联:(1)已删去的对象之间的关联。(2)与问题无关的或应在实现阶段考虑的关联。(3)瞬时事件。关联应该描述问题域的静态结构,而不应该是一个瞬时事件。(4)三元关联。三个或三个以上对象之间的关联,大多可以分解为二元关联。(5)派生关联。通过父类已经表示清楚的关联不用再每个派生类中重新表示。如何识别对象 确定对象的属性 1.分析 2.筛选认真考察经初步分析而确定下来的那些属性,从中删掉不正确的或不必要的属性。通常有以下几种常见情况:(1)误把对象当作属性。(2)误把关联类的属性当作一般对象的属性。(3)误把限定当成属性。(4)误把内部状态当成了属性。(5)过于细
8、化。(6)存在不一致的属性。如何识别对象 建立继承关系 一般说来,可以使用下述的两种方法建立继承(即泛化)关系:1.自底向上2.自顶向下 如何识别对象 定义服务 1.常规行为 2.从事件导出的操作 3.利用继承减少冗余操作 如何识别对象 实体对象的来源是以下两个方面的内容:系统有哪些需要分析和处理的数据,谁使用系统(参与者对象)。实体对象一般是系统中长效且持久的对象。建模系统的实体类图 网上购物系统”的分析模型 库存查询缺货拒绝接收发货商品删除商品修改商品增加员工修改员工删除员工增加销售查询员工信息维护报表维护商品信息维护管理员普通员工订单处理网上购物系统的用例模型 建模系统的实体类图 建立分
9、析类模型的方法通常是从用例实现出发,分析表达类的行为、关系、状态等。建模系统的实体类图 用例需要分析、处理、存储的数据实体类收银收银员工号、收银台号、收银时间、应付金额、实付金额、小票小票、销售信息打折服务折扣率折扣优惠服务优惠率、优惠时段优惠处理支付支付方式支付信息,处理支付计算器记录销售收银员工号、收银台号、销售明细柜台现金支付应付金额、实付金额、找零支付信息购物卡支付卡号、应付金额、余额支付信息信用卡支付卡号、应付金额支付信息登陆用户名、密码收银员柜台管理柜台号、柜台状态柜台超市收银系统实体图超市收银系统实体图 建模系统的实体类图 实体类图与数据库的实现当对系统的静态模型建模时,通常以下
10、面的3种方式之一使用实体类图:对系统的静态对象建模。如书店借书系统的Book类、学生管理系统的Student类等。对简单的协作建模。协作是一些共同行为的类、接口和其他元素的群体。如数据库连接类、用户验证类、过滤字符串类等。对逻辑数据库模式建模。在很多领域中,都需要在关系数据库或面向对象数据库中存储永久信息,系统分析者可以用类图对这些需要永久化的实体建模。从上面的说明不难看出,实体类图是对逻辑数据库模式一种使之有效的建模方式,它直接可以反映表与表之间的关系,从实体类图可以推导出数据库的表设计。步骤一:确定对象步骤一:确定对象 步骤二:确定对象间的关联关系步骤二:确定对象间的关联关系 步骤三:确定
11、对象的属性步骤三:确定对象的属性 步骤四:建立继承关系步骤四:建立继承关系 步骤五:定义服务步骤五:定义服务 任务实施 拓展训练拓展训练:根据描述画出实体类图根据描述画出实体类图 拓展训练任务二 建模系统的分析类图02 任务陈述 在上个单元的任务环节中,已完成了“新闻发布系统”的问题域及系统边界界定,整理出了有效需求,并进行了需求建模,完成用例模型部分。在本任务环节中将根据“新闻发布系统”的用例模型推导出其分析类模型及初始顺序图。知识准备 7.2 建立系统的分析模型 7.2.1 MVC模式的分层思想 7.2.2 如何建模系统的分析模型 MVC即Model View Controller,把一个
12、应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分为三层:模型层、视图层、控制层。视图(View)代表用户交互界面,对于Web应用程序来说,可以是HTML界面,也可能是XHTML、XML或Applet。模型(Model)是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其他层来说是黑箱操作,模型接收视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成对用户的响应。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分
13、发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。MVC模式的分层思想如何建模系统的分析模型库存查询缺货拒绝接收发货商品删除商品修改商品增加员工修改员工删除员工增加销售查询员工信息维护报表维护商品信息维护管理员普通员工订单处理 网上购物系统的用例模型如何建模系统的分析模型对每个用例都需要进行以下几个步骤:(1)识别类。(2)建立类之间的关系。(3)描述类。管理员 商品维护界面 维护 商品 关于“商品信息维护”用例的初始类图 管理员 商品维护界面 维护 del()insert()modify()商品 allAccount currentAccount
14、 price“商品信息维护”用例修改后的类图 步骤一:使用的模式步骤一:使用的模式 步骤二:建立分析模型步骤二:建立分析模型 任务实施 完善完善“新闻发布系统新闻发布系统”的分析模型的分析模型 拓展训练 面向对象的系统分析是从开发者的角度看问题,描述系统需要“做什么”,而不考虑如何去做。分析建模的常规步骤是:以用例为输入,识别实体对象,建模实体类图;进行逻辑分析,建立分析类图;将行为分配到逻辑对象,通过动态建模表达系统各功能的业务流程,建模对象间的交互;在静态建模和动态建模反复迭代的过程中得到完善的分析类模型。这一阶段的主要任务是:发现构成系统的逻辑对象;描述它们的职责;确定它们之间的交互。本章小结 建立超市收银系统的分析模型建立超市收银系统的分析模型 试根据第6单元“超市收银系统”需求分析的结果进行系统分析,并建立分析模型。项目实训THANK YOU高等教育出版社