软件工程PPT

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

public class Person { /** 拧螺丝 */ public void screw(Screwdriver screwdriver) { screwdriver.screw(); } }
常熟理工学院 软件工程课程 27/50
内容摘要
• • • • 用例建模 静态建模 动态建模 物理体系结构建模
常熟理工学院 软件工程课程 15/50
(2) 扩展(extend):是指将扩展用例(Extension)的事件流在一 定的条件下按照相应的扩展点插入到基础用例(Base)中。
对于包含关系,子用例中的事件流是一定插入到基础用例中去的,并 且插入点只有一个。而扩展关系可以根据一定的条件来决定是否将扩 展用例的事件流插入基础用例事件流,并且插入点可以有多个。
比如公司和员工,每 个公司对应一些特定 的员工,每个员工对 应一特定的公司
常熟理工学院 软件工程课程
public class Company { private Employee employee; public Employee getEmployee() { return employee; } public void setEmployee(Employee employee) { this.employee=employee; } //公司运作 public void run() { employee.startWorking(); } }
常熟理工学院 软件工程课程 7/50
二.确定用例 1. 用例的特征 • 用例总是被执行者启动的,执行者必 须直接或间接地指示系统去执行用例 • 用例向执行者提供可识别的值 • 用例是完整的描述
用例不是实例,用例的实例称为场景 (scenario)。
常熟理工学院 软件工程课程
8/50
2. 寻找用例 让每个执行者回答以下问题来寻找用例:
常熟理工学院 软件工程课程
19/50
类图由系统中使用的类以及它们之间的关 系组成。类之间的关系有关联、依赖、泛化、 实现等。类图是其它图的基础,一个系统可以 有多张类图,一个类也可出现在几张类图中。 对象图是类图的一个实例,它描述某一时 刻类图中类的特定实例以及这些实例之间的特 定链接。对象图使用了与类图相同的符号,只 是在对象名下附加下划线,对象名后可接以冒 号和类名,即 object-name:class-name
常熟理工学院 软件工程课程
10/50
wk.baidu.com
例子
• 这里用一个家教网站来简单的分析用例描述的写法。
前台客户系统的用例图如下:
常熟理工学院 软件工程课程
11/50
后台管理系统用例图如下:
常熟理工学院 软件工程课程
12/50
用例名称:网站公告发布 用例标识号:202 参与者:负责人
简要说明:负责人用来填写和修改家教网站首页的公告,公告最终显示在家教 网站的首页上。
常熟理工学院 软件工程课程
25/50
3、泛化(Generalization)
• 泛化指出类间的“一般—特殊关系” (is-a) • 是类与类之间的继承关系,接口与接口之间的 继承关系。
class Animal{} class Tiger extends Animal{} public class Test { public void test() { Animal a=new Tiger(); } }
3. 用例的描述
用例图只是简单地描述了一下系统,对于每个用例,需 要有详细的说明,这样可以让别人对这个系统有更加详 细的了解,这时就需要用正文来描述用例。 用例描述的内容,没有硬性规定的格式。一般包括: 简要描述:简要介绍该用例的作用和目的。 基本事件流:描述该用例最正常的一种场景 备选事件流:描述用例执行中偶尔发生的一些情况 异常事件流:描述用例执行中某些非正常的事情 特殊需求:描述与该用例相关的非功能性需求和设 计约束 前置条件:执行用例之前系统必须所处的状态 后置条件:用例执行完后系统可能处于的一组状态
P1:point X=0 Y=0
类图
L2: line X1= -10 Y1=10 X2=10 Y2= -10
y
L2 L1
L4
L3 P2
L3: line
P1
x
X1=10 Y1= 5 X2= -10 Y2= -5
P2:point X=9 Y=4.5
L4: line X1=9 Y1=5 X2=9 Y2=3
2、用例之间的关系:
用例之间主要有包含、扩展和泛化三种关系。UML 2.2官 方规范中说明有包含和扩展两种关系! (1) 包含(include):它所表示的语义是指基础用例(Base)会 用到被包含用例(Inclusion)。具体地讲,就是将被包含 用例的事件流插入到基础用例的事件流中。
在ATM机中,若查询、提款、 转帐这三个用例都需要打印一 个回执给客户,就可以把打印 回执这一部分内容提取出来, 抽象成为一个单独的用例“打 印回执”,而原有的查询、提 款、转帐三个用例都会包含这 个用例。
23/50
2、聚集和组合
• 电脑可以由显示器、CPU、主板、硬盘、键盘、 鼠标等聚集(aggregation)而成。在这种关系里面, 各个组成部分是可以拆开独立存在的,可以装到 其他电脑上去用。 • 树是由树干、树根、树枝、树叶等组合 (composition)而成的。树叶可以先于树消亡,但 如果树被砍掉,那么树叶也没有存在价值了。这 棵树的叶子也没法装到另一棵树上面去。
实例
对象图 22/50
常熟理工学院 软件工程课程
类之间的关系
1、关联(Association)
所谓关联就是某个类会长期的持有另一个类的引用,而二 者的关联往往也是相互的。关联的两个类彼此间没有任何 强制性的约束,只要二者同意,可以随时解除关系或是进 行关联,它们在生命期问题上没有任何约定。“has a”
• 客户:用例模型指明了系统的功能,描述了系统 能如何使用。用例建模时客户的积极参与是十分 重要的。 • 开发者:用例模型帮助他们理解系统要做什么, 同时为以后的其它模型建模、结构设计、实现等 提供依据。 • 集成测试和系统测试人员:根据用例来测试系统, 以验证系统是否完成了用例指定的功能。
常熟理工学院 软件工程课程
Use Case之间不要随便搞“关系” 。很多人喜欢把Use Case图画得很 玄乎,关系搞得很复杂!很不幸 ,方向错了。
常熟理工学院 软件工程课程 17/50
内容摘要
• • • • 用例建模 静态建模 动态建模 物理体系结构建模
静态建模 (类和对象建模)
系统中的类和对象模型描述了系统的静态结 构,在UML中用类图和对象图来表示。
常熟理工学院 软件工程课程
26/50
4、依赖(Dependency) 所谓依赖就是某个类的功能依赖于另外的某个类, 而被依赖的类只是作为一种工具在使用,而并不 持有对它的引用。"uses a"
比如说你要去拧螺丝,你要借助(也就是依 赖)螺丝刀(Screwdriver)来帮助你完成拧螺 丝(screw)的工作。
常熟理工学院 软件工程课程 13/50
三. 用例图中的关系
1、参与者之间的关系:
参与者之间可以有泛化(Generalization)关系(或称为“继承”关系)。
(1)
(2)
图2显著减少了用例图中通讯关联的个数,简化用例模型,更易于理 解。管理员、操作员只是特殊的用户。
常熟理工学院 软件工程课程 14/50
• 执行者需要系统提供哪些功能?执行者需要 做什么? • 执行者是否需要读、创建、删除、修改或储 存系统中的某类信息?
• 执行者是否要被系统中的事件提醒,或者执 行者是否要提醒系统中某些事情?从功能观 点看,这些事件表示什么?
• 执行者的日常工作是否因为系统的新功能而 被简化或提高了效率?
常熟理工学院 软件工程课程 9/50
动态建模
动态建模用来描述系统的动态行为,显 示对象在系统运行期间不同时刻的动态交互。 UML中用状态机图、活动图、顺序图、通信 图和协作图来建立动态模型。
常熟理工学院 软件工程课程
29/50
状态机图(Statechart Diagram)
状态机图通常是对类描述的补充,它说 明该类的对象所有可能的状态,以及哪些事 件将导致状态的改变。状态机图描述了对象 的动态行为,是一种对象生存周期的模型。
• 聚合和组合是关联关系的一种,是较强的关联关 系,强调的是整体与部分之间的关系。 • 聚集关系也称为"owns a"关系,组合关系也称为 "contains a"关系
常熟理工学院 软件工程课程 24/50
public class Computer { private CPU cpu; public CPU getCPU() { return cpu; } public void setCPU(CPU cpu) { this.cpu=cpu; } //开启电脑 public void start() { //cpu运作 cpu.run(); } }
软件工程
第8章 面向对象建模
内容摘要
• • • • 用例建模 静态建模 动态建模 物理体系结构建模
用例建模
用例(Use Case)是一种描述系统需求的方法,使用用 例的方法来描述系统需求的过程就是用例建模。 用例建模不仅用于新系统的需求获取,还可用于已 有系统的升级。 用例模型用用例图来描述。
常熟理工学院 软件工程课程 6/50
一、确定执行者 • 执行者是指与系统交互的人或其它系统
• 执行者代表一种角色,而不是具体的某 个人
通过回答下列问题来确定执行者: • 谁使用系统的主要功能(主执行者)? • 谁需要从系统中得到对他们日常工作的支持? • 谁需要维护、管理和维持系统的日常运行(副执行者)? • 系统需要控制哪些硬件设备? • 系统需要与哪些其它系统交互? • 哪些人或哪些系统对系统产生的结果(值)感兴趣?
• 用例图展示了各类外部执行者与系统所提供的用例之间的 连接。 • 一个用例是系统所提供的一个功能的描述,执行者是指那 些可能使用这些用例的人或外部系统。 • 用例图给出了用户所感受到的系统行为,但不描述系统如 何实现该功能。
常熟理工学院 软件工程课程
3/50
哪些人会用到用例模型
任何涉及到系统功能活动的人都会用到用例模型。
对于电话业务,可以在基本 通话(Call)业务上扩展出一 些增值业务如:呼叫等待 (Call Waiting)和呼叫转移 (Call Transfer)。
常熟理工学院 软件工程课程
16/50
(3) 泛化(generalization) :当多个用例共同拥有一种类似的 结构和行为的时候,可以将它们的共性抽象成父用例, 它们作为泛化关系中的子用例。 在实际应用中很少使用泛化关 系,本着“简单”和“沟通” 的原则,忘记它吧! 作为泛化关系的例子 ,执行交易是一种交 易抽象,执行房产交 易和执行证券交易都 是一种特殊的交易形 式。
常熟理工学院 软件工程课程 20/50
类名
关联
属性名 :类型 操作
聚集
组合 泛化
对象名 :类名
属性名 = 值 操作
依赖
实现
常熟理工学院 软件工程课程 21/50
类图和对象图
line X1:real Y1:real X2:real Y2:real 2..* 相交 0..* point X: real Y: real L1: line X1=10 Y1=10 X2= -10 Y2= -10
前置条件:负责人已经登陆家教网站管理系统 基本事件流: 1. 负责人鼠标点击“修改公告”按钮 2. 系统出现一个文本框,显示着原来的公告内容 3. 负责人可以在文本框上修改公告,也可以完全删除,重新写新的公告 4. 负责人编辑完文本框,按“提交”按钮,首页公告就被修改 5. 用例终止 备选事件流:在按“提交”按钮之前,负责人随时可以按“返回”按钮,文本 框的任何修改内容都不会影响网站首页的公告 异常事件流: 1. 提示错误信息,负责人确认 2. 返回到管理系统主页面 后置条件:网站首页的公告信息被修改 注释:无
4/50
一个用例模型可由若干幅用例图组成。一幅用 例图包含的模型元素有系统、执行者、用例,以及 表示它们间的不同关系,如关联、扩展、包含、泛 化等。
常熟理工学院 软件工程课程
5/50
用例建模步骤
创建用例模型的步骤包括: 1.定义系统 2.确定执行者 3.确定用例 4.描述用例 5.定义用例间的关系, 6.确认模型
相关文档
最新文档