面向对象分析、设计与编程
更新时间:2023-07-19 03:18:01 阅读量: 实用文档 文档下载
第8卷第6期
光学精密工程
Vol 8 No 6Dec 2000
2000年 2月
OP I S NDPRE ISIONENGINEERING
文章编号
004-924X(2000D06-0566-04
面向对象分析 设计与编程
张殿文 卢振武
(中国科学院长春光学精密机械与物理研究所应用光学国家重点实验室 吉林长春
002 D
摘要 在软件工程中 作为软件开发的一种实用而有效的途径 面向对象方法 由于具有很多独特的优点 已逐步得到软件开发人员的广泛应用 本文从软件工程的角度 通过对面向对象方法的基本组成部分 面向对象分析 面向对象设计和面向对象编程的分别研究与论述 并结合典型的面向对象编程语言 的程序设计方法 系统地阐述了面向对象程序设计方法的一般步骤和基本方法 同时 本文
对 语言的三大重要特征 对象 多态性和继承做了分析和介绍 从而构建了用 语言编程的基本框架 面向对象的方法是一种新的编程方法 它因具有许多优点而具有旺盛的生命力的同时 尚有许多问题有待解决 才能更进一步的得到普及和应用 关
词 面向对象语言 面向对象分析 面向对象设计 面向对象编程 语言中图分类号 文献标识码 5P
键
领域中的一门新兴的学科 计算机软件工程学
引
言
90年代 面向对象模式日趋成熟 已成为软件开
发的一种实用而有效的途径 面向对象方法包括面向对象分析 面向对象设计和面向对象编程 面向对象编程方法作为一种独立的需求分析方法或者其他分析方法的补充 目前正逐步得到发展
从世界上出现第一台计算机到60年代中期是计算机系统发展的中期 在这个时期 以计算机为基础的系统是采用面向硬件的管理技术进行开发的 工程管理者将主要精力集中在硬件上 因为硬件是系统开发预算中份额最大的一部分 为了降低硬件成本 管理者建立了规范 统一的控制和工艺标准 以在开发产品之前进行细致的分析和设计 也可以说 人们是建立和使用硬件工程的一套控制方法和工具 硬件工程发展至今 过去计算机主机的功能已可由一个单片集成电路来实现 计算机硬件这种巨大的处理和存储能力充分展示出计算机硬件发展的辉煌成就 以致目前计算机系统开发人员的主要工作就是如何利用和挖掘这个潜力 这正是软件开发所要完成的任务 但是计算机系统发展早期所形成的一些错误观念和做法 已严重地阻碍了计算机软件的开发 以致所开发的许多大型软件几乎根本无法维护 只好提前报废 损失惨重 一些工业发达国家的计算机科学家把软件开发和维护过程中遇到的一系列严重问题统称为软件危机
60年代后期 科学家开始认真研究解决软件危机的方法 从而逐步形成了计算机科学技术
收稿日期 2000-04- 8 修订日期 2000-05-08
2
对象和对象类
首先应识别出对象 先检查问题陈述或者对
欲建立的系统的过程叙述进行语法分析H 在每
个名词或名词短语下面画上下划线 将它们填进一个简单的表里 就可以确定对象 对象的表现可归类以下形式之一
D外部实体(如其它系统 设备 人D 2D事件
D角色
4D组织单位(如管理者 工程师等D
5D结构
用它们定义了一类对象或定义对象的相关类
属性是对对象的描述 实际上是属性定义了对象 阐明在问题空间的上下文中对象的含义 要开发出对象的一组有意义的属性 分析者可
设计与编程
再次研究问题的过程叙述9选择那些合理地属于对象的东西0另外9对于每个对象都应该回答下列问题{在目前问题的上下文中哪些数据项充分地定义了这一对象0
一个操作以某种方式改变一个对象9它改变了对象包含的一个或更多的属性值0从分析模型的对象中提取出一组操作的首选办法是{分析者应再次分析语法9隔离出动作9作为相关对象的操作0
块化0
4
面向对象设计
对象的设计描述可以采用以下一种形式{协议描述 定义对象可以接收的每一个消
息以及对象接收到消息后执行的相关操作9从而建立一个对象的接口0
实现描述 说明由传递给对象的消息指出对象之间必须建立一种通信机制9这种机制叫做消息9对象间的通信可描述为{要求一个对象执行其某个操作9就要向它发送一条消息9告诉对象做什么0作为接收者的对象响应消息的过程为{首先选择符合消息要求的操作9执行该操作9然后将控制返回给调用者0
面向对象分析
Oad和YOUIdO1提出面向对象分析的方法包括五个步骤{1)标识对象;Z)标识主题;3)定义属性和实例联系;4)定义操作和消息联系0
每个对象还必须用一种基于文本的格式描述9建议采用下面的对象规格说明{
1)对象名;Z)属性描述{a~属性名;b~属性内容;
c~属性数据类型/结构;3)对象的外部输入;4)对象的对外输出;5)操作描述{a~操作名;
b~操作接口描述;c~操作过程描述;d~执行结果;
e~约束条件和权限值;6)实例联系;
7)消息联系(或消息路径)0
面向对象分析方法使分析者能够靠说明类~对象~属性和操作这些主要建模成分来分为单个问题建模9而面向对象设计则生成对真实世界的问题域的表示并将之映射到解域9也即软件0与其它设计方法不同的是9面向对象设计所进行的是一种将数据对象(数据项)和处理操作联结起来的设计9它把信息和处理模块化9而不仅仅把处理模
的每一操作的实现细节0这些实现细节包括私有部分有关的信息9即关于数据结构的内部细节及描述操作的过程细节0
面向对象设计方法有如下典型步骤{
1)定义问题;
Z)为真实世界问题域的软件实现生成非形式化策略(过程叙述);
3)按下列步骤将策略形式化{i~指出对象及其属性;
ii~指出可能适用于对象的操作;
iii~说明对象及操作间的关系9建立接口;iv~确定将为对象提供实现描述的详细设计问题0
4)重复步骤Z)~3)0
以上四个步骤都是在软件需求分析过程中实现的9将这些活动扩展到设计阶段9应增加以下步骤{
5)细化面向对象分析阶段所做的工作9找出子类9消息特性和其它详尽的细节;
6)表示与每一操作关联的过程细节0
BOOch为面向对象设计提出了一种表示法9该表示法由四种图组成0类图用于描绘类与类间的关系0图1表示一个类图9继承用一个箭头符号表示9双连线说明一个类用到了另一个类中包含的信息9双连线末端的符号表示基数0每个类可用一张表来定义
670
光学精密工程
8卷
面向对象设计用图4所示的过程图来说明定义系统硬件结构的处理器(带阴影的区域D 设备(空白区域D和联系(直线DO
5
面向对象编程与 ++
所有面向对象编程语言有三个公共部分;对
Fig.2
Objectmap
图2所示的对象图用于表示具体的对象(类
的实例D和对象间传递的消息O对象间的连线终止于一个标识的方块 这个标识指出了消息内包含的数据的类型O与连线平行的箭头说明了对象间的同步类型(如同步.异步.超时DO为每一对象创建一张对象表 用于定义对象及传递给对象的消息
O
Fig.3Module
map
Fig.4Processmap
模块图就是用来描绘这些程序构件的O模块图把程序构件(对象D表示为一个盒子 分为说明部分(外界可见的D和私有部分(对外界隐藏的DO图3说明了如何用模块图表示程序构件间的依赖
关系O连接箭头表示依赖性 即箭尾所在的包或构件依赖于箭头所指的包或构件O
象.多态性和继承O
1D对象
面向对象语言的最重要特性是对象O对象是一个逻辑实体 它含有数据及处理该数据的代码O在一个对象中 有些代码和数据可能是私有于该对象的 且不得由该对象外的任意成份存取O
2D多态性
多态性是指 u一个接口 多重方法, 即一个名字可用于几个相关但稍有不同的目的O实际上 多态性是允许一个接口对应于多个动作 所选特定动作由数据类型确定O
3D继承
通过继承 对象可得到另一类的特性(数据和函数DO
++作为面向对象语言体现了面向对象方法的几个重要特征 下面分别加以说明;
@类
类是一种把相关数据段与在此数据段上操作的函数封装在一起的方法O它允许设计人员根据需要隐藏数据和函数O
在 ++中 类说明的一般格式为; lass类名{
私有数据和函数;
public;
公有数据和函数;
}对象名表;
类可以将其成员隐藏起来 限制外部函数对它的访问 函数只能通过公有成员间接地访问私有数据 这就是封装O
@函数重载
++获取多态性的一种方法是使用函数重载O在 ++中 两个以上的函数可共享同一个名字 只要其参数说明不同O在这种情况下 共享同名的函数可以以各种相应的不同形式使用O
继承
++中 继承是通过允许一个类将另一个类合并到其说明中而得到支持的O继承允许建立类的层次结构 从最一般类到最专用类O这样可以
6期张殿文9等2面向对象分析~设计与编程
571
从旧的类型中派生出用户定义的新类型并在需要的地方做些修改O它促进了简单代码的重复使用O2 自然性与共享性S 并发性S
重用性S
总之9面向对象方法是一种新方法9它具有很多优点9但是还要解决许多问题才能更广泛地使用O
面向对象方法的主要特点
1 模块化9信息隐藏与抽象S参考文献2
[1][2]
.EckelBruce.C++InSide80ut[M].Seattle2McgraW-~ill9199
张海藩.软件工程导论[M].北京2清华大学出版社91992.
Objectorientedanalysis9designandprogramming
Z~ANgDian-Wen9LUZhen-Wu
(TheStateKeyLa}.ofapp zedoptzcS9Changch/nlnStzt/teofoptzcS9
OO219Chzna FzneMechanzcSandPhySzcS9ChzneSeacademyofSczenceS9Changch/n1
Abstract2InSOftWareengineering9ObjectOrientedprOgrammingmethOd9aSaSOrtOfpracticalandef-fectiVeapprOachOfSOftWareexplOiting9haSalreadybeenuSedWidelybySOftWareexplOitingperSOn-nel9SinceithaSalOtOfunigueVirtue.ThiSarticleStudieSanddiScuSSeSreSpectiVelythebaSiccOm-pOSingpOrtiOnOfObjectOrientedprOgrammingmethOd9includingObjectOrientedanalySiS(00A 9Ob-jectOrienteddeSign(00D andObjectOrientedprOgram(00P 9WiththepOintOfVieWOfSOftWareengineering9andSyStematicallySetSfOrththecurrentprOceSSandbaSicmethOdOfOrientedObjectprO-grammingmethOd.C++9thetypicalObjectOrientedprOgramminglanguage9iSuSedaSanexamplehere.ByintrOducingandanalyzingtheimpOrtantfeatureSOfC++language9theclaSS9thepOlymOr-phiSmandtheinheritance9thebaSicframeOftheC++prOgramminglanguageiSSetOut.ButithaSaSerieSOfprOblemSthatneedSettlingup9SOithaSn tgOtthemOStpOpularpracticeuntiltheprOblemSareSOlVed.
KeyWords2ObjectOrientedlanguageSObjectOrientedanalySiSSObjectOrienteddeSignSObjectOriented
prOgrammingSC++language
作者简介2张殿文(1976- 9男9吉林省敦化市人9长春光学精密机械与物理研究所应用光学国家重点实验室硕士研究生9从事二元光学激光直写9CCD相机设备的研究与实验O
面向对象分析、设计与编程
作者:作者单位:刊名:英文刊名:年,卷(期):被引用次数:
张殿文, 卢振武
中国科学院长春光学精密机械与物理研究所应用光学国家重点实验室,吉林,长春,130021
光学精密工程
OPTICS AND PRECISION ENGINEERING2000,8(6)5次
1.张海藩 软件工程导论 19922.Eckel Bruce C++Inside &Out 1994
1.陈飞.陈启安 面向对象的嵌入式系统开发技术[期刊论文]-单片机与嵌入式系统应用 2005(9)2.彭泽杰 泛型编程与设计模式在EMG中的应用[学位论文]硕士 2005
3.唐国元.宾鸿赞 面向对象技术在车辆动力学仿真中的应用[期刊论文]-光学精密工程 2004(1)
4.魏彪.冯鹏.唐波.潘英俊.米德伶.先武 X光工业用CT成像二代扫描运动控制系统设计[期刊论文]-光学精密工程 2003(6)
5.代红 新产品概念设计流程再造的实践和理论研究[学位论文]硕士 2003
本文链接:/Periodical_gxjmgc200006015.aspx
正在阅读:
面向对象分析、设计与编程07-19
塑钢门窗施工组织设计(方案)07-10
美丽南宁&183;清洁乡村&183;美丽校园”活动计划08-12
党支部书记履行党建工作责任述职报告(精)11-06
四年级 乘法分配律练习题分类 -09-25
初中写景作文600字03-12
ISBP745中英文版翻译03-21
一年级英语Unit6单元备课资料12-03
第十章 安全目标、安全保证体措施03-10
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 面向
- 对象
- 编程
- 分析
- 设计
- 幼儿教育学基础知识点
- 改变定位,改写传奇--定位与商业模式成功案例赏析
- 自适应滤波器MATLAB仿真
- 高二数学下期期末考试题(选修2-2_选修2-3_)3
- 办公室在机关务虚会上的发言摘要
- 【显示器】故障维修实例
- 高二语文试题参考答案及评分标准 (2)
- 用“更相减损术”求最大公因式
- 初二学生心理特点及对策
- 人力资源管理第一次作业答案
- 钢规和国内钢规2015修改通报(培训用)
- 画室暑期社会实践报告
- 制程能力与制程指数
- 人教版六年级语文毕业检测试卷
- 如何用Excel进行数据处理
- 终极机电课程设计07116117 叶行
- 八年级语文列夫托尔斯泰2
- 实验三 等高线绘制
- 人教版九年级思想品德5.2弘扬和培育民族精神教学设计
- 用低温送风技术解决辐射供冷结露问题的研究