面向对象技术讲稿资料_第1页
面向对象技术讲稿资料_第2页
面向对象技术讲稿资料_第3页
面向对象技术讲稿资料_第4页
面向对象技术讲稿资料_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 面向对象的分析与设计方法 第一节 面向对象方法的基本概念 1、对象: 是系统中用于描述客观事物的一个实体,它是构成系统的 一个基本单位。 一个对象由一组属性和对这组属性进行操作的一组服 务构成。 2、属性: 用来描述对象静态特征的一个数据项。 3、服务: 用来描述对象动态特征的一个数据项。 4、封装: 就是把对象的属性和服务结合成一个独立的系统单位,并 尽可能隐藏对象的内部细节。 5、可见性: 指对象的属性和服务允许对象外部存取和引用的程度。 6、消息: 就是向对象发出的服务请求。 7、类: 是具有相同属性和服务的一组对象的集合,他为属于该类的 全部对象提供了统一的抽象描述, 其内部包

2、括属性和服务两个主要部 分。 8、实例: 类的一个成员对象。 9、一般类和特殊类 (超类和子类):不同对象既具有共同性又具有特 殊性,运用抽象原则,舍弃对象的特殊性,抽取其共同性,则得到一 个适应一批对象的类,则该类为一般类。在该类范围内,考虑定义该 类时舍弃的某些特殊性,则该类中,有一部分对象具有这些特殊性, 这部分对象构成一个新的类, 它是前一个类的子集, 称作一般类的特 殊类。 10、继承: 即特殊类的对象拥有一般类的全部属性和服务。 第二节 发现对象 1、对象可以是:物理的和概念的,例:人、组织、物、事件等; 2、出发点:问题域和系统责任。 问题域:客观存在与系统对象的映射; 系统责任

3、:责任由那些对象来完成; 3、抽象原则:围绕系统责任目标进行抽象,且先松后紧,即选出各 种可能的侯选对象,再审查筛选。 4、方法:名词分析法(注意考虑隐含的名词) 5、审查与筛选:A、属性包含有用的信息且可以定义成适用所有场合 的公共属性; 或 B 、有能改变其属性值的操作且该操作能被定义为公 共服务; 6、精简:只有一个属性或只有一个服务的对象。 例:班主任 班 7、对象的简单定义: 例:学生:当前已经被大学录取,有资格进行注册的人。 8发现SRS对象 学生注册系统需求分析 我们被要求为大学开发一个自动化学生注册系统 (SRS ,这个系 统将使学生可以在线注册每个学期的课程, 也可以用于跟踪

4、学生的学 习进展,直至其获得学位。 当学生被大学录取后,学生使用SRS建立学习计划,即确定满足 特定学位所需要的课程,并选择一名导师。SRS要检验所提出的学习 计划是否满足该学生所希望获得的学位的要求。 一旦建立了学习计划, 则在以后每个学期的注册期间学生都可以 在线查看课程计划,选择要选修的课程,如果课程由多名教授讲授, 则还可以指定听课时间(星期几、几点)。SRS要参考学生所完成课 程的成绩单(学生可以随时查看自己的成绩单) ,检验学生是否满足 所申请课程的必要的预修条件。 若 1、所要求的预修课程都已修完; 2、课程在该学生的学习计 划之内;3、课程尚有空位;则学生可以参加听课。如果 1

5、、 2 条件满 足,但 3 不满足, 则该学生要放到一个先入先出的等待队列中。如果 学生以前所等待的课程可以提供(或者由于某学生取消了听课计划, 或者由于该课程的听课位置增加了) ,则该学生会被自动录取到所等 待的课程中。只要允许学生听课,则SRS向该学生发送E_mail通知。 如果该学生不再对该课程感兴趣, 可以最迟在学期的第一个星期末决 定退出所选的课程,否则, 若学生被允许听课,则学生要为该课程付 费。 隐含:班、教室 类清单:课程、课程计划、学习计划、教授、学生、班、成绩单 第三节 定义属性 一、策略 1、按一般常识这个对象应该有哪些属性; 2、在当前的问题域中这个对象应该有哪些属性;

6、 3、按系统的责任要求这个对象应该有哪些属性; 4、建立该对象是为了保存和管理哪些信息; 5、为实现其功能应增加哪些属性; 6、对象有哪些需要区别的状态,是否需要增加一个属性来区别这些 状态。 二、审查与筛选 1、该属性是否体现了以系统责任为目标的抽象; 2、该属性是否描述了对象本身的特征; 3、该属性是否破坏了对象特征的原子性; 4、该属性是否可以从其他属性中导出; 三、属性的详细说明 1、属性的命名; 2、属性的解释; 3、属性的数据类型; 4、实现要求及其他; 四、定义SRS各对象属性 Course Secti on Professor CourseNo CourseName Credi

7、ts Sectio nNo Dayofweek Timeofday Semester Room Seati ngcapacity SSN Name Title Stude nt SSN Name Major Degree 详细说明: Section.Timeofday :授课时间(范围),例如下午 24时; Sectio n.Seati ngcapacity :注册某个班所允许的最大学生数量; Professor.SSN:唯一的社会安全号码; Student.Major :学生的主修专业,例如计算机科学与技术”(假设一名学生只有一个专业) 第四节定义服务 一、策略 1、考虑系统责任和问题域:设

8、置这个对象的目的是什么?若是完成 某些功能,则由哪些服务来完成这些功能;若是保存某些信息,那么 系统怎样运用这些信息,是否需要对这些信息进行某种计算或加工, 然后向对象外部提供,怎样提供?对象在问题域中有哪些行为, 应该 设置何种服务来模拟这些行为? 2、分析对象状态:分析对象所能呈现的每一种状态,考虑在每一种 状态下对象可以发生什么行为?应该由什么服务来描述?对象由一 种状态转换到另外一种状态是由什么操作引起的?是否设置了相应 的服务? 3、追踪服务的执行路线:分析员把自己设想成当前服务的执行者, 模拟每个服务的执行, 并追踪服务的执行路线, 直至全部服务都被模 拟过。用于发现遗漏的服务。

9、二、审查与调整 1、按照系统责任要求检查每个服务是否有用; 2、检查每个服务是否是高内聚的: 三、服务的详细说明 1、服务解释:该服务的作用与功能 2、消息协议:给出服务的入口消息格式,服务名称、输入输出参数、 参数类型 3、消息发送:指出在这个服务执行时,需要请求哪些别的对象服务 4、约束条件: 四、SRS的部分服务 1、 Student 的部分服务 添加班: addSection 注销班: dropSection 是否被批准:isE nrolledln 打印成绩单:prin tTra nscript 2、Section的部分服务 招收学员: en roll(Stude nt s) 显示学员

10、列表:displayStude ntRoster() 确认空座: con firmSeatAvailability() 注销学生: drop(Stude nt s) 给定成绩: getGrade(Stude nt s) 第五节一般特殊结构 一、对象与外部的关系 1、对象之间的分类关系,即对象之间的一般特殊关系,用一般特殊 结构表示(分类结构) 2、对象之间的组成关系,即整体部分关系,用整体部分结构表示(装 配结构) 3、对象之间的静态联系,即通过对象属性反映的联系,用实例连接 表示 般类 A 4、对象之间的动态联系,即对象行为之间的依赖关系,用消息连接 表示 般特殊结构表示法 特殊类特殊类 三

11、、发现一般特殊结构 1、学习当前领域的分类学知识:植物分类法、图书分类法等 2、按常识考虑事物分类:例如人,可按人种分,按年龄段分,按性 别分等; 3、回顾一般特殊类的定义 4、考察属性和服务:例,公司人员具有属性姓名、身份证、股份、 工资等,但股份仅适用于股东,而工资适用于职工,则建立如下结构: 5、考虑领域范围内的复用:(类构件) 例:某超市使用的现钞收款机具有属 性 A、B、C D E、F,服务 X、Y、Z。 其中属性A B、C,服务X、Y是任何 收款机所共有的属性和服务,而属性 D E、F和服务Z是现钞收款机所特 有的属性和服务。则可定义收款机类 和现钞收款机类,构成一般特殊结构, 这

12、样收款机类成为可供本领域其他系 统复用的领域构件。 公司人员 身份证号 四、审查与调整 1、问题域是否需要这样的分类:书一一善本书 2、系统责任是否需要这样的分类:职员一一生产人员、营销人员 3、是否符合分类学常识:A是一种B 4、是否构成了继承关系:船 五、简化 航标船 1、特殊类没有自己特殊的属性和服务(学生大学生、研究生) 2、某些特殊类之间的差别可以通过一般类的某个属性值体现(人, 性别、国籍) 3、一般类下只有一个特殊类(收款机现钞收款机) 通常一般类应符合:它有两个或以上的特殊类或需要用它创建对象实 例或者有助于软件复用,才有存在价值。 六、多继承 多继承存在命名冲突,所以标准 J

13、AVA不支持多继承,通过接口 完成相应功能 第六节整体部分结构 、表示法 整体对象 部分对象 M N 连接符两端的字母或数字表示结构中对象实例的 多重性,即位于连接符一端的对象实例要求另一端多 少个对象实例与自己进行整体部分组合。 固定数量:固定数字; 不定数量:M,N ; 固定范围:下界,上界;例4, 6; 不定范围:1,M ; 0, N ; 二、实现方式 1、嵌套对象:用部分对象类作为数据类型; 2、对象指针:指向部分对象的指针; 三、发现整体部分结构 1、物理上的整体事物和它的组成部分:汽车发动机、轮胎、车 身 2、组织机构和它的下级组织及部分:学院系 3、团体与成员:班学生 4、一种事

14、物空间上包容其它事物:车间厂房、机器、人 5、抽象事物的整体与部分:书章 6、具体事物和它的抽象方面:人员身份、职责、奖罚 四、审查和筛选 1、是否属于问题域:如公司业务管理系统中,家庭职员; 2、是否是系统责任的需要:如工会员工; 3、部分对象是否具有一个以上的属性:轮胎规格 4、是否有明显的整体部分关系:学生课程 五、用途 1、基本用途:表达问题域中事物之间的组成关系 2、简化对象定义:飞机有 50 个属性, 20 个服务,其中与发动机和 导航仪有关的属性各有 10个,服务各有 5 个,则可建立发动机类和 导航仪类,然后使用整体部分结构与飞机组合,简化了飞机的定义。 3、支持软件复用:图

15、4、表示数量不定的组成部分;书章 5、表示动态变化的对象特征:人员由营业员变为会计师、经理; 六、两种结构的关系 一般特殊结构是特殊类经过继承而拥有一般类的特征; 整体部分结构是整体对象通过组装而拥有部分对象的特征; 表达自然是选用结构的标准; 七、SRS中的整体部分结构 1、成绩单与成绩单记录 2、课程计划与班 3、学习计划与课程 第七节实例连接 一、简单的实例连接 1、实例连接:用于表达对象之间的静态联系,静态联系是指最终可 通过对象属性来表示的一个对象对另一个对象的依赖关系。 例:教师指导学生毕业设计、某课程是另外课程的预修课、两个城市 间有航班等 2、表示法 一对一连接: 0,m 一对

16、多连接: 多对多连接: 3、实现方式 实例连接一般可用对象指针实现,即在被连接的两个类中选择一个, 在它的对象中设立一个指针类型的属性,用于指向另一个类中与它有 连接关系的对象实例。一般可在多重性1端的对象中建立指针。若系 统要求从两个方向都能快速地相互查找和引用, 则两个对象都要建立 指针。 4、与整体部分结构的异同 二、复杂的实例连接 1、表示法 2、用对象表示实例连接的复杂性 二、多兀关联 某人使用某语言从事某项目; 某公司委托某代理商在某公证机构的监督下为某个项目招标; 方法:在多元关联的汇集点增加一个对象, 使之转化为二元的实例连 接,新增这个对象的属性是分别指向每个元的对象指针 四

17、、多对多实例连接 五、对象、属性的增补 1、对象增补:复杂实例连接、多元关联、多对多实例连接要求增加 一些新的类 2、属性增补:每一个实例连接,应该在它的某一端(若要求相互引 用则是两端)所连接的对象类中增加相应的属性, 其类型应被说明为 指向另一端的对象指针。 六、实例连接说明 详细说明实例连接的实际意义。 七、SRS的实例连接 1、教授教班,一个教授可教多个班,每个班一个教授教,是一对多 实例连接,由于系统责任要求能够从两个方向都能快速地相互查找和 引用,则两个对象都要建立指针,故教授设立 teaches属性,班设立 in structor 属性。 1 Pla nO fStudy Prof

18、essor Stude nt Course m m Professor Title teaches Stude nt Major Degree Tran script atte nds Secti on Sectio nNo DayOfWeek TimeOfDay Room Seat in gCapacity Represe ntedCourse en rolledStude nts offeredI n in structor assig nedGrades Tran scriptE ntry Grade Stude nt Sect ion tran script 2、每个学生有一份成绩单,

19、两者有一对一实例连接,故学生设立 Tran script属性,成绩单设立 stude ntOw ner属性。 3、每个学生可参加多个班,每个班可有多个学生参加,两者存在多 对多实例连接,故学生设立 attends属性,班设立enrolledStudents属 性。 4、每个学生有一份学习计划,两者有一对一实例连接,通过在学习 计划中设立Student属性建立两者的联系。 5、 每份学习计划要求一名教授审核,每名教授可审核多份学习计划, 两者有一对多实例连接,在学习计划中设立 Professor属性,建立两 者的联系。 6、每门课程可以有多门预修课,该门课程又可能是多门课程的预修 课,存在一元自

20、反关联,故设立 prerequisites属性。 7、每门课程可以有多个班,每个班只能上一门课程,两者有一对多 实例 连接 , 在课 程中 设 立 OfferedAsSection 属 性, 班设 立 Represe ntedCourseS性,建立两者的联系。 8、每条成绩单记录须明确是哪个学生获得的成绩,两者存在实例连 接,故在成绩单记录设立stude nt属性用于建立两者之间的联系。 9、每个班结业时会有一份该班的成绩,该成绩要写入每个学生的成 绩单记录, 每条成绩单记录要求一个班的成绩, 每个班的成绩由于包 含多个学生该门课程的成绩, 故会产生多条成绩单记录, 两者有一对 多实例连接,在

21、班中设立 assignedGrades属性,用于存储 该班的成绩,在成 绩单记录中设立section属性,建立两者之间的联系。 第八节 消息连接 一、顺序系统中的消息 1、顺序系统中消息的特点 A、每个消息都是向对象发出的一个服务请求,它必定引起接收 者一个服务的执行; B、除了主动对象唯一的主动服务外,其它对象服务只有在接收 到消息时才开始执行; C、每个消息的发送和接收都是同时进行的,即消息是同步的; D、消息是从正在执行的服务中发出的。消息发出后,发送者暂 停执行位于消息发送点之后的其它操作, 将控制权转移到接收者, 直 到接收者执行完相应的服务后才返回到发送消息的服务, 继续执行其 它

22、操作。即所有操作都是串行的。 2、消息的语法特征 A、消息名:即接收消息的服务名; B 、入口参数:即接收消息的服务要求的输入参数 (0 个或多个); C、返回参数:即接收消息的服务提供的输出参数(0个或多个); 3、消息的语义特征 A、发送者:通过消息发送点的位置隐含表明,不需要显式的表 示; B、接收者:由消息名表达; C、其它需传送的信息:通过入口参数和返回参数表示; 二、并发系统中的消息 1、并发系统:有多个控制线程(thread of control)并发执行的系 统;每个控制线程是由一系列顺序执行的操作所构成的活动序列。 2、并发系统中的消息 A、发生在控制线程内部的消息; B、发

23、生在控制线程之间的消息; 3、消息的同步与异步 不同控制线程之间的消息可分为同步消息( synchronous message 禾口异步消息(asynchronous message A、同步消息:仅当发送者要发送一个消息而且接收者已经做好 接收这个消息的准备时才能传送的消息; B 、异步消息:发送者不管接收者是否做好接收准备都可以发送 的消息; 4、接收者对消息的响应方式 A、在消息产生之前,处理这个消息的进程并不存在;仅当发送 者发出这个消息时才立刻创建一个进程来响应这个消息, 完成它所要 求的服务; B、处理这个消息的进程已经存在,并且与发送者同步地接收消 息。接到消息立即处理; C、接

24、收者异步地接收和处理消息,即在消息发出后的某个时刻 才接收和处理该消息; D、接收者不关心这个消息,不作任何响应。 5、发送者对消息处理结果的期待方式 A、等待,直至得到处理结果才继续原来的工作; B、发送者不等待处理结果,发出消息后继续执行,以后再查看 消息的处理结果; C、既不等待,也不关心处理结果; 6、消息接收者是否唯一 A、定向消息:消息定向地发送给唯一的接收者; B、广播消息:消息发送给某个范围内所有可能的接收者; 三、应该识别和表示的主要问题 1、对象之间是否存在着某种消息? 2、该消息是控制线程内部的还是不同控制线程之间的? 3、消息是从发送者的哪个服务发出的?是由接收者的哪个

25、服务响应 和处理的? 4、消息是同步的还是异步的? 5、发送者对消息处理结果的期待方式是哪种? 四、消息连接的表示 1、表示法 发送者 接收者 发送者* 接收者 控制线程内部的消息连接 控制线程之间的消息连接 2、为什么没有表示3、4、5 A、保持模型的简明性; B 、抽象是逐步深入的; C、3、4、5 可在详细说明中表述; 五、发现并建立消息连接 A 、从每个主动对象的主动服务开始,进行服务模拟、执行路线 追踪每发现一个新的请求,就发现一个新的消息; B、分析该消息的发送者与接收者是否属于同一个控制线程;顺 序还是并发?是否引起控制线程的切换?接收者是否只有通过当前 这种消息的触发才能执行?

26、 C、建立消息连接 六、消息的详细说明 消息的详细说明包括发送者和接收者两方面的说明: 1、发送者 A、指出这个服务在执行时可能发出的每一个消息,给出接 收者的类名和处理该消息的服务名; B、说明接收者与本服务是顺序执行还是并发执行的; C、必要时说明同步、异步以及发送者对消息处理结果的期 待方式 2、接收者 A、说明由这个服务接收和处理的每一种消息,规定消息的 格式和内容,包括消息名称、输入输出参数、参数类型等、 B、说明发送者与本服务是顺序执行还是并发执行的; C、必要时说明同步、异步 七、SRS中各个对象的服务及消息连接 对象行为: 1、系统行为:如创建对象等 2、对象自身的简单行为:如读取、设置一个属性值 3、对象自身映射的客观事物固有行为:如复杂的算法 下面只给出第 3 类行为的服务 原因:1、系统行为是系统施加于对象的行为,不是对象本身的行为, 分析时可暂不考虑,但设计与实现要考虑,通常由构造函数完成; 2、对象自身的简单行为是由于严格封装引起的, 1、 Person disp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论