计算机二级公共基础知识(全)(7)

2019-08-03 11:49

己完成一段编码更重要。

由于协调上出了漏洞,可能导致很大的问题,所以项目负责人必须随时监控各开发人员的工作,包括内容是否与要求发生偏差,进度是否滞后等等。同时必须给每个开发人员明确的任务书。具体开发时每个开发人员必须非常明确自己的任务,这些任务应该采用明确的文档来表示。每个开发人员需要清楚自己所做的工作在整个系统中处于什么地位,这样就有可能会发现设计模型中的漏洞,避免了各人的代码编写完毕之后又要修改的后果。

九、我国软件工程发展的现状

很多国内搞计算机的专家都认为:国内的软件研发过程,个人色彩比较浓。过分地依靠个人无法形成产业规模,而没有规模就谈不上产业化了。

不管怎么样,我们大家还是先要来看一看国内软件厂商到底提供给我们多少有震撼力的软件产品,从技术和利润的角度讲,软件系统最核心的部分还是操作系统、编译系统然后就是开发平台之类的东西,接下来就是一些应用系统,比如图形开发、游戏开发、企业应用、网站建设、杀毒、网络工具等等。

操作系统以中科院为中心,做了一个COSIX,这个本质上是一个UNIX系统,UNIX最初的源代码是公开的,尽管COSIX是一个被称为中国的操作系统并是UNIX系列的(IX就代表UNIX系列),但是其中到底有多少独创的技术成分我们暂时还不知道,但有一点可以肯定,它现在的市场覆盖率绝对不大,而且能否在上面运行各种各样的编译系统、数据库、群件和应用系统可能还需要进一步测试。然后就是对硬件平台的支持也需要进一步完善。

然后就是轰轰烈烈的Linux系统,Linux是遵守GNU标准的操作系统,中国有很多家公司推出了自己的Linux并且还有汉化的Linux,这就有比较疑惑的一点,为什么不在Linux上构架一个类似UNICODE这样的东西,而只做汉化这么本地化的产品呢?不知道是眼光还是市场的问题了。

MIS系统、财务软件是中国软件行业的重头戏,它们彻底的暴露了中国软件开发无序和重复低效劳动的一面。教育软件在某一种层面上看就是电子题库,当然也有优点,比如加入了多媒体教学(可视化程度不错)和所谓寓教于乐的特点,但是从本质上说还是题库。杀毒软件据说是中国软件的骄傲,由中国权威机构评测是达到了世界领先水平,但是好象还没有得到国际权威机构的认可。游戏软件就不用提了,国内业界能够流行的游戏软件成功的秘诀众所周知,不是技术和创意,实在是归功于我们悠久的历史。字处理软件和排版软件客观的说国内的也做的不错,但是从系统的扩展性和体系结构上说和MS和Adobe相比,差距也放在那里。其实这种现状的原因很简单,一个是我们缺少创新的能力,另一个就是我们欠缺软件工程的概念,系统开发前期的需求分析、设计没有做好或者做的不够好。

当然,我们很少怀疑自己的技术能力,我们很多时候认为这是地理环境和经济环境的原因造成了中国软件业现在的局面。当然中国软件开发人员绝对可以算是优秀的,但是想想我们软件行业龙头企业到底有多少有技术创新和专利技术呢?姑且不论这个,实际上把一个操作系统分解开来,比如文件系统、进程管理和调度、IO调度等等,也许我们可以实现其中某一块的内容,但是如何把它们合理的整合起来绝对是一个涉及到软件工程的问题。

作为一个开发人员,我们已经习惯了自己那一套编程模式,而且我们的这种习惯也不自觉的影响着新的开发人员。所以在头脑中建立一个软件工程的作用,从某种角度上讲,要比会几种开发语言、几个编程技巧实在是重要的多。

举一个例子来说,我们也许可以写MFC中的几个类或者是用自己的类扩展MFC,但是我们又有几个人真正去认真分析和考虑MFC架构的设计和原理呢?扪心自问,我们又有多少人能够设计出MFC这样的框架系统呢?下面就我们的题目谈一些相关的话题。

十、我有一个梦

毋庸质疑的是,计算机的发展和人类的历史相比甚至和其他很多科技产品相比都是非常短的,从第一台计算机的研制成功到现在也没有百年的历史,但是计算机及其相关技术的发展却绝对可以说是最快的。抛开硬件的发展(硬件的发展基本上是按照摩尔定律来的,每18个月,机器的速度性能都要提高一倍),单从软件的发展来说,从体系结构来讲,我们经历了从主机结构到文件服务器结构,从客户服务器系统到基于Internet的服务器浏览器结构的体系结构的变化。从编码的角度来讲,我们经历了从最开始的机器代码到汇编代码,从高级程序语言到人工智能语言,从专用的程序设计语言到通用的程序设计语言。从开发工具来讲,我们经历了从分离的开发工具(有代码编辑器,中间代码生成器和连接器)到集成的开发系统,从最简单的单行命令式调试器到方便灵活的多功能的调试器。

但是,今天所有的软件厂商和软件开发人员依然会想起当年的黑人人权运动领袖马丁?路德?金曾经说过的一句名言我有一个梦想。是的,所有的开发人员依然怀着梦想,希望能够有一个万能的系统开发的框架和方法,只要我们沿着这个框架,我们将能开发出适合所有领域的应用系统,于是,我们在念书的时候把这个希望投到了一门课上,这么课就是软件工程。但是当我们在学完这门课的时候,我们依然没有找到这么一个框架甚至连接近这么一个框架的东西也没有碰到。

不管我们认为软件工程可能是多么的虚无,但是所有学工科并且有逻辑头脑的人都坚信理论对实践的指导意义,因为有了爱因斯坦及其许多伟大的科学家关于能量和质量方面的理论以后,我们才造出了原子弹。但是,遗憾的是软件工程并不是一个具体的理论,它更象一门抽象的科学。软件工程是一种方法论,而不是一种具体的摸的着,看的见的产品。它告诉我们在设计一个系统的时候,我们需要进行可行性研究、计划制订、需求分析、系统设计、编码、测试、维护等等。并且对这些过程中应该做什么提出了一个指导性的东西。但是没有任何专家和标准委员会保证只要按照这些标准,我们的系统肯定会顺利完成。而且事实上,软件开发针对的领域是如此之多并不没有一种对所有领域适用的万能框架。

不管认为软件工程已经到了非常成熟的阶段还是认为软件工程依然是一个搞不懂的黑箱子,软件工程确实已经经历了三个不同的阶段。第一个阶段是软件结构化生产阶段,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。从80年代中期,软件生产开始进入以过程为中心的第二阶段,以提出过程成熟模型CMM、个体软件过程PSP和群组软件过程TSP为标志。第三个阶段就是以软件过程、面向对象和构件重用三把斧头出现的软件工业化生产阶段。

言归正传,我们还是回到我们的文章标题上来,我们在开发的时候是兵马未动、粮草先行还是摸着石子过河。兵马未动、粮草先行当然意味着我们在开发的时候先不忙着编写

代码做程序,我们先要制订一个关于开发的方法。这点就象元数据(metadata)的概念,元数据并不定义数据,它是对数据的说明,也就是通常所说的关于数据的数据。我们设计的时候也是这样,定义开发的标准,如何进行开发、怎样开发。摸着石子过河就意味着我们先不管什么理论,方法,科学的问题,我们先动手做起来,如果做的也算成功的话,那就可以按照这种模式来,实际上,在任何事情的最初,我们都是这样。从辨证唯物主义者的观点来说,就是从实践中来,然后升华到理论,再用理论来指导实践。记得一个笑话说:外国人搞软件工程是在一个黑屋子里面抓黑猫,不过到现在还是没有抓住,而中国人是在一个黑屋子里面,而里面连猫都没有,然后有人说,我已经抓到猫了。这个笑话一方面是说明直到现在,软件工程还是一个在继续探索、发展的过程,另一个侧面也说明中国搞软件工程摸不着边的局面。

实际上,不管有没有软件工程,不管是否存在一个万能的框架系统,我们的应用系统还是要做,各种各样的软件还是要开发。说到底,软件系统是因为有需求才存在的。有了应用域才有了软件存在的意义。很多时候,我们可以看到国外有各种各样的软件和创新,而我们没有,我们更多的是模仿和一些重复的功能相近的软件的原因就是因为我们没有这方面的需求,这也正解释了为什么ERP系统能在国外开展的很好,而在国内失败多于成功的原因。一方面当然是因为我们的企业按照市场经济发展的时间还不长,另一方面是我们的企业确实也没有这方面的需求。

十一、软件工程的发展方向

“敏捷开发”(Agile Development)被认为是软件工程的一个重要的发展。它强调软件开发应当是能够对未来可能出现的变化和不确定性作出全面反应的。

敏捷开发被认为是一种“轻量级”的方法。在轻量级方法中最负盛名的应该是“极限编程”(Extreme Programming,简称为XP)。而与轻量级方法相对应的是“重量级方法”的存在。重量级方法强调以开发过程为中心,而不是以人为中心。重量级方法的例子比如CMM/PSP/TSP。

.1 数据库系统的基本概念

数据:实际上就是描述事物的符号记录。

数据的特点:有一定的结构,有型与值之分,如整型、实型、字符型等。而数据的值给出了符合定型的值,如整型值15。

数据库:是数据的集合,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序共享。

数据库存放数据是按数据所提供的数据模式存放的,具有集成与共享的特点。

数据库管理系统:一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库的核心。

数据库管理系统功能:

(1)数据模式定义:即为数据库构建其数据框架; (2)数据存取的物理构建:为数据模式的物理存取与构建提供有效的存取方法与手段; (3)数据操纵:为用户使用数据库的数据提供方便,如查询、插入、修改、删除等以及简单的算术运算及统计;

(4)数据的完整性、安生性定义与检查;

(5)数据库的并发控制与故障恢复;

(6)数据的服务:如拷贝、转存、重组、性能监测、分析等。 为完成以上六个功能,数据库管理系统提供以下的数据语言:

(1)数据定义语言:负责数据的模式定义与数据的物理存取构建; (2)数据操纵语言:负责数据的操纵,如查询与增、删、改等;

(3)数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。

数据语言按其使用方式具有两种结构形式:交互式命令(又称自含型或自主型语言)宿主型语言(一般可嵌入某些宿主语言中)。

数据库管理员:对数据库进行规划、设计、维护、监视等的专业管理人员。 数据库系统:由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。

数据库应用系统:由数据库系统、应用软件及应用界面三者组成。

文件系统阶段:提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的、管理和数据共享的能力。

层次数据库与网状数据库系统阶段 :为统一与共享数据提供了有力支撑。 关系数据库系统阶段 数据库系统的基本特点:数据的集成性 、数据的高共享性与低冗余性 、数据独立性(物理独立性与逻辑独立性)、数据统一管理与控制。

数据库系统的三级模式:

(1)概念模式:数据库系统中全局数据逻辑结构的描述,全体用户公共数据视图; (2)外模式:也称子模式与用户模式。是用户的数据视图,也就是用户所见到的数据模式;

(3)内模式:又称物理模式,它给出了数据库物理存储结构与物理存取方法。 数据库系统的两级映射:

(1)概念模式到内模式的映射; (2)外模式到概念模式的映射。 4.2 数据模型

数据模型的概念:是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。

E-R模型的基本概念

(1)实体:现实世界中的事物; (2)属性:事物的特性;

(3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。

E-R模型三个基本概念之间的联接关系:实体是概念世界中的基本单位,属性有属性域,每个实体可取属性域内的值。一个实体的所有属性值叫元组。

E-R模型的图示法:(1)实体集表示法; (2)属性表法; (3)联系表示法。 层次模型的基本结构是树形结构,具有以下特点: (1)每棵树有且仅有一个无双亲结点,称为根; (2)树中除根外所有结点有且仅有一个双亲。

从图论上看,网状模型是一个不加任何条件限制的无向图。

关系模型采用二维表来表示,简称表,由表框架及表的元组组成。一个二维表就是一个

关系。

在二维表中凡能唯一标识元组的最小属性称为键或码。从所有侯选健中选取一个作为用户使用的键称主键。表A中的某属性是某表B的键,则称该属性集为A的外键或外码。

关系中的数据约束:

(1)实体完整性约束:约束关系的主键中属性值不能为空值; (2)参照完全性约束:是关系之间的基本约束;

(3)用户定义的完整性约束:它反映了具体应用中数据的语义要求。 4.3关系代数

关系数据库系统的特点之一是它建立在数据理论的基础之上,有很多数据理论可以表示关系模型的数据操作,其中最为著名的是关系代数与关系演算。

关系模型的基本运算:

(1)插入 (2)删除 (3)修改 (4)查询(包括投影、选择、笛卡尔积运算) 4.4 数据库设计与管理

数据库设计是数据应用的核心。 数据库设计的两种方法:

(1)面向数据:以信息需求为主,兼顾处理需求; (2)面向过程:以处理需求为主,兼顾信息需求。

数据库的生命周期:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。

需求分析常用结构析方法和面向对象的方法。结构化分析(简称SA)方法用自顶向下、逐层分解的方式分析系统。用数据流图表达数据和处理过程的关系。对数据库设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。

数据字典是各类数据描述的集合,包括5个部分:数据项、数据结构、数据流(可以是数据项,也可以是数据结构)、数据存储、处理过程。

数据库概念设计的目的是分析数据内在语义关系。设计的方法有两种 (1)集中式模式设计法(适用于小型或并不复杂的单位或部门); (2)视图集成设计法。

设计方法:E-R模型与视图集成。

视图设计一般有三种设计次序:自顶向下、由底向上、由内向外。 视图集成的几种冲突:命名冲突、概念冲突、域冲突、约束冲突。 关系视图设计:关系视图的设计又称外模式设计。 关系视图的主要作用:

(1)提供数据逻辑独立性;

(2)能适应用户对数据的不同需求; (3)有一定数据保密功能。

数据库的物理设计主要目标是对数据内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度有效利用存储空间。一般RDBMS中留给用户参与物理设计的内容大致有索引设计、集成簇设计和分区设计。

数据库管理的内容: (1)数据库的建立; (2)数据库的调整; (3)数据库的重组;

(4)数据库安全性与完整性控制;

(5)数据库的故障恢复; (6)数据库监控。


计算机二级公共基础知识(全)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:8.糖尿病(做好)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: