计算机文化学习笔记5

来源:互联网 发布:算法导论pdf百度云 编辑:程序博客网 时间:2024/05/20 06:51

13 开发高效的信息系统

13.1 系统分析

制作一个计划是很重要的。计划和建立一个信息系统的过程称为系统分析和设计。系统分析方法学包括结构分析、联接应用开发(J A D)、快速应用开发和面向对象开发。

系统开发生命周期(S D L C)是一个用来帮助成功开发信息系统的框架。S D L C分为多个阶段,每个阶段又包括许多任务。大部分包括分析系统、设计新系统、构造新系统、实现新系统、维护新系统这几个阶段。

 

13.1.1 需求分析

包括选择项目小组、定义问题、研究当前系统、决定系统。

13.2 设计新系统

在设计阶段,需要评价各种解决方案、选择硬软件、开发建造系统的说明文档。

13.3 构造系统

在构造阶段,已经安装了新的硬件和软件,符合设计阶段说明文档的应用程序也已经安装好了,并且信息用也经过了测试。

13.4 实现新的系统

包括训练用户、转换数据、转换为新的系统、接受测试。

13.5 系统维护

包括每天的备份过程、检测系统性能、标识和修复问题、修改系统以符合新的需求。

13.6 使用数据流图

数据流图(D F D)是系统分析员的工具箱中最重要的工具。

13.6.1 DFD符号

外部实体是一个方形的框表示数据的外部源或目的。

数据流是一条线表示数据在信息系统中流动。数据流的箭头只是了数据流动的方向。

处理框通常是一个圆形的矩形包含有处理或过程的名字。

数据存储用一个一端开口的矩形表示。

13.6.2 解释D F D

为了理解D F D,首先要看外部实体,知道数据源的出处以及它的源头。然后,应该随着箭

头来跟踪数据流动的路径。为了知道数据是怎样处理的,需要阅读处理框上的标签。

13.6.3 精确性和完整性

在解释了D F D并且对系统有一个概貌印象之后,需要仔细考虑每一个过程。

也可以检查D F D的黑洞(black hole)和奇事(m i r a c l e)。

黑洞是一个没有输出的处理过程。只对数据作了一些操作,但没有把数据送到任何地方的过程是没有用的。

奇事是一个没有输入的过程。这是一个很合适的命名—就像神汉试图用咒语从空气中变出花一样,对于信息系统来说,处理不存在的数据是不可能的。

如果在D F D图中发现了黑洞和奇事,则它是错误的。

 

14 管理文件和数据库中的数据

14.1 文件和数据库概念

一个以统一格式组织的文件的正式称法为结构化的数据文件或者数据库文件,更一般地,也把它称为“数据文件”或称“文件”。

和数据文件的维护以及数据存储相关的任务通常称为数据管理。

14.1.1

域是有意义数据的最小单元,所以可以将它称为数据文件的基本组成模块。

域可以是可变长度或者固定长度。

固定长度的域必须包含一定数目的字符(字节),这个数目是预先决定的。

14.1.2 数据类型

输入到域中的数据依赖于域的数据类型,数据类型决定了操作数据的方式。

两种最不同的数据类型是字符和数字。数字数据类型的域指的是包含有可以进行数学加法、除法和乘法等等操作的数字。字符数据类型域,也称为字符串数据类型域,包含有那些不需要进行数学操作的数据。

有一些文件和数据库管理系统提供附加的数据类型,如日期、逻辑和存储类型。

14.1.3 记录

实体是人、地方、物品或事件等用来存储的对象。记录包括关于实体的域。

数据文件中固定长度域包含有固定长度的记录。计算记录的长度是很重要的,因为它能决定需要的存储空间。

14.1.4 记录出现和记录类型

记录的结构称为记录类型。一旦将数据输入到记录中,则称为记录出现。记录中域的个数和名字依赖于记录中包含的数据。

14.1.5 普通文件

普通文件有时指的是所有记录都具有相同记录格式的数据文件,也就是说,相同的域名、域长度和数据类型。也可以说一个普通文件是一个单独的记录类型。

14.1.6 数据库

将数据库定义为:将许多不同的记录类型当作一个单个的单元。

和普通文件相比,尽管数据库更加灵活,但是数据库的设计和维护要更加困难。在确实需要数据管理的商业和组织机构中,数据库管理员通常管理着数据库的设计、开发、测试和维护。

14.2 数据模型

数据模型用来描述数据库中数据存储的方式。一个有效的数据模型是很重要的,这样可以

用一个能有效地为商业或组织机构提供信息的方式来输入、定位和操作数据。

14.2.1 实体关系

数据模型允许描述实体之间的关系,并且在创建数据库结构时把这些定义作为记录类型之间的关系。

数据图表可用来显示对应关系,即两个记录类型之间存在的对应关系。有三种可能的对应关系:一对一、一对多和多对多。

14.2.2 层次数据库模型

最简单的数据库模型将记录类型排列成层次结构。在层次数据库中,父记录类型可以和

一个或多个子记录类型相连接,但是子记录类型只能有一个父记录类型。记录之间的关系通

过创建存储记录之间的物理链接来建立。

对于数据之间关系简单并且数据访问可以预测时,层次数据库是很高效的。对于有复杂关系,或者需要动态访问数据(因为关系的物理链接是在数据库创建时定义的)时,层次数据库的效率并不高。

14.2.3 网络数据库模型

从许多方面来说,网络数据库和层次模型很类似,但是它允许附加的关系类型。网络模型是一个一对多关系的物理链接记录的集合。和层次数据库相比,网络数据库提供更大的灵活性,它允许成员记录有多余一个的拥有者。然而在集合中,不允许多对多的关系。这样,网络模型不允许定义真实世界中的一些数据关系。

14.2.4 关系数据库模型

对于关系数据库的用户来说,它就像一个表的集合,也就是记录类型的集合。现在的微机数据库大多使用关系数据库模型,因为它为定义关系提供更大的灵活性。

关系数据库定义关系的策略和层次或网络模型有根本性的不同。在关系模型中,记录通过两个文件的记录之间数据的联接来建立关系。

14.2.5 面向对象数据库模型

使用面向对象数据库提供了定义复杂数据关系的能力。。同时也提供了灵活创建各种记录类型的能力。

14.3 文件和数据库软件

文件和数据库软件可以帮助你创建一个有效的层次、网络、关系或者面向对象的数据集合。

14.3.1 用户软件

使用程序语言和特殊设计的数据库组件来建造用户软件,这种组合方式具有最大的灵活性和最小的开发时间。

14.3.2 文件管理软件

文件管理软件能适合不同的文件称为数据独立性。数据独立性指的是数据和操作数据的程序相分离。因为文件管理软件并没有绑定在数据文件上,所以它促进了数据独立性。

文件管理软件并不是数据文件的一部分,可以称它是数据的扩展。文件管理软件只能创建和操作普通文件,每次只能打开一个文件,并且不允许指定实体之间的关系。

14.3.3 数据库管理系统

数据库管理系统(D B M S)是一个可以帮助管理多个文件的数据的应用软件。D B M S和文件管理系统执行相同的功能,但是在D B M S中通过在记录类型之间定义关系来同时操作多个文件。

D B M S通常提供一种方法来创建用户化的程序,来执行需要频繁使用的任务。

也可能用程序语言来创建一个数据库管理系统。然而,因为D B M S相当复杂,大部分的用户选择了购买一个商业的D B M S包。数据库管理系统的价格是值得投资的,特别是当组织机构的数据库有很多记录类型时,更是如此。

14.3.4 面向对象工具

要建造一个面向对象数据库,需要使用面向对象管理系统(O O D B M S)或者可以用来定义操作对象和定义方法的编程语言,如S m a l l t a l k等。

14.3.5 支持We b的数据库工具

支持We b的数据库允许通过因特网用标准的We b浏览器来访问数据库。

要和基于We b的数据库交互,必须将请求从浏览器送到数据库,然后将结果送回浏览器。

C G I(公共网关接口)的程序能满足这个要求。

14.4 文件和数据库管理的任务

14.4.1 设计文件结构

第一步决定需要收集和存储哪些数据。换句话说,必须决定应该包含哪些域。

在设计过程中的下一步是决定怎样将这些信息组织到域中去,使得更加灵活。

接下来,必须决定每个域的数据类型。

在选择数据类型之后,可以决定每个域的格式和有效范围。

在数据库设计中需要考虑的下一个问题是怎样将域组合成组。

14.4.2 输入记录

对于数据输入来说,一致是很重要的,因为它会影响到搜索的效率。

注意大小写的敏感性。(并不是所有的数据管理环境都是大小写敏感的,必须阅读文档来决定哪些数据管理环境是大小写敏感的。)

14.4.3 查找

可以输入称为查询的搜索规范,计算机可以很快定位到需要寻找的记录。

14.4.4 更新信息

包括单个信息的改变和全局更新。

14.4.5 组织记录

当信息以信息使用的方式存储时,信息的使用将会更方便。

有两种方法来组织文件中的记录:可以将他们进行排序或者进行索引。

14.4.6 产生报表

数据库报表是一些或所有数据库中数据的格式化输出。

数据库管理环境中可以提供设计报表能力的部分称为报表产生器。

14.5 在查询中使用布尔逻辑

数学家乔治·布尔定义了一种称为二进制代数的逻辑系统。

14.5.1 集合论

A N D、 N O T和O R

14.5.2 布尔查询

大多数流行的查询语言,如S Q L,使用命令字、表达式、相关操作符和布尔操作符来表达查询。

 

15章计算机程序设计

15.1 软件工程

软件工程是指软件的开发、运作、维护和最终消亡的整个系统过程。

15.1.1 计算机程序

给计算机编写程序需要缜密的思考与斟酌。

写程序要比写信难得多,但软件开发过程中有一些原则可以帮你理出一些头绪。计算机程序设计首先从问题的描述开始,它是算法的基础,而算法则是程序的基础。

15.1.2 问题描述

一个表达清晰的问题描述应该具备以下三个特征:

• 能说明描述问题范畴的任何假设。

• 罗列出已知的所有条件。

• 具体说明需要解决什么问题。

15.1.3 算法设计

算法就是解决问题的步骤。算法是一个抽象的思想,但它是可表达的且是可执行的。

15.1.4 算法表达

有几种方法表达一个算法:结构化英语、伪代码、流程图和对象定义。这些工具不是程序设计语言,它们不能直接被计算机执行。使用它们的目的就是把你的思想用文字表述出来。

15.2 编写计算机程序

对于大部分程序设计语言来说,编程就是输入命令;还有一部分语言只需你选择对象和属性或编写对象的脚本即可。

15.2.1 程序顺序

一般有三种控制结构:顺序控制、选择控制和循环控制。

15.3 调试和文档

编制程序时,你必须对其进行测试代码的每一段来确定其可以正确地工作。这一过程称为调试( d e b u g g i n g )。

15.3.1 测试程序

测试经常包括输入测试数据来看看程序是否能够产生正确结果。如果程序没有产生正确结果,程序员必须查找程序中的错误、修改错误、再测试程序。

15.3.2 程序文档

程序文档解释了程序的工作过程及使用方法。

程序文档有两种形式:插入到程序代码中的注释和专门制作的文档。

15.4 编程语言的特点

15.4.1 过程性语言

带有过程性特征的语言称为过程性语言。

过程性的编程语言适合于那些顺序执行的算法。

15.4.2 说明性语言

说明性语言只需程序员具体说明问题的规则并定义一些条件即可。语言自身内置了方法把这些规则解释为一些解决问题的步骤,这就把编程的重心转移到描述问题和其规则上。用说明性语言编写程序只需你告诉计算机要做什么,而不需告诉它如何去做。

说明性的语言更适合于思想概念清晰但数学概念复杂的编程工作。

15.4.3 脚本语言

脚本语言以脚本的形式定义一项任务。脚本需要一个主机应用系统依附来运行,不能单机运行。

脚本语言使用起来比其他编程语言要简单,但它提供的控制选项很少。

15.4.4 低级语言

低级编程语言需要程序员为计算机系统低层的硬件编写指令,像处理器、寄存器和内存地址等。

低级语言对程序员直接在硬件水平上操作机器很有用。

低级语言中的指令一般和处理器的指令相对应。

15.4.5 高级语言

高级语言程序必须翻译成计算机能够执行的指令,因此需要编译。

15.4.6 编译语言

用高级语言写的程序称为源代码,编译后的程序称为目标代码。

调试程序需要三步:写程序、编译程序和运行程序,一旦发现程序有错,必须修改你的程序并重新编译,然后才能再测试。如果你编译了没有错误的程序,再运行时就不用编译了。

15.4.7 解释语言

解释语言用解释器而不是用编译器来生成可执行代码。

调试用解释语言写的程序,不用编译,因此调试程序花的时间似乎要少一些。

15.4.8 面向对象语言

面向对象的程序设计语言是建立在用对象编程的方法基础之上的。对象是一种现有的非常明显的良好编程思想。同一对象可用在不同的程序中,这无形中就扩大了程序员的生产率。

15.4.9 事件驱动语言

程序事件是指程序必须做出响应的动作或表现,比如按键和点击鼠标。程序员用事件驱动语言编程可以使程序随时检测并响应事件。

15.4.10 构件

实际中,面向对象程序中的对象是由程序设计者生成的。但程序员可以购买一些称为构件或库的对象。构件是事先写好的对象,程序员可以应用到自己的程序中。对于目前流行的编程语言,构件可以买到。使用构件编程就称为构件程序设计。

15.5 选择编程语言

B A S I C是一种过程性的高级语言,它的大多数版本都是解释执行的语言,但也有一些是编译执行的。B A S I C早期的版本对于开发复杂的商用程序非常有限,但一些新版本,像微软的Vi s u a l B a s i c ( V B )就是综合性的且功能强大的编程语言,适合于专业编程项目,尤其适于带有图形界面的事件驱动程序设计。

C O B O L是发展于6 0年代的一种语言,适合于大型计算机系统上的事务处理。C O B O L是编译执行的过程性高级语言,主要被一些专业程序员用来开发和维护大型商业集团的复杂程序。

C O B O L程序往往很长但容易读懂、调试和维护。这种特性对于大型商业组织机构尤其重要,因为许多重要的程序必须由不同的程序员维护和修改。

F O RT R A N是目前仍在使用的最早的高级语言。F O RT R A N一般被科学家用来写大型机和小型机上的科学计算程序和工程程序。

P a s c a l开发于1 9 7 1年,用于帮助学生学习计算机编程。P a s c a l是编译执行的过程性高级语言。它开了结构化程序设计的先河,但P a s c a l很少用于专业编程和商用软件的开发。

C是编译执行的过程性高级语言并带有低级语言的接口,这种特性给程序员带来很大的灵活性,利用这种灵活性,有经验的程序员可以使他们的程序速度快、效率高,但也使C程序难于理解、难于调试和维护。

C + +是支持面向对象的C语言。许多人认为C + +的面向对象特性可以提高程序员的效率,但面向对象的程序设计的思维方式与过程性设计迥然不同,因此,刚刚使用C ++编程的程序员往往困难重重。

L I S P和P r o l o g是说明性高级语言,一般用于开发专家系统。它们相对于过程性的语言并没有很流行,这或许是因为早期的计算机应用程序一般是处理一些需要简单重复运算的任务,这正是过程性语言所擅长的。那些需要对字符数据进行复杂的逻辑处理的任务则适于用说明性语言来实现。

S Q L是为数据库的定义和操作开发的一种标准语言。S Q L是说明性的高级语言,只需程序员和用户对数据库中数据元素之间的关系和欲读取信息的类型予以描述。虽然数据库也可用C O B O L等过程性的语言操作,但S Q L语句由于更适应数据库操作而效率更高。

J a v a和J + +是以C + +为基础的但更适于网络应用的面向对象的高级语言。J a v a和J + +尤其适于生成网页上栩栩如生的图画和称为a p p l e t的J a v a应用程序,其中包含用户定制的像按钮、复选框和文字输入框之类的网页控件。当浏览器和附有J a v a和J + +程序的网页连接时,计算机就会下载这段程序并执行。既然程序是在你的计算机上而非网络服务器上运行,在输入和接受响应时就避免了传输时间。

J a v a和J + +有一个很大的不同之处。J a v a是一种独立于平台的语言,这就意味着J a v a程序不但能在微机上运行而且可运行在M a c i n t o s h 和 U N I X 机上。J + +提供给程序员的工具要求 W i n d o w s的支持。使用这些工具可以编出更快、更高效的应用程序,但它只能运行在Wi n d o w s操作系统的机器上。

J a v a S c r i p t属于脚本语言,只是J a v a的一个子集。J a v a S c r i p t 的主要用途就是交互地生成网页。

8 0 8 6汇编语言是一种低级语言,由一些容易记忆的短语组成,计算机易于将它们转化成其他语言。8 0 8 6汇编语言指令集只适用于Intel 8086微处理器,用它编写的程序只能运行在装有x 8 6系列微处理器的计算机上,现在8 0 8 6汇编语言主要用在那些程序尽可能短的或速度要求很高的场合。专业的程序员把8 0 8 6汇编语言嵌入应用程序使其执行速度快,而编写系统软件是为了控制计算机硬件。

原创粉丝点击