版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息系统分析与设计 第2章 面向对象导论,2.1 面向对象,原先的程序开发,数据和过程是分离的; 现实世界中的对象,都有特性(属性,类似于数据)和行为(类似于过程),二者是结合在一起的;这个角度来看,计算机编程中将数据和过程结合起来更符合逻辑。 面向对象的方法包括面向对象分析、面向对象设计、面向对象程序设计,分别对应于系统分析、系统设计、系统实施三个阶段,分别构成系统的逻辑模型、物理模型和计算机可执行的模型。,2.1.1 什么是对象,现实的中对象往往具有特性和行为;一个钻孔机就是一个对象,他有电压、重量、转速、功率等特征,也有旋转、冲击等行为。 一部手机,具有型号、价格、存储容量等特性,也有拨
2、打电话、收发短信、上网等行为; 一个销售订单也是一个对象,因为它有单号、日期、商品种类及数量等特征,也有计算税费、计算总额等功能行为。,2.1.1 什么是对象DVR示例,每台DVR有个序列号,作为唯一表示; 有属性:生厂商名称(例如Panasonic,JVC)、型号(PC D4744S)、颜色、碟片容量、兼容格式; 有行为:播放DVD等视频,前进、后退、暂停播放; 为了播放影片(让他工作),需要发送一个消息;这个消息可以通过遥控器发送(遥控器是另外一个对象),或者按下DVR的播放按钮(按钮就相当于DVR的接口); 接到信号后,DVR开始启动、解码、输出等技术工作,用户不需要知道其工作原理;从而
3、实现了对用户隐藏技术细节,这就是封装,2.1.1 什么是对象DVR示例,如果满足相关条件(如电源接通、有兼容格式的影片等),DVR会按照预期运作,这就是成功场景; 但是如果条件不满足,DVR播放机会返回错误消息提示(例如没有片源) DVR播放机还会想其他对象发送消息;例如它有视频、音频接口。用户可以用电缆线连接电视,DVR播放机向电视发送视频信息,从而实现图形呈现。 音频也是同样道理。,面向对象的几个主要概念对象,属性:高度、直径、苹 果数等静态特征。 操作:光合作用、开花、 结果等动态特征。 这些操作是响应外界环境(温度、湿度等)变化后的自主行为,从而实现了对象的自我管理。,医疗保险账户 属
4、性: 姓名:张三 年度:2005 医保号累计账户拨入金额:1800.00 累计账户支付金额:230.50 最高统筹限额:50000.00 累计统筹支付金额:680.00 ,操作: 查询余额 拨入资金 支付费用 年度结转 ,对象举例,属性取决于视点,从销售人员的角度 型号 价格 颜色 里程数,一辆汽车具有的属性:,从维修人员的角度 马达类型 传动类型 维修记录,从销售人员的角度 处理客户定单 准备销售合同 加入清单 从清单中删除,一辆汽车具有的操作:,从维修人员的角度 测试刹车 修理刹车 转动轮胎 检查马达速度,操作取决于视点,2.1.2 类,对象是具体的
5、(序列号为D1DE99821的DVR播放机) 现实世界中存在很多相同性质的类(Panasonic生产了几十万台DVR播放机),它们有相同的属性和操作。 可以将这几十万台DVR播放机抽象为属于同一个“类” 人“类”:张三、李四、王五 淘宝上,每天产生几百万份订单;这些订单有相似的熟悉、操作,可以抽象为一个订单类:SalesOrder,对象在不同阶段有不同表现形式,OOA:接近现实世界的 客观实物,模型比较粗 OOD:细化为软件对象 OOP:将这些软件对象根据选择的程序设计语言变成程序对象,例子:人事管理中的“员工”,OOA:发现一个员工对象有姓名、工资等信息,提供“申报本人信息”服务。 OOD,
6、OOP阶段,public class Employee private String name; /属性部分 private double salary; private Date hireDay; public void Employee(.) / 构造函数 . public String getName() / 提供的服务(操作) return name; public double getSallary() return sallary; ,可视化的对象,类的示例,类: Employee,类名,属性,方法,例子,对象“奥迪A8”、“奔驰”、“雪铁龙”属于一个共同的类“Car”; “张三”
7、、“李四”都属于类“人” 系统分析与设计、MIS都属于类“课程”,例子:“抽象与具体”的关系,区分对象和类,同类对象具有相同的属性和服务,是指它们的定义形式相同,即具有相同的属性项和行为方式,而不是说每个对象的属性值都相同。 类是静态的,类的存在、语义和关系在程序执行前就已经定义好了。 对象是动态的,对象在程序执行时可以被创建和删除。计算机中一个对象通常就是指一个实例 有的场合不作区分,2.1.3 属性,人有高矮胖瘦,五官相貌; SalesOrder类也可以有属性,例如: 订单号(orderNo)、订单日期(orderDate)、送货日期(deliveryDate)、订单项目(orderTer
8、ms),2.1.4 操作,类有操作(方法),用于描述类的行为、功能; public double discount(int discountID) ,类的示例,类: Employee,类名,属性,方法,2.1.5 封装,保护隐私; 保持稳定性与健壮性 提升系统、代码的可重复利用率,封装(encapsulation),封装(encapsulation)是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。,封装(encapsulation),类的设计、使用与实现的分离 设计者类的外部设计 使用者操作的功能与调用方法 实现者数据结构和实现算法,2.1.6 对象本体,2
9、.1.7 泛化 与 继承,2.1.7 继承性(inheritance),现实世界有继承,继承权、继承法 继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。 父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作,还可以对父类(或祖先类)中的操作重新定义其实现方法。,继承,正确性判断:is a (kind of) 一般与特殊关系,2.1.8 多态性,2.1.9 接口,现实世界有接口,例如电脑上有各种接口(USB、PCI接口等) 接口是一组没有实现的操作方法和常量声明的集合。任何实现接口的类必须实现接口中声明的所
10、有方法。(java等语言中存在) 接口目的:类相互替代、提升灵活性,2.1.11 包,电脑上的文件有几百万个,甚至更多;如何组织这些文件?,2.1.12 关联,世间万物,往往存在联系 销售订单与某个顾客有联系,一个学生和某门课程有联系,某个司机和某辆车有联系,聚合整体与关系,组合,统一建模语言UML,Unified Modeling Language,What is the UML?,UML stands for Unified Modeling Language. The UML is a language for visualizing (可视化) specifying (详述) cons
11、tructing (构造) documenting (文档化) the artifacts of a software-intensive system.,说明: UML can be used with all processes, throughout the development life cycle, and across different implementation technologies.,Why Build Models?,更好地理解问题 (To understand the problem better) 人员之间的沟通 (To communicate with oth
12、er persons) 发现错误或疏漏的地方 (To find errors or omissions) 获取设计结果 (To plan out the design) 生成代码 (To generate code),UML概述,为何研究UML结束方法大战 UML是由世界著名的面向对象技术专家G. Booch,J. Rumbaugh 和 I. Jacobson发起,在Booch方法,OMT方法和OOSE方法的基础上,广泛征求意见,集众家之长,几经修改而完成的。 Three amigos,Booch Rumbaugh Jacobson,一些主要的OO建模技术(UML之前),Object-orie
13、nted systems analysis, by Shlaer/Mellor in 1988 OOA/OOD, by Peter Coad and Edward Yourdon in 1991 Responsibility-driven, CRC-cards by Rebecca Wirfs-Brock (in 1990) Booch Method, by Grady Booch in 1991 OMT (Object Modelling Technique), by James Rumbaugh, etc. in 1991 OOSE (Object-oriented software en
14、gineering), by Ivar Jacobson in 1992 其它还有很多,UML概述,1994年Booch和Rumbaugh在Rational Software Corporation开始了UML的工作,其目标是创建一个“统一的方法”, 1995年OOSE的创始人Jacobson加盟到这项工作中,工作重点转移到创建一种统一的建模语言UML 1996年6月、10月、1997年1月、11月分别推出了UML0.9、 UML0.91、 UML1.0、 UML1.1,UML概述,1997年11月,OMG(Object Management Group)批准把UML1.1作为基于面向对象技术
15、的标准建模语言 之后,UML进行了持续的修订和改进,先后产生了UML1.2、1.3、1.4、1.5版本 2004年推出了UML2.0,UML2.0对UML1.x作了重大的修改。,UML 1.3,June 99,UML 1.4,Sep., 2001,UML 1.5,March, 2003,UML 2.0,History of the UML,已经正式发布,Contributions to the UML,说明: 标准建模语言UML是OO领域中具有划时代意义的研究成果。 UML吸取了面向对象技术领域中其它流派的长处。 随着UML被OMG采纳为标准,面向对象领域的方法学大战(method wars)
16、也告结束。 UML得到了诸多大公司的支持,如IBM,HP,Oracle,Microsoft等。 预计:UML将成为面向对象技术领域内占主导地位的标准建模语言。,UML和程序设计语言的关系,用Java,C+ 等 programming language是用编码实现一个系统。 用UML是对一个系统建立模型。 一些CASE工具可以根据 UML所建立的系统模型来产生Java,C+ 或其它程序设计语言代码框架。,关于UML的一些认识,UML不是一个独立的SA、SD方法,而是面向对象SA、SD方法中的一个部分。 一个比喻:UML中所提供标准的图符,相当于音乐五线谱里的乐符,学会看乐符才能看得懂乐谱,才能进
17、一步创造音乐。同样,懂得UML中的图符才能进行系统分析和设计。 OOA/OOD教您活用UML的图符,以及活用时所必须遵循的原则及步骤。,贝多芬作曲时使用五线谱,您设计系统时使用UML,一个比喻,UML语言定义了五种类型,11种不同的图,把它们有机的结合起来就可以描述系统的所有视图。 用例图(Use case diagram) 从用户角度描述系统功能,并指出各功能的操作者。 静态图(Static diagram),表示系统的静态结构。包括类图、对象图、包图。 交互图(Interactive diagram), 描述对象间的交互关系。包括顺序图、协作图。 行为图(Behavior diagram)
18、,描述系统的动态模型和组成对象间的交互关系。包括状态图、活动图。 实现图( Implementation diagram ) 用于描述系统的物理实现。包括构件图、部件图。,图(Diagrams),图,在分析阶段,用户的需求用UML模型来描述。 在设计阶段,引入定义软件系统中技术细节的类(如处理用户接口、数据库、通信和并行性等问题的类)。 在实现阶段,用面向对象程序设计语言将来自设计阶段的类转换成实际的代码。 UML模型还是测试阶段的依据。 单元测试使用类图和类规格说明 集成测试使用构件图和协作图 系统测试使用用例图来验证系统的行为,UML在系统开发各阶段的应用,支持UML的工具,Rationa
19、l Rose Together Visio 其它工具,Rational Rose开发工具,Rose 是Rational公司开发的支持UML的,用于分析和设计面向对象软件系统的工具。 IBM.Rational.Suite.V2003.06.00.Multilanguage,Rational产品的安装,小结,UML是个庞大的表示法体系。本课程不可 能系统地讲授该体系,但会结合OOA/OOD 简述如何使用UML的常用表示法。 OOA/OOD要求学会使用常用的UML图(用例图、类图、顺序图等)。,面向对象方法的优势,面向对象方法有如下优势: 与人类思维方式一致 各阶段过渡平滑 可维护性高、易于重用 生
20、命力强,1、更接近人类思维方式,人认识世界从对象开始,结构化 Vs. 面向对象举例,顺应人类思维习惯,让软件开发人员在解空间中直接模拟问题空间中的对象及其行为,结构化方法: FindaReader(aReader); FindaBook(aBook ); If (Validate(aReader) Lend(aReader, aBook); SaveaLoan(); Else PrintErrorMsg(0);,在计算机中模拟现实世界的事和物,使它们具有生命,主动完成操作,面向对象方法: aReader.Find(); aBook.Find(); If(aReader.Validate() aBook.Lend(); aLoan.In
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年惠州市惠城区中小学教师招聘考试备考题库及答案详解
- 2023年中小学教师考选公共基础知识全真模拟试题及答案七
- 2026年内蒙古自治区赤峰市中小学教师招聘考试模拟试题及答案详解
- 2026年乌鲁木齐市水磨沟区街道办人员招聘笔试参考题库及答案详解
- 2026年沈阳市大东区中小学教师招聘考试参考试题及答案详解
- 2026年忻州市忻府区街道办人员招聘笔试参考题库及答案详解
- 2026年知识产权竞赛著作权赔偿题库及答案
- 2026年起重机操作证考试起重机操作证考试试题附答案
- 2026年职业卫生标准解读应用培训考试试题及答案
- 2026年社区工作者考试习题带标准答案
- 2025河南新乡市卫滨区博涵小学招聘考试参考题库附答案解析
- 义齿佩戴清洗存放课件
- 2025北京市交通发展年度报告
- 信用卡部培训大纲
- 代建公司代建管理制度
- 煤生字第665号关于颁发《煤矿矿井机电设备完好标准》的通知
- 滚针美容治疗技术解析
- 2025黑龙江七台河辰能生物质发电有限公司招聘笔试参考题库附带答案详解
- 2024-2025学年北师大版物理八年级上册月考模拟试卷(1-2章)(含答案)
- 小区保安服务 投标方案(技术方案)
- 兰州市文职辅警招聘考试真题
评论
0/150
提交评论