面向对象的分析与设计ppt课件 分析篇.ppt
《面向对象的分析与设计ppt课件 分析篇.ppt》由会员分享,可在线阅读,更多相关《面向对象的分析与设计ppt课件 分析篇.ppt(212页珍藏版)》请在三一办公上搜索。
1、第二部分:分析篇,北京大学信息科学技术学院研究生课程面向对象的分析与设计,主讲教师:邵维忠,2,课件说明 这组课件是本人多年来在北京大学讲授“面向对象的分析与设计”课程时制作的,随着该领域理论与技术的发展而逐年改进。目前的最新版本所适应的教材是邵维忠、杨芙清合写的著作面向对象的分析与设计(清华大学出版社2013年1月)。 为了促进学术交流和资源共享,现将这套课件无偿提供给国内讲授同类课程的教师和同行,欢迎他们在教学工作中使用或作为参考。课件共包括“基础篇”、“分析篇”和“设计篇”三部分,是按照54学时研究生课程制作的,各位教师可根据自己的授课对象及教学计划,对原课件进行剪裁或重新组织。北京大学
2、信息学院 邵维忠电子信箱:2013年7月2日,3,第5章建立需求模型用况图,5.1 需求分析和系统分析需求分析的确切含义是对用户需求进行分析,旨在产生一份明确、规范的需求定义。OOA的主要内容是研究问题域中与需求有关的事物,把它们抽象为系统中的对象,建立类图。确切地讲,这些工作应该叫做系统分析,而不是严格意义上的需求分析。早期的OOA缺乏一个良好的基础对需求的规范描述。,4,问题域(抽象的来源),OOA模型(类图),抽象,OOA是将问题域中的事物抽象为系统中的对象,5,5.2 基本思路问题的提出:在系统尚未存在时,如何描绘用户需要一个什么样的系统?如何规范地定义用户需求?考虑问题的思路:把系统
3、看作一个黑箱,看它对外部的客观世界发挥什么作用,描述其外部可见的行为。,把内外交互情况描述清楚,就确切地定义了系统的需求,6,系统边界,系统边界:一个系统所包含的所有系统成分与系统以外各种事物的分界线。系统:被开发的计算机软硬件系统,不是指现实系统。系统成分:在OOA和OOD中定义并且在编程时加以实现的系统元素对象,对象,对象,对象,对象,对象,对象,5.3 系统边界与参与者,7,系统边界:一个系统所包含的所有系统成分与系统以外各种事物的分界线。,5.3 系统边界与参与者,责任的边界,不是物理的边界系统的范围有多大与开发者的责任有关,8,参与者:在系统边界以外,与系统进行交互的事物人员、设备、
4、外系统,5.3 系统边界与参与者,建模参与者的原则是为角色建模 参与者表示在与系统交互当中对象的特定侧面,同一参与者可以表示不同类的对象。 如果对象的行为有不同侧面的话,就可以被绑定到多个参与者上。 示例 尽管许多不同的个人都使用自动售货机,但他们的行为却可以用参与者客户和维修技师来概括。 对象Mary、Frank和Paul可能都是自动售货机的客户,同时Paul也可能是自动售货机的维修技师,9,现实世界中的事物与系统之间的关系分四种情况,10,人员系统的直接使用者直接为系统服务的人员设备与系统直接相联的设备为系统提供信息在系统控制下运行不与系统相连的设备 计算机设备 外系统上级系统子系统其它系
5、统,如何发现参与者考虑人员、设备、外系统,11,1、对于银行存取款业务来说,下面列出的人员、设备与系统哪些是系统参与者?哪些是系统内的对象?储户、柜员、大堂经理、业务经理、密码器、打印机、摄像设备、ATM机、维修技师、2、为下图界定系统边界,指出系统的参与者。,练习:,12,什么是用况I. Jacobson:用况是通过使用系统功能的某些部分而使用系统的一种具体方式。每个用况包括一个由参与者发动的完整的事件过程。它详细说明了参与者和系统之间发生的交互。因此,一个用况是一个由参与者和系统在一次对话中执行的特定的相关事务序列。全部用况的集合则说明了所有可能存在的系统使用方式。对象技术词典:1对一个系
6、统或者一个应用的一种单一的使用方式所进行的描述。2关于单个参与者在与系统的对话中所执行的处理的行为陈述序列。UML:对系统在与它的参与者交互时所能执行的一组动作序列(包括其变体)的描述。,本书的定义:用况是对参与者使用系统的一项功能时所进行的交互过程的描述,其中包含由双方交替执行的一系列动作。,5.4 用况(use case),13,术语“use case”的准确含义使用情况是对一项系统功能使用情况的一般描述,它对于每一次使用都普遍适应,既不是应用实例,也不是举例说明。因此译为“用况”,而不是“用例”。几点说明:(1)一个用况只描述参与者对单独一项系统功能的使用情况;(2)通常是平铺直叙的文字
7、描述,UML也允许其他描述方式;(3)陈述参与者和系统在交互过程中双方所做的事;(4)所描述的交互既可能由参与者发起也可能由系统发起 ;(5)描述彼此为对方直接地做什么事,不描述怎么做;(6)描述应力求准确,允许概括,但不要把双方的行为混在一起;(7)一个用况可以由多种参与者分别参与或共同参与。,14,识别用况的关注点:,(1)用况是用来探索需求的,15,识别用况的关注点:,(2)用况是给系统外部的参与者(人而非系统)看的,用人好懂的语言描述、用况要从参与者的角度命名,16,识别用况的关注点:,(3)用况的含义是使用的情况,是人的使用情况,是对系统外的人有用的,用况描述的功能是外部可见的行为、
8、是对人来说有价值的行为、一个用况体现的是一项人可用的功能,17,立足开发者的视角系统要求用户输入合法的密码系统能够接受用户录入取款金额系统能够从帐户中扣除取款金额系统允许选择“打印或不打印收据”系统能够显示交易结束信息,立足用户视角用户插入ATM卡系统要求输入密码用户输入密码系统验证密码正确系统提示用户输入取款金额用户输入取款金额并确认系统验证取款金额合法系统从帐户中扣除取款金额系统询问用户是否打印收据用户要求不打印收据系统显示“交易结束”,退卡,(4)一个用况描述的功能是参与者与系统共同完成的,识别用况的关注点:,描述用况时从参与者和系统两个角度进行、只写外部可见的、不写内部的处理细节,18
9、,内容与书写格式 :名称行为陈述(分左右栏)调用语句控制语句括号或标号,19,用况描述的三个特点:(1)明显地区分参与者的行为和系统的行为;(2)通过调用语句明确地表示一个用况对另一个用况的引用;(3)引入控制语句、括号等结构化成分,更利于表达复杂的用况内容。,20,如何定义用况,针对单个用况的描述策略:把自己当作参与者,与设想中的系统进行交互。考虑:交互的目的是什么?需要向系统输入什么信息?希望由系统进行什么处理并从它得到何种结果?把上述交互过程描述出来。定义系统中所有的用况:(1)全面地了解和收集用户所要求的各项系统功能,找出所有的参与者,了解与各项功能相关的业务流程;(2)把用户提出的功
10、能组织成适当的单位,每一项功能完成一项完整而相对独立的工作;(3)穷举每一类参与者所使用的每一项系统功能,定义相应的用况;(4)检查用户对系统的各项功能需求是否都通过相应的用况做了描述。,21,参与者,基用况,include,extend,include,用况,基用况,基用况,被包含用况,延伸用况,用况,5.5 用况图,参与者,参与者,模型元素:参与者用况延伸包含泛化,5.5 用况图,22,用况之间的关系包含、延伸、泛化,包含,23,包含关系(include),包含关系将一个用况合并到另一个用况的行为序列中。 位于两个用况之间的包含关系意味着基用况显式地在其指定位置将另一个用况包含进来, 使其
11、成为自己的行为的一部分被包含的用况就像是子程序它表示那些必须要重复描述的行为。 包含关系可用于提取共用的用况在具有包含关系的两个用况中,被包含的那个用况不能单独存在,它只能以实例的形式存在于包含它的用况之中,24,用况之间的关系包含、延伸、泛化,延伸,25,扩展关系给用况添加增量细节。 两个用况之间的扩展关系,代表基用例可以隐式地包含另一个用况作为其行为的一部分,包含的位置间接地由另一个用况(扩展用况)确定。 与包含的区别 基用况可以独立于扩展用况单独存在。当一个用况有多个子流程时,可以用扩展关系对其进行扩展,使得此基用况的不同子流程能在不同的情形下以扩展用况的形式被激活。,延伸关系(exte
12、nd,扩展),26,注意的问题1、扩展用例经常也是片段,它不能作为行为序列单独出现。2、基用例在缺少任何扩展用例的情况下也必须是合法用例。3、扩展用例要确定在基用例行为序列中的插入位置。4、在多数情况下,扩展关系有一个附加条件,只有当控制到达插入位置时条件为真,才会发生扩展行为。,用况关系-包含和延伸,27,用况之间的关系包含、延伸、泛化,28,用况的两种复杂情况1、两个(或多个)参与者共享一个用况不同种类的参与者可能都要使用某一项系统功能,因此它们可能共享同一个用况,29,2、一个用况的执行,可能需要两个(甚至多个)参与者同时与系统交互。,30,用况图的开发过程确定系统边界:与外部事物的界限
13、发现参与者:所有与系统直接交互的人、设备、外系统 定义用况:定义用况、描述用况 建立用况之间的关系:包含、延伸、泛化 确定参与者和用况之间的关系:直线连接 绘制用况图:正确使用图符,使用用况图的几条建议最重要的工作是对用况的描述不要过分深入地描述系统内部的行为细节 运用最主要概念,加强用况内容的描述不要陷入延伸与包含、延伸点、泛化等问题的争论和辨别了解用况的局限性主要作用是描述功能需求,5.6 开发过程与建议,31,练习:,1、下面给出了两组用况图,分别说明哪张用况图更合理,为什么?,(1),(2),2、根据你对自动存取款机的使用经验,构建自动存取款机的用况图,描述其中的每一个用况。 要求:(
14、1)小组式建模(5-6人)(2)角色分工(3)电子版提交,32,概念:对象(object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和施加于这组属性的一组操作构成。类(class)是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,它由一个类名、一组属性和一组操作构成。 类和对象的关系集合与成员,对象是类的实例,第6章 发现对象,定义对象类,6.1 对象和类的概念及其运用,33,主动对象(active object)至少有一个操作不需要接收消息就能主动执行的对象用于描述具有主动行为的事物主动对象的类叫做主动类(active clas
15、s)被动对象(passive object) 每个操作都必须在消息的驱动下才能执行的对象主动操作(active operation) 主动对象中至少有一个不需要接收消息就能主动执行的操作。(用于定义进程或线程的程序单位)被动对象的操作:函数、过程、例程等,34,类的语义,OO方法中的类在不同的语境下有两种不同的语义:1. 一个类代表由它的全部对象实例所构成的群体日常语言表达中的例子:“公司里有管理人员、技术人员和市场人员”“马路上汽车很多” 在OO模型中:每个类都是由它的全部对象实例所构成的集合类代表了它的全部对象实例。,2. 一个类代表属于该类的任意一个对象实例从大量的个体中抽象出一个概念,
16、再运用这个概念时就可以代表其中的任何一个个体,例如: “学生有一个学号,属于一个班级,要上课” 在OO系统模型中定义了一个类,它就可以代表它的任何一个对象实例,例如:汽车与发动机之间的聚合关系,表示任何一辆汽车都有一台发动机,任何一台发动机都可以装在01辆汽车上,35,在类的抽象层次建模,对象是现实中存在的,是面向对象方法中的核心概念,但是面向对象系统建模时,要在类的抽象层次上建立系统模型。,哈利波特、金秀贤、孙俪、朱亚文。,36,在类的抽象层次建模,理由:(1)充分性:模型中一个类描述了它的全部对象实例(2)必要性:个别对象实例不能代表其他对象实例(3)符合人类的思维方式:在概念层次上表达描
17、述事物规律(4)与OOPL保持良好的对应(5)避免建模概念复杂化 (6)消除抽象层次上的混乱,37,如何运用类和对象的概念,从对象出发认识问题域将问题域中的事物抽象为对象;将具有共同特征的对象抽象为类用类以及它们之间的关系构成整个系统模型;,归纳,明星资讯系统开发,38,类 名,压缩方式,类 名,属性名:类型名,操作名(),展开方式,6.2 表示法在模型中用类符号来表示一个类它代表了属于该类的全部对象实例,39,对象名:类名,压缩方式,属性名=值,UML的对象表示法:,细节方式,对象名:类名,40,6.3 发现对象,研究问题域亲临现场深入调查研究直接观察并向用户及相关的业务人员进行调查和交流,
18、考察问题域中各种各样的事物、它们的特征及相互关系 听取问题域专家的见解领域专家包括技术人员、管理者、老职员和富有经验的工人等阅读相关材料阅读各种与问题域有关的材料,学习相关行业和领域的基本知识借鉴以往的系统查阅以往在该问题域中开发过的同类系统的分析文档 ,吸取经验,发现可以复用的类,41,正确地运用抽象原则对什么进行抽象问题域当前目标系统责任,忽略与系统责任无关的事物只注意与之有关的事物 ,抽象为系统中的对象 例如:学校的教师、学生、教务员 和 警卫忽略与系统责任无关的事物特征只注意与之有关的特征,抽象为对象的属性或操作 例如:教师的专业、职称 和 身高、体重,判断事物是否与系统责任有关: 一
19、是看该事物是否为系统提供了一些有用的信息,或者说它是否需要系统为它保存和管理某些信息; 二是看它是否向系统提供了某些服务,或者说它是否需要系统描述它的某些行为。,42,正确地运用抽象原则对什么进行抽象问题域当前目标系统责任,总体原则:(1)为了尽可能全面地发现系统所需要的对象,分析员应该把握“先松后紧”的原则,宁可多余,不可遗漏。(2)对发现的对象进行筛查,去掉不必要的,进行必要的调整与合并。,正确地提炼对象 例如:对书的不同抽象在图书馆管理系统中以一本书作为一个对象实例在书店管理系统中以一种书作为一个对象实例,43,由系统管理或使用其信息,或者在系统中呈现某些行为的各类人员,由系统管理或使用
20、其信息,或者在系统中呈现某些行为的各类组织,由系统进行管理的各种物品,其他,策略与启发,(1)考虑问题域:,抽象事物,事件,文件,结构,人员,组织,物品,设备,在系统中运行并提供某些功能的设备,强调动态特征,例如:课程、生产计划、交易、账户,需要长期记忆的事件例如:银行的取款、存款;考虑信息的复杂程度,例如:保险公司的索赔,车辆管理中的驾驶违章,泛指各种表格、档案、证件、票据等文件例如:业务报表,人事档案,身份证,合同,商品订单等 注意三个问题:非基础数据,同一事物的重复描述,多种事物信息组合,从结构得到启发,联想到新的对象:一般-特殊结构、整体部分结构,其他一切有助于发现对象的事物,44,(
21、2)考虑系统边界:考察在系统边界以外与系统交互的各类参与者考虑通过那些对象处理这些参与者的交互,人员,设备,外系统,(3)考虑系统责任:检查每一项功能需求是否已有相应的对象提供,发现遗漏的对象,两个角度: 一个存储人与设备的相关信息 一个是处理人与设备与系统之间的交互,一个角度: 系统边界,在系统中设立一个对象,处理与外系统的接口,45,审查与筛选,(1)舍弃无用的对象通过属性判断:是否通过属性记录了某些有用的信息?通过操作判断:是否通过操作提供了某些有用的功能?二者都不是无用,问题的关键是:设立这个对象的动机 是为了通过其属性提供一些有用的信息? 还是通过其操作提供一些有用的功能? 或者二者
22、兼而有之?,46,(2)对象的精简只有一个属性的对象,班级,班主任姓名,1,1,班级班主任姓名,47,(3)与实现条件有关的对象例如:与图形用户界面(GUI)数据管理系统硬件 及操作系统 有关的对象推迟到OOD考虑,是否设立某个窗口对象来处理人机交互?是否设立一个进程调度对象来负责业务进程的调度?是否设立一个数据存储对象来负责对象数据的持久存储?,48,6.4 对象分类,(1)将对象抽象为类,用类表示它的全部对象从对象到类的抽象过程,中间并没有一个明显的分界线,这种抽象过程常常是在无形中发生的。(2)审查和调整类的属性或操作不适合该类的全部对象实例例:“汽车”类的“乘客限量”属性进一步划分特殊
23、类属性及操作相同的类经过抽象,差别很大的事物可能只保留相同的特征考虑能否合并为一个类(服装和计算机)属性及操作相似的类考虑能否提升出一个一般类(轿车和货车、机床和抽风机)同一事物的重复描述例:“职员”和“工作证”取消其中一个,49,(3)类的命名 类的名字应适合该类(及其特殊类)的全部对象实例 汽车、摩托车、马车 反映个体而不是群体(学生、学生们) 使用名词 或 带定语的名词避免市井俚语和无意义的符号使用问题域通用的词汇 使用便于交流的语言文字可以用本地文字和英文双重命名,50,练习:,1、对于谷仓和马匹来说,在什么情况下他们应该抽象为一个类?在什么情况下他们应该抽象为两个类?2、建模一个教学
24、系统,系统应该包括哪些系统责任时,学生、学院、教师、树会被抽象为该系统中的对象?,51,基本共识 对象的属性和操作描述了对象的内部特征 对象的属性和操作是对象分类的根本依据 由于不同的OOPL对封装原则的体现各有不同,而OOA应该适合不同的语言,因此,在策略上不单纯以严格封装的OOPL为背景,第7章 定义对象的属性和操作,7.1 属性和操作,52,属性(attribute)是用来描述对象静态特征的一个数据项。实例属性(instance attribute)和类属性(class attribute)的区别 实例属性是每个对象实例各自拥有的属性,它描述了各个对象实例自身的特征。 类属性是一个类的全
25、部对象实例共同拥有的属性,它的值被这个类的全部对象实例所共享。例如:仪表类输入电压、功率及各种规定的质量指标类属性编号、出厂日期、精度等实际性能参数实例属性,第7章 定义对象的属性和操作,7.1 属性和操作,53,第7章 定义对象的属性和操作,7.1 属性和操作,54,操作(operation)是用来描述对象动态特征(行为)的一个动作序列 。近义词:方法(method),服务(service) 被动操作(passive operation):只有接收到消息才能执行的操作 编程语言中的函数、过程等被动成分主动操作(active operation):不需要接收消息就能主动执行的操作编程语言中的进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象的分析与设计ppt课件 分析篇 面向 对象 分析 设计 ppt 课件
链接地址:https://www.31ppt.com/p-1800172.html