系统分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 表示手段和代表语义组合在一起,即为建模语言。
图形表示 (一)
UML的模型是用图来表示的,共有5类10(12)种图如下所示:
用例视图:用于表示系统的功能,并指出各功能的操作者。 静态视图:包括类图、对象图及包图。
自动取款机
储户
对象图是类图的实例,几乎使用与 包由包或类组成, 类图完全相同的标识。他们的不同 存款 表示包与包之间的 点在于对象图显示类的多个对象实 关系。包图用于描 例,而不是实际的类。一个对象图 述系统的分层结构。 取款 是类图的一个实例。由于对象存在 生命周期,因此对象图只能在系统 转账 某一时间段存在。 自动取款机用例图
1
*
产品 销售代表 0..1 雇员
如何建立对象模型 问题陈述
• 邓小平是一个爱书之人,家里各类书籍已过千册,而平时又时 常有朋友外借,因此需要一个个人图书管理系统。 • 该系统应该能够将书籍的基本信息按计算机类、非计算机类分 别建档,实现按书名、作者、类别、出版社等关键字的组合查 询功能。在使用该系统录入新书籍时系统会自动按规则生成书 号,可以修改信息,但一经创建就不允许删除。该系统还应该 能够对书籍的外借情况进行记录,可对外借情况列表打印。另 外,还希望能够对书籍的购买金额、册数按特定时限、周期进 行统计。
类图的模型元素
类 类的一般—特殊关系 (三角形一端 是一般类,另一端是特殊类) 类名 对象关联(连接线中间为关联名称, 两端为角色和多重性,箭头为导向性) 聚集(菱形一端为整体对象,另一端为 部分对象,两端可表示多重性) 组成(聚集的特例,表示整体对象与部 分对象紧密依赖的合成关系)
会员 会员代号 姓名 地址 电话 租借记录 增加租借 取全部租借
• 但是UML
不是标准的开发过程 也不是标准的面向对象开发方法
• 这是因为
软件开发过程,在很大程度上,依赖于问题域、实现技术和开 发小组 不同的应用、不同的开发人员的开发过程有很大的差异 这使得开发方法的标准化工作很难进行
• 解决方法
把开发过程从开发方法中抽取出来 剩下的表示手段和代表语义,完全可以实现标准化。
类图中的图符2
类图中的图符:
• 聚集关联:用于表示类的对象之间的关系是整体 与部分的关系。 • 组成关联:用于表示类的对象之间的关系:整体 拥有各部分,部分与整体共存,如整体不存在了, 部分也会随之消失。 • 泛化关联:泛化关系(继承关系)定义了类和包 间的一般元素和特殊元素之间的分类关系。
类图中的图符3
图形表示 (二)
•行为视图:包括状态图和活动图,用于描述系统的动态
行为和对象之间的交互关系;
图书入库 采购员 库管员 状态图描述类的对Fra Baidu bibliotek所有可能的状态以及事件发 报损 活动图描述满足用例要求所要进行的活动以 生时状态的转移条件。通常,状态图是对类图的 库存 报废 订购 及活动间的约束关系,有利于识别并行活动。 凭到货通知单领取图书 补充。在实用上并不需要为所有的类画状态图, 活动图可以描述业务流程、工作流程、类中 仅为那些有多个状态其行为受外界环境的影响并 核对图书 图书入库 的操作流程等,用于说明系统的一个完整行 且发生改变的类画状态图。 有误 订购 报损 为或一个功能的完整流程。 核对入库单 填入库单 图书出库 图书入库
系部 名称:Name 0… 1 1… *地址:String 电话:Number 增加教师( ) 减少教师( ) 1… * 1… * 课程 * 课程号:Number * 课程名称: Name 1… * 教师 1… *名称:Name 编号:Number 职称:String 0… 1
1… *
学校信息系统类图
用例图中的图符1 • 用例 • 执行者 • 系统:
用于界定系统功能范围 描述该系统功能的用例,都置于其中 而描述外部实体的执行者,都置于其外
• 关联:
连接执行者和用例 表示执行者所代表的系统外部实体与该用 例所描述的系统需求有关
用例图中的图符2 • 使用:若一个用例A使用了一个用例B所提供的功能,
UML Use Case Diagrams(用例图)
从本质上将,一个用例是用户与计算机之间为达到某 个目的的一次典型交互作用: – 用例描述了用户提出的一些可见的需求; – 用例可大可小; – 用例对应一个具体的用户目标
用例图的内容
用例图描述系统外部的执行者与系统的用例之间的某种联系。 • 所谓用例是指对系统提供的功能(或称系统的用途)的 一种描述; • 执行者是那些可能使用这些用例的人或外部系统; • 用例和执行者之间的联系描述了“谁使用哪个用例”。 • 用例图着重于从系统外部执行者的角度来描述系统需要 提供哪些功能,并且指明了这些功能的执行者是谁; • 用例图在UML方法中占有十分重要的地位,人们甚至称 UML是一种用例图驱动的开发方法。
属性
服务/操作
学校 校名:Name 地址:String 电话:Number 1 增加学生( ) 删除学生( ) 增加部门( ) 删除部门( ) 1… * * 学生 姓名:Name * 学生号:Number 成绩:Number
类图描述系统中类的静态结构。不仅定义系统中的类, 表示类之间的联系如关联、依赖、聚合等,也包括类的 内部结构(类的属性和操作)。类图描述的是一种静态关 系,在系统的整个生命周期都是有效的。
• 在该需求描述中隐藏着一个关键类——书籍列表,也就是 执行统计的主体。 • 通过上面的分析,得到一个候选列表: • 书籍 计算机类书籍 非计算机类书籍 • 借阅记录 借阅记录列表 书籍列表
2. 确定类关系
• 为了反映和记录这些类之间的关系,可以使用UML中的类图将 其记录下来,如图所示。
最初的分析类模型
抽象用例
用例图绘制的步骤:
(1)确定出系统的参与者及参与者之间的关系; (2)确定出系统的用例;
(3)区分用例的优先次序;
(4)按照优先次序细化每个用例; (5)确定出每个用例中的泛化关系、包含关系和扩展关系;
(6)创建完整的用例图。
用例模型的获取
获取参与者:
• • • • • • 谁使用系统的主要功能(主要使用者)? 谁需要系统支持他们的日常工作? 谁来维护、管理系统使其能正常工作(辅助使用者)? 系统需要控制哪些硬件? 系统需要与其他哪些系统交互? 对系统产生的结果感兴趣的是哪些人?
课程设置.exe
课程.java
教师.java
班级.java
图形表示 (五) •配置视图:表达物理结构。采用配置图(deployment
diagram)来描述系统中的节点和节点的连接关系,以及软件 对象在节点的分布情况。
学生管理
校园网 课程管理
事务 服务器
校园网
数据库 服务器
成绩管理
UML模型图
UML模型图(5类,10(12)种): • 用例图 • 静态图(类图,对象图,包图,组合结构图) • 行为图(状态图,活动图) • 交互图(顺序图,合作图)交互纵览图 • 实现图(构件图,配置图)
类图中的图符1
Class Attributes Operations
Package
类图中的图符: • 类:表示一个类,其中第一栏是类的 名,第二栏是类的属性,第三栏是类 的操作。 • 包:包是一种分组机制,表示一个类 图集合。 • 关联:用于表示类的对象之间的关系。 其特殊形式有组成关联和聚集关联。
3.给关联添加属性
• (1)确定关联的多重性 • 多重性:说明关联关系中某类对象的数量关系。即某个类有多 少个对象可以和另一个类的单个对象关联。
加入多重性的类图
(2) 确定关联的导航性 (3) 确定约束 (4) 确定关联的限定符(受限关联) • 是一对多或多对多关联的另一种表现形式,通过添加限定符标 识在关联关系的令一方出现的多个对象中的每一个对象。 • 限制符号位于靠近受限制方的关联末端。用来区分关联多端的 对象集合。
« 使用»
则称用例A使用了用例B。 由用例A连向用例B 表示用例A中,使用了用例B中的行为或功能
« 扩展»
• 扩展:若一个用例B是在一个用例A的基础上增加了
一些新的行为,则称用例B是用例A的扩展用例。 由用例B连向用例A 表示用例A描述了一项基本需求 而用例B则描述了该基本需求的特殊情况
对UML实体进行文字描述注释连接 将注释体与要描述的实体连接 说明该注释体是针对该实体所进行的描述。
类图中的图符:
• 依赖关系:有两个类或包元素X、Y,修改元素X的 定义可能会引起对另一个元素Y的定义的修改,则 称元素Y依赖于元素X。 • 对象:类的一个实例。
Object Values
• 链接:用于表示对象间的关联关系的一个实例。
订单类图的实例
* 订单 DateReceived isPrepaid number:String prce:Money Dispatch() close() 1
待售
有错
销售
图书上架
售出
修改入库单
登记库存账
书店图书状态图
图形表示 (三)
•交互图:包括顺序图和合作图,用于描述系统的对象之
间的动态合作关系。 顺序图显示对象之间的动态合作关系, Print(file) 合作图描述对象间的协作关系,合作图跟顺 它强调对象之间消息发送的顺序,同 :计算机 :打印服务器 :打印机 :打印队列 :计算机 :打印服务器 序图相似,显示对象间的动态合作关系。除 时显示对象之间的交互 显示信息交换外,合作图还显示对象以及它 Print(file) Print(file) 们之间的关系。 Store(file)
获取用例:
1. 执行者要求系统提供哪些功能? 2. 执行者需要读、产生、删除、修改或存储系统中的信息 有哪些类型? 3. 必须提醒执行者的系统事件有哪些? 4. 执行者必须提醒系统事件有哪些?怎样把这些事件表示 成用例中的功能?
UML Class Diagrams(类图)
• 在面向对象的建模技术中,类、对象和它们之间的关 系是最基本的建模元素。对于一个想要描述的系统, 其类模型、对象模型以及它们之间的关系揭示了系统 的结构。 • 类图描述了系统中的类及其相互之间的各种关系,其 本质反映了系统中包含的各种对象的类型以及对象间 的各种静态关系(关联,子类型)。
UML的应用
• UML的主要目标
是以面向对象的方式 来描述任何类型的系统
• 最常用于
建立软件系统的模型
• 也可描述非软件领域的系统,如
机械系统、企业机构 业务过程、信息系统 实时的工业系统和工业过程等
UML的应用
• UML
是一个通用的、标准的建模语言 对任何有静态结构、动态行为的系统,都可用来建模
• 注释体:
记录成绩
《include》
《include》 老师 更新成绩
图7.13 用例的包含
保存成绩
《extend》 图书管理员 还书业务 交付罚金
UML Use Case Diagrams(用例图)
<<extends>> 取款 <<uses>> 具体用例 客户 <<uses>> 存款 验证客户身份 快取
1
客户
Name address CreditRating():String
团体客户 ContactName creditRating creditLimit
Remind() billforMonth(Intrger)
个人客户 CreditCard# {creditRating() =“poor”}
* 订单项 Quantity:Integer * price:Money isSatisfied:Boolean
• 1.寻找分析类
• 以问题陈述为输入信息,采用“名词动词法”寻找分 析类。 • (1)找备选类 • (2)从备选类中筛选出候选类
• • • • • • • • • •
“邓小平”、“人”、“家里” “个人图书管理系统” “书籍” “书名”、“作者”、“类别”、“出版社”、“书号” “规则” “基本信息” “功能”、“新书籍”、“信息”、“记录” “计算机类”、“非计算机类” “外借情况、 “外借情况列表” “购买金额”、“册数”
{打印机空闲} Store(file) {打印机忙}
Printf(file) {打印机空闭}
{打印机忙}
:打印机
:打印队列
如果强调时间和顺序,则使用顺序图;如果强调上下级关 系,则选择合作图。这两种图合称为交互图
图形表示 (四)
•组件视图:包括组件图,用于描述实现系统的元素的组织,
即描述系统的软件组件或模块及它们的依赖关系。