第10章-面向对象设计PPT课件
- 格式:ppt
- 大小:464.00 KB
- 文档页数:10
第10章面向对象程序设计语言当今席卷软件界的面向对象技术,近因是xerox公司1980年推出的Smalltalk-80语言。
当时,美国国防部正在推行投资五亿历时8年的Ada,试图先在军中统一再推广到全行业,使之成为软件开发的主导语言。
Ada是过程语言的新阶段,提供数据封装、数据抽象机制、并发、异常处理; 良好的易读性使Ada源代码能自成文档; 分别编译支持软件叠加和重用; 强类型增加软件的可靠性; Ada率先提出Ada程序设计支持环境APSE,把与机器相关的机制作为预定义环境(包括基本类型和输入/出机制),从而支持可移植性,能较好的满足软件工程可靠、易维护、可移植、可重用的目标。
但是,由于Ada太大(编译及环境当时的微机放不下),统得过死(廉价编译和环境推出太晚,一定要通过ACVC测试才能得到AJPO承认),且其本身反映了70年代末80年代初软件工程思想:严格管理和评审,导致软件开发周期难于缩短,费用依然居高不下。
80年代软件工程推行并不顺畅,一些民间开发小系统的制售商急于寻求新路。
Smaltalk-80带来的面对象思想为软件技术发展带来了生机。
于是,80年代中期出现了一批OO语言,几乎所有老语言都作了面向对象改造。
不仅如此,数据库、分布式协作计算、多媒体技术、软件工程工具的集成,甚至计算机硬件都采用OO技术。
OO软件开发方法学改变了传统软件开发模式。
90年代OO技术为各大公司、各种高技术软件接受,并走向工业化、规范化、主流化的途径,其影响至今尚无消减迹象。
学习面向对象语言和技术,最正宗、最有效当从Smalltalk语言开始。
我们首先接受它原有的新范型,与传统过程—模块式大不相同的软件构建思路,再去观察各种技术如何引入、结合OO技术,就会清晰得多。
本章第一、二节介绍原理和实现技术;第三节总结面向对象的基本特征及对应的代表语言;第四、五节分别介绍两个重要的面向对象语言Ada95和Eiffel.10.1 Smalltalk语言对象的思想最早源于人工智能研究,60年代末描述智能对象的帧(frame)即封装了许多槽(slot),槽既可以是属性(数据)也可以是行为(操作)和约束。
第10章例题分析与解答作者:不详来源:2006年9月4日发表评论进入社区一、填空题1.面向对象方法认为系统是由应用域的___对象___组成。
2.对象具有状态,描述对象的状态用它的_属性值_____。
3.对象的抽象是_类_____。
4.类之间有两种结构关系,它们是分类关系和__组装____关系。
5.面向对象程序设计语言与其他程序设计语言的最主要差别是它具有_继承性_____。
6.动态模型描述了系统的__动态行为____。
二、选择题1.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是( D)关系。
A.组装B.整体成员C.has aD.一般具体2.面向对象分析阶段建立的三个模型中,核心的模型是( C )模型。
A.功能B.动态C.对象D.分析3.对象模型的描述工具是( C)。
A.状态图B.数据流图C.对象图D.结构图4.在有多重继承的类层次结构中,它的类层次结构是(B )层次结构。
A.树型B.网状型C.环型D.星型5.描述类中对象的行为,反映了状态与事件关系的是( B )。
A.对象图B.状态图C.流程图D.结构图6.在确定属性时,所有( C)是候选的属性。
A.动词B.名词C.修饰性名词词组D.词组三、应用题1.建立窗口系统的对象模型。
问题陈述如下:窗口分为对话窗、图形窗、滚动窗三种;对话窗中有若干对话项,由唯一的项名字来确定,对话项分为按钮、选择项、正文项三种,选择项中有若干对话项入口;图形窗中有若干形状元素,形状元素分为一维形状和二维形状,一维形状又分为直线、圆弧、折线;二维形状分为圆、椭圆、矩形、多边形,其中多边形和折线由若干有序顶点组成,正文窗是滚动窗的一种,而图形滚动窗既是一种图形窗又是一种滚动窗。
2.在学校教学管理系统中,学生查询成绩就是系统中的一次交互,请用状态图来描述这种查询的交互行为。
答案:一、填空题1.对象2.属性值3.类4.组装5.继承性6.动态行为二、选择题1.D2.C3.C4.B5.B6.C三、应用题1.2.第10章自测题及参考答案作者:不详来源:2006年9月1日发表评论进入社区一、名词解释1.对象2.类3.属性4.操作5.消息6.消息传递7.方法8.关系9.关联10.一般具体关系 11.整体部分关系12.继承13.单重继承 14.多重继承15.多态性 16.角色17.受限关联 18.封装19.对象模型20.动态模型21.功能模型 22.事件23.状态24.事件追踪25.状态图26.动作27.活动28.处理29.数据流30.动作对象31.数据存储对象 32.重用性二、填空题1.对象具有封装性,实现了__数据与操作____的结合。
第10章面向对象分析1.用面向对象方法分析研究本书第2章第2题中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
答:(1)对象模型储蓄系统的对象模型,如图10-2所示。
图10-2储蓄系统的对象模型(2)动态模型①编写脚本a.正常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额吻合;第三,存款单生效;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,确定储户存款金额>=取款金额;第六,审核通过,取款单生效;第七,系统打印利息清单,业务员把本金和利息返回储户。
b.异常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额不符;第三,存款单作废;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,发现储户存款金额<=取款金额;第六,取款单作废。
②事件追踪图储蓄系统的事件追踪图,如图10-3所示。
图10-3储蓄系统的事件追踪图(3)功能模型储蓄系统的数据库流图,如图10-4所示。
图10-4储蓄系统的数据库流图2.用面向对象方法分析研究本书习题2第3题中描述的机票预订系统,试建立它的对象模型、动态模型和功能模型。
答:略。
3.用面向对象方法分析研究本书习题2第4题中描述的患者监护系统,试建立它的对象模型、动态模型和功能模型。
答:略。
4.下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型:自动售货机系统是一种无人售货系统。
售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。
有效的硬币是一元币、五角币、一角币、五分币、二分币和一分币。
其他货币都被认为是假币。
机器拒绝接收假币,并将其从退币孔退出。