- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
总结主要是两部分
总 结
总结主要是两部分
1. 贯穿本课程(教科书)整体的具有普遍意义的重要原理,
编程和软件开发的重要原则
抽象,程序的复杂性控制
统一设计的意义和价值
2. 本课程涉及的主要技术内容
Scheme 语言和基本程序设计
一些具有通用性的高级技术
最后是复习和考试的一些情况说明
程序设计技术和方法 裘宗燕,2014-6-4 /1
软件的复杂性和控制
软件是人类开发的最复杂的系统
指令到整个软件/指令执行时间到软件运行时间/...
系统本身的复杂性
规模庞大
参与工作的人众多,主要靠手工和智慧,很难管理
静态描述与动态行为之间的关系,很难把握
环境和需求的动态演化带来的复杂性
复杂系统难完全理解,开发过程中新认识带来系统构造的变化
错误难以避免,修改的影响难以把握
需求不断变化,不断出现维护和提升功能的新需要
系统的良好设计,对于支持修改、变动、升级等活动至关重要
本书主要不是讨论巧妙的算法,而是讨论系统的组织和设计
程序设计技术和方法 裘宗燕,2014-6-4 /2
系统设计和抽象
控制和管理系统(程序)的复杂性,主要靠两个相关的指导思想
分解和隔离:将复杂系统分解为一些相互隔离又相互联系的部分
抽象:从每个部分看,与它有联系的各部分都是某种抽象。每个抽
象有清晰的接口,明确的功能,可以方便地使用
SICP 的基本观点:通过良好设计的抽象,实现系统中
各部分之间的良好隔离
每个部分的清晰接口
实现细节信息的隐藏
SICP 提出了三层抽象的概念(全书围绕着这几个核心概念)
过程抽象(及其实现的技术和问题)
数据抽象(及其实现的技术和问题)
语言抽象(及其实现的技术和问题)
程序设计技术和方法 裘宗燕,2014-6-4 /3
抽象
过程抽象
抽象技术:定义过程(函数)
封装:有关计算进程的实现细节
接口:过程的使用方式(参数,返回值等)
原则:一切可以定义为过程的计算片段都应该定义为过程
数据抽象
抽象技术:定义一组接口过程,或定义接收一组消息的过程
封装:对象的实现细节,对象的状态
接口:一组接口过程或者一组消息
系统的状态信息应分属于一批接口清晰的对象
o 首先设计好数据抽象的接口,隔离具体实现
o 尽可能推迟实现细节的设计决策,直至有了清晰的认识
程序设计技术和方法 裘宗燕,2014-6-4 /4
抽象
SICP 中有大量数据抽象设计的实例。设计中的活动:
遇到可能需要保存状态和信息,需要表示某种“事物”,立刻想到应
该定义一种数据抽象来表示它
设计该数据抽象的接口过程(构造,访问,变动状态的操作)
研究有关接口是否满足使用的需要,并做必要的修改
适当的时候再研究(再完成)相关的实现
语言抽象
抽象技术:定义和实现专门用于解决一类应用问题的语言
封装:某个应用领域里的典型构造和处理过程
接口:一组语言原语、构造机制和抽象机制,支持应用领域基本概
念的构造、组合和抽象,以方便具体问题的描述
原则和问题:要慎重启动,最终需要考虑和完成语言的实现
程序设计技术和方法 裘宗燕,2014-6-4 /5
统一的设计
书中许多实例显示了统一设计的美妙和威力,值得学习
在一个软件或者一个软件部件里
应该
文档评论(0)