计算机信息管理基础
教学大纲
了解计算机信息管理技术的发展及其
应用, 掌握数据库的基本原理和 SQL语言
的使用, 学习以数据库为核心, 基于网络
环境的信息系统开发的基本过程及软件工
程方法, 并通过可视化的 Delphi开发工具
的使用, 初步掌握代表当前先进开发思想
的面向对象技术, 组件技术及可视化编程
等, 为同学今后利用计算机处理信息, 以
及不断跟踪和掌握计算机应用技术打下基
础 。
课程主要内容
?计算机技术与应用的变革
?数据库技术基础 (Oracle8)
?软件开发工具与环境 (Delphi 5)
?计算机信息系统开发
教材与参考书
?计算机信息管理基础(王行言等,高教)
?数据库系统教程(施伯乐等,高教)
?Delphi …
?软件工程导论(张海藩,清华)
?数据库系统基础教程(清华)
A FIRST COURSE IN DATABASE SYSTEM
计算机工业的变革
?单主机计算
?小、中、大型机、巨型机、工作站
?个人计算机- PC
?客户机 / 服务器 (Client / Server)
?网络计算
?主机,PC机、服务器
?Internet / Intranet
单主机的历史( 45- 85)
?第一台计算机的诞生
?计算机硬件的发展
?计算机软件的发展( OS)
?计算机机型的发展
小型机微型机
小巨型
巨型机
中、大
工作站
大规模并行处理机
?自计算机问世以来,-直遵循串行运算
方式。为提高计算机速度,就要提高时
钟频率,减少每条指令执行时间 (Cray).
?随着高性能处理器的出现和价格降低,
使得 SMP (Symmetry Multi-Processor)体
系结构更具发展潜力。
?在系统设计和应用设计上找到最有效地
驱动大量处理器协同工作的方法。
微机应用
?存储个人数据、简单计算、编辑文档、
游戏 …
?PC-386出现后,已不再是个人的小玩意,
但始终未进入计算技术的主流:
?操作系统简单,可靠、安全性差。
?数据库只能为个人服务。
?处于多人协作的工程开发之外。
?直到网络技术普及,微机成为网络上的
一员它才进入了分布式 C/S计算主流。
微机 - 大型机
PC
PC
PC
PC- LAN







对 峙
Client / Server 计算环境
网络服务

PCPC PC
笔记本
Client/Server体系结构的出现是对集中计算与
分散计算的折衷。
由 Client与 Server共同承担责任,合理分工、
各尽所能,资源共享。
减小了在网络上的数据传输的负担。
由于 C/S有助于缓解矛盾、大大提高性能价格
比,系统开放,得到迅速发展。
客户机-服务器模型
客户机 服务器
网络
请求
响应
?处理多个请求
?管理连接
?执行程序,提供服务
?提供安全性
?维护完整性和并发性
?产生请求
?有效接收数据
?用户交互
?显示管理
Client / Server 计算模型
?C/S计算模型与人类生产、交流、生活中
各种群体协作活动模型天然一致:
?民航售票系统
?银行日常业务系统
?计算机网络辅助教学系统
?C/S计算模型使计算机应用从完成某种功
能软件的层次上升到系统层次上。
Client /,..
Client / Server
Client / Environment
Client / Network
Client / Cluster
Server 不必是一台Cluster分布到不同地点
计算机网络发展:
从固定的网络结构和配置
向灵活的、对某种应用最优
的网络发展
-- 虚拟网络
网络的虚拟-
系统的虚拟
计算机网络发展
?计算机诞生以来 - 人围着计算机转。
?由于 PC机和计算机网络的兴起,逐步实
现了计算机围着人转--以人为本
网络计算时代
?70年代末,网关 (Gateway)的出现使不同
的网可以在物理上连接起来。
?网络协议 (TCP / IP)使得凡遵守相同协议
的联网机器可以交谈。
从过去的因特网到 WWW
?1977-79,因特网在美国形成
?以 TCP/IP等软件技术的普遍应用为标志
?1994-96,World Wide Web风靡全球
?以 HTTP等软件技术的普遍应用为标志
?现代因特网 = World Wide Web = Web
?Web不仅提供以 超文本 为基础的各种信息,
还将过去英特网的各种应用统一在浏览器中
?Web通过计算机网络把世界联系起来,
并重新定义了共享信息的方式。
Internet与 Web技术
?Web的蓬勃发展带来了相关知识体的迅
速扩长。
?社会将可能产生一种新的职业 ; 因此学校
有可能要培养一类新的人才,webmaster
?Internet的发展有可能导致一门专业。
?普通人也需要对 Web知识有一种系统的
了解,就像要对计算机知识有所了解一样
?Web技术现已相对成熟,现已进入 IT工
业重组期。
Web技术的主要内容
?日新月异的基础设施
?蓬勃发展的网上服务
?百花争艳的软件工具
日新月异的基础设施
?各种各样的 (网络 )线路
?物理的线路, 电话线,双绞线,同轴电缆,光
纤,动力线,无线,..
?逻辑的网络, 电话网 (modem),以太网,
ISDN,ATM网
?交换和路由技术, 交换机和路由器
?终端设备, PC,NC,NetPC,WebTV,...
?网络基础软件,TCP/IP,DNS,LDAP,
DCE,...
蓬勃发展的网上服务
?上网的两方面含义, 获得服务 ; 提供服务
?获得服务感受的是 一台 资源无比丰富的计算机
?提供服务者通常总要想到至少 两台 计算机,Client/Server计
算模型
?信息服务, 静态和动态,被动和主动
?交易服务, 可靠,保密,隐私权,...
?协作服务, session管理,同步互斥,...
?计算服务, 网络就是计算机
获得服务的原理,
从一次 click 到一张,Homepage”
?浏览器用 URL查询 DNS,DNS返回 IP地址,
?浏览器用这个 IP地址建立一次 TCP/IP连接,
?浏览器通过该连接向服务器发一 HTTP请求,
?基于该请求的内容,服务器找到相应的文件,
并根据该文件的扩展名,形成一个 HTTP回
答消息,发送给浏览器, 关闭本次连接,
?根据回答消息头,浏览器按某种方式显示该
文件内容,
发布信息的方法
?使你的计算机与英特网相连 (包括 `硬连接 `
和 `软连接 `两个方面 )。
?在这台计算机上安装一份 WEB服务器软件
(httpd)。
?(在客户机 )用 HTML编写你的信息,生成一
个用,html作为扩展名的文件。
?将你的文件放到 WEB服务器软件能访问的
目录中 (亦称 `文件空间 `中 )。
?告诉别人你的 URL。
信息服务, 最为广泛的 Web应用
?静态的信息、被动的服务 -- 最基本、最
容易实现的情形
?动态信息服务 -- Web服务器要和信息获
取装置结合起来
?主动信息服务 -- 将信息 `投递给 `用户
?个性化主动信息服务 -- 家家看的 `广播节
目报 `不一样 !
交易服务,电子商务的基础
?基础信息加密技术:私钥系统,公钥系统,
效率与能力的权衡,密钥管理问题
?鉴别 (authentication):你是否是你所说
的你 (相互的 )?
?授权 (authorization),你有没有得到此
项服务的权力?
?隐私权 (privacy),我不希望别人知道我
曾得到了此项服务, - 电子钱包
?防火墙 (firewall):多层次的权限管理
协作服务
?聊天,游戏,虚拟课堂,视频会议,协作编
辑,等等,
?多媒体信息的实时传送
?GIF,JPEG,MPEG…
?协作服务器的体系结构
?显示共享,事件广播
?协作服务器的基本功能
?session管理,同步互斥,...
计算服务
?计算资源共享的方式
?数据的提交和结果的回收
?程序的提交和执行
?协作计算 (大数分解,计算 applet的下放 )
?网络就是计算机 !计算机成了网络的外
部设备 !
百花争艳的软件工具
?提供网上服务的基本软件技术
?HTML,HTTP,CGI等
?高级辅助软件技术
?Java,JavaScript,VRML,plug-in
?分布式构件技术
?CORBA,ActiveX,JavaBean
Web发展的第一阶段 - 基于文件
网络
Web浏览器
数据库
Web浏览器
Web



Home
Page
Web发展的第二阶段 - 基于数据库
网络
Web浏览器
数据库
Web浏览器
Web



Home
Page 外部程序
网络计算模式标志
?WWW网络出现
?主页文档标准化
?JAVA语言诞生
Intranet
?Internet 的贡献是向人们显示出信息共享
的可能性和现实性
?但人们既需要大的共享,也需要小的私
有。
?Intranet 诞生了
Intranet / Internet计算环境
网络
PCPC PC
笔记本
Intranet
DB
服务器
Internet



Web



网络计算
?把计算功能和负荷合理地分布到联网的
客户机和服务器上
?客户机界面是浏览器
?应用软件的内容是 HTML等编写的
客户机
应用服务器
数据库服务器
信息时代
?计算机,更快、更全--易用、适用
?计算机围着人转
?计算机能力无处不在
?计算机工具随身携带
?信息资源唾手可得
计算机应用技术的发展
?程序设计时代
?结构化程序设计时代
?软件工程时代
?组件技术,WWW技术 …
程序设计时代(单主机)
?系统软件从无到有 - 操纵系统
?计算机语言的发展 - 高级语言
?控制 (涉及端口、中断,.)-汇编语言
?系统实用程序 - Utility
?应用方式 - 编程计算 (精选好的算法、
修饰每一条语句 )。
?流程图 ( flow chart )
从无结构- >结构化程序设计
?62年美国金星探测器水手 2号卫星失败 …
?程序是什么?软件是什么?怎样保证程
序的绝对可靠?
?一场对程序本质的研究导致 goto 之争
?从理论上无法证明基于任意赋值、任意
goto的程序是正确的。
?程序测试只能证明程序有错,不能证明程
序无错。
?出路--结构化程序程序设计
结构化程序设计 (65~ 75)
?取消 goto。 只允许顺序、分支、循环三
种结构组成结构化程序。
?每一种结构只能一个入口,一个出口。
?易编程、易维护、提高了软件开发效率
和质量
?设计重于编码,分析重于设计。
?自顶向下,逐步求精。
?模块设计- DFD图 (数据在各模块间流动 )
结构化程序设计-数据
?在结构化语言中增加了类型描述机制,
即用户自定义类型,以增强数据结构设
计能力
?算法+数据结构+程序设计方法学
?基于文件保持数据很难维护、不能共享
?数据库技术
?SQL语言
解决软件危机的途径-软件工程
?鉴于手工作坊式的开发与硬件不成比例,
以及结构化的成功经验 -以工程化的方
法开发软件。
?为设计、制造软件产品,要定出规程、
规范和标准,有了规范和标准,就可以
制造用于设计、开发、管理、测试软件
的工具。
软件工程时代
?软件开发应该是一种组织良好、管理严
密、各类人员协同配合而共同完成的工
程项目。
?必须充分吸收和借鉴人类长期以来从事
各种工程项目所积累的行之有效的原理、
概念、技术和方法,特别要吸收几十年
来计算机硬件工业的发展经验。
?既要有技术措施(方法和工具),又要
有组织管理措施。
生命周期方法学-瀑布模型
需求分析
概要设计
详细设计
使用、维护
编码、测试
需求分析报告,计划书
概要设计说明书
详细设计说明书
源代码、测试报告
用户手册,维护报告
软件=
程序+文档
从时间角度对软件开发和维护的复杂问题进行分解
可行性研究
退役
可行性研究报告
计算机辅助软件工程- CASE
?软件工程 - 规范 - 每一阶段工具
?结构编辑器
?由算法描述 - >自动生成源代码
?文档自动生成工具
?工程进度管理工具
?工具箱+ OS = 开发平台
传统方法学的缺点
?软件生产率的提高不能满足用户需求
?没有很好地解决软件重用问题
?软件仍然很难维护
?软件往往不能真正满足用户需要
?开发人员不能理解用户需求,开发的软件
与用户预期的系统不一致。
?开发的系统不能适应用户需求的不断变化。
问题的原因
?僵化的瀑布模型
?某些系统需求是模糊的(特别是一些应用系统)。
?项目参加人员存在沟通问题。
?预期定义的需求就可能是过时的。
?结构化技术( SA- SD- SP) 的弱点
?围绕处理过程进行分解,不适应应用功能变化。
?把处理分解为子处理的工作带有任意性。
?把数据和操作作为分离的实体,潜在的具有可重
用价值的软件由于和具体应用环境密不可分,失
去重用价值。
软件工程新途径 -快速原型法
?用交互的、快速建立起来的原型代替形
式的、僵硬的(不可修改的)规格说明,
用户通过在计算机上实际运行和试用原
型系统向开发者提供真实的反馈信息。
?高度迭代的动态方法
开发、修改系统 运行原型系统
修改意见
快速原型法
?快速作出一个原型,让用户作出评审后
逐步扩充、完善,得到目标系统。
?开发阶段不严格评审,允许需求、设计
编码、试运行同时进行。各阶段可以反
复。
?原型法基于:
?快速开发的 CASE工具
?软件复用技术成果
?软件工程环境的集成化
快速原型法
?区分两类不同的软件系统
?需求比较稳定,可预先定义(火箭发射跟
踪系统,操作系统)。
生命周期方法学仍然适用。
?模糊的或随时间变化的系统,运行后还可
能对系统进行修改(商业、行政管理)
需要一种进行反复试探的技术-快速原型法
面向对象技术
?把数据和操作封装在一起。一个程序由
各个对象组成,程序的执行就是相互发
消息(调用)。
?面向对象的封装、抽象、继承、多态等
天然地符合软件工程所要求的软件的局
部性、概括性、易维护、可重用、易扩
充等性能。
软构件技术
?软构件技术与面向对象编程在软件重用
上有相似之处,但又是后者的发展。
?以二进制形式提供。
?符合一定的规格、标准。
?开辟了通向软件重用的广阔道路。
软件工程新技术-面向对象技术
?将人们认识问题的 `认识空间 `与计算机处
理问题的 `方法空间 `尽量一致。
?强调模拟现实世界的概念而非算法。
?在开发过程中用应用领域的概念去思考
(计算机的观点是不重要的,现实世界
的模型才是重要的)。
两种新技术的结合
?两种新技术是相互促进、相互补充的。
?例如:为快速建立原型,需要适当的软件
工具(基于面向对象的可视化编程语言)
小结
凡有助于缩小人机隔阂、有助于建立和
谐人机环境的理论、方法、技术和产品都
具有强大的生命力。
? 大规模并行计算
? 多媒体技术
? 开放系统
? 面向对象
? 网络计算