欢迎来到天天文库
浏览记录
ID:52181521
大小:1.71 MB
页数:57页
时间:2020-04-02
《抽象数据类型.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、抽象数据类型AbstractDataTypes2021/8/24InstituteofComputerSoftwareNanjingUniversity1摘要从面向过程到面向对象如何规约对象?——抽象!AbstractdatatypeADT与软件开发2021/8/24InstituteofComputerSoftwareNanjingUniversity2回顾:结构化软件开发何谓“结构化(structured)”开发方法?TheBigName“E.W.Dijkstra”开发过程侧面自顶向下,逐步求精程序设
2、计侧面小结构:顺序,选择,循环大结构:过程抽象,避免全局变量2021/8/24InstituteofComputerSoftwareNanjingUniversity3回顾:结构化软件开发“结构化(structured)”的合理性管理复杂性的有效手段分解,抽象,层次Correctness规约与实现Extendibility?Reusability?2021/8/24InstituteofComputerSoftwareNanjingUniversity4从面向过程到面向对象“结构化”的基本思想已经深入人心
3、但对于复杂、易变、交互性软件系统,以“功能”为中心的分解方式有局限完全自顶向下的功能分解?线性过程式的程序组织?应变?2021/8/24InstituteofComputerSoftwareNanjingUniversity5Thefirststep程序运行:在某个数据体上施以某些操作。两个要素操作(功能)Functions[or:Operations,Actions]客体(对象)Objects[or:Data]2021/8/24InstituteofComputerSoftwareNanjingUniv
4、ersity6ActionObjectProcessor如何导出软件系统的结构?两条途径:从操作/功能入手从客体/对象入手形成两种抽象方法:基于过程的抽象基于数据的抽象2021/8/24InstituteofComputerSoftwareNanjingUniversity7过程抽象vs.数据抽象过程抽象:指任何一个明确定义功能的操作都可以被使用者看作单个的实体,尽管这个操作实际上可能由一系列更低级的操作完成数据抽象:定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察
5、。包含了2个概念:模块封装信息隐蔽2021/8/24InstituteofComputerSoftwareNanjingUniversity8数据抽象的意义数据抽象提供了面向对象计算的起点:系统应该被分解为概念上的实体,实体的内部细节应该被隐藏!2021/8/24InstituteofComputerSoftwareNanjingUniversity9数据抽象发展第一阶段:从无类型的二进制到基本数据类型Fortran,Algol:整型、实数、布尔数第二阶段:从基本类型到用户自定义类型Algol68,Pas
6、cal第三阶段:从用户自定义类型到抽象数据类型(AbstractDataTypes)--面向对象模块化程序设计和模块2021/8/24InstituteofComputerSoftwareNanjingUniversity10面向对象的分解好在何处?Reusability:数据(结构)及其上之操作的整体复用,而非仅仅复用操作功能;Extendibility,Continuity:对象更直接对应问题空间的概念,因而较“功能”更稳定.2021/8/24InstituteofComputerSoftwareNa
7、njingUniversity112021/8/24InstituteofComputerSoftwareNanjingUniversity现实世界问题世界软件世界Reality抽象例:考虑一个工资系统一开始,客户说他的需求很“简单明确”:2021/8/24InstituteofComputerSoftwareNanjingUniversity13EmployeeinformationHoursworkedProducePaychecksPaychecks例:考虑一个工资系统这种功能明确的系统确实适合结构
8、化的开发方法:自顶向下,逐步求精。你完美地完成了任务。而后,极有可能,客户会跑过来跟你说:给我加个统计报表撒下个月我想一些人发记时工资,一些人发计件工资啊行啊,有人每月一发,有人每周一发哦加个个人所得税系统接口再加个图像用户界面,用来交互查询吧……2021/8/24InstituteofComputerSoftwareNanjingUniversity14“面向对象的软件构造”含义(1)面向对象的软件构造(OOSC)乃是基于系
此文档下载收益归作者所有