资源描述
,下一页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,LZQCEEC,第,*,页,上一页,停止放映,计算机软件基础,The software basic of computer,主讲:刘志强,西安交通大学,计算机教学实验中心,第,1,单元,软件概述,第,2,页,思考(,1,),学生学什么?学生要学会做人,学会做事,学会学习,学会思考。这也是教师教的主题。,古今往来,东方西方,教育的成功都在于培养学生为国、为民、为社会而努力进取。受教育的过程是人格完善的过程。一方面需要学生能正确的把握自己,追求智力、体力、道德、品质及个性的充分、自由、和谐的发展。发展自己以发展社会,在社会发展中发展自己。,第,3,页,对未来的一些预想 :,全球变革的进程进一步加速。,大学将全球化。在校时间是可以协商的,甚至不需要在校学习。,虚拟现实、多媒体、仿真将会为教育改进做出贡献。,工作岗位专业化的进程将继续。,由自己控制进度的学习将更为普遍。,知识和技术的有效期将会缩短。,思考(,2,),第,4,页,构建主义哲学的启示 :,含义不能传递,学习是对已有概念的重新调整的过程。,理解是各种复杂因素,如:学习者的目标、原有概念、学习经验、学习环境等相互作用的结果。,困惑推动学习。“困惑”即不满足原有的认识,对已有的概念结构构成的挑战。,社会交流是推动知识演进的主要动力。,学习需要与大量的认知活动相联系。,思考(,3,),第,5,页,一些基本原则:,“学以致用”:讲究实用并包含一些实际经验,以便学生在以后的工作中少走弯路。,“夯实基础”:计算机科学尚未成熟,正处于不断发展的过程中,各种新技术、新理论、新概念层出不穷,只有比较扎实的基础才能应付变化。让学生在校时打下比较扎实的基础是极为重要的。,“全面、清晰、主次分明”:软件基础内容庞杂,必须细心选择知识点,细心编排知识点。,(,下载源码就到源码网,:,),思考(,4,),第,6,页,一些考虑(,1,),1,)教材与教学不完全一致。教材注重系统全面,而教学采用概括型,以应用开发实例作为驱动,覆盖不到之处让学生自学。教师可以根据专业需要作必要的剪裁。从“以教为主”到“教与自学相结合”,并逐步过渡到“以学为主”。“以学为主”更需要系统全面的参考教材,“宽编窄用”。,2,)内容必须求精、求新。不能迁就我国目前的发育不全的软件市场,追求“学以致用”。,3,)篇幅不能过大。内容叙述强调整体性,着重原理和关键机制,代码细节能省就省(它们最占篇幅)。这样虽有“不够明晰”之嫌,却能给教师留下一定的余地。,第,7,页,一些考虑(,2,),4,)知识点为核心:知识点的选择力求精、概念力求全面、原理力求透彻。,5,)困惑推动式学习:让学生通过大量的实例、作业加深理解、增强实际技能。,6,)贯穿全书的“大作业”:通过一个不断出现、但意义和内涵不一样的“大作业”把全书的主要知识点串联起来:在开始是一个以文件系统为基础的学籍管理,在学习数据库之后是基于数据库系统的学籍管理系统;在最后的,Internet,部分,是一个基于,Web,的应用系统。,第,8,页,一些考虑(,3,),7,)增加工程管理的内容并把它们看作为公共知识:软件工程、程序设计方法、软件工程过程管理、,CMM,等。,8,)增加网络方面的知识(包括硬件方面、软件方面):并作为新的公共知识:网络基本原理、网络协议、组网、,WWW,、,HTML,、,ASP,、,JAVA,等并简要讲述网络应用开发。,9,)对于传统的知识点,如:操作系统、数据库等,在讲清楚原理的基础上,着重实用,并尽量引进新的知识点。如在操作系统部分,讲述了,Windows NT,,,Window95/98,,,Linux,;数据库部分讲述了,ODBC,、,C/S,架构、三层架构等。,B,.,第,10,页,教育改革,要从人才培养的大局、素质教育、创新教育的高度上进行教育改革。,适应未来知识经济时代的需要,国际对文盲又下了一个新的定义:不会主动寻求新知识或不会把学到的知识应用于实践的人就是文盲。学会的知识必须应用于实践,在实践中创新和发展。北大校长许智宏要求学生对社会问题有洞察力,深入到社会中去了解社会问题。耶鲁大学莱温校长要求学生不断地参加各种各样的社会活动,学校把未来的领导人的培养贯串在学校的很多工作中,美国的最近六位总统中的四位是耶鲁的学生。,第,11,页,从一些现象说起,2001,年,3,月,28,日,中国经济时报,有文章称:“中国的国民素质、科学技术和国际竞争力这几年在世界的排名连续下滑,与高等教育质量严重下滑有关。一项调查表明,当前高等教育让学生负担沉重而又学不到什么东西,课程设置存在较大问题,本科教育中的选修课普遍不受重视,师资队伍教学经验不足,造成这种现象的主要原因是学校普遍存在浮躁心态,热衷轰动效应;行政干预过多,限制高校创新;教师队伍中出现断层。”,第,12,页,华裔诺贝尔奖得主对中国教育的看法:,丁肇中在台湾挑选学生,结果空手而归,他认为中国学生应试能力很强,动手能力很弱。,杨振宁对中西教育在培养学生方面作了比较,朱棣文认为,中国的教育是,copy,式教育。,第,13,页,传统教育和创新教育,传统教育注重的是继承人类创造的文明成果,人们通过教育接受前人的成果,受教育者是被动的知识接受者,而不是主动探索者。,创新教育需要教育观念上的真正超越。创新教育是培养从未知到新知,而不是灌输已知。知识经济以创新为灵魂,同样,适应新经济的素质教育也必须以创新为突破口。,第,14,页,奥林匹克竞赛与诺贝尔奖,国际奥赛,无论题出得多难,多灵活,都是在已有知识范围内,用已有解题方法来解已有正确答案的题。对付这种竞赛的教育方法是题海战术、大量做题,以便熟悉各种题型的解法并储存进大脑。因此记忆能力是一个成功因素,模式化的解题技能训练是成功的保障,这与重记忆训练、重技能训练的传统教育是相吻合的。这也是我国学生获得奥赛好成绩的原因。然而,诺贝尔奖需要在科学上做出重大发现,是在未知领域内解决未知的难题,做出突破性的创造发明。,第,15,页,美国的老师说,有人问美国的老师:你们怎么不让学生背记一些重要的东西呢?,老师说:对人的创造能力来说,有两个东西比死记硬背更重要;一个是他要知道到哪里去寻找他所需要的比他能够记忆的多得多的知识;再一个是他综合使用这些知识进行新的创造的能力。,第,16,页,教学内容的改革,首先,在全球性的经济中,竞争将造成全球性劳动市场,再也没有一份职业是稳定的,一业定终身的时代消失了。但是,人们不可能也没有必要因此去掌握所有的知识,以适应这种变化。其次,计算机发展迅速,教学内容和课程设置必须不断地吐故纳新,实践平台必须跟踪发展。或许因此可以规定,一本教材使用三、五年必须更新。,尽管如此,用昨天的知识教今天的学生做明天的事,依然是教育的一个不争事实,不可能在,2001,年教,Windows 2005,,而且即使如此,那么,2010,、,2015,呢?根本的出路在于学生必须学会学习,学会自己拓展知识,这也是终身教育的根本。,第,17,页,以学生为本,促进个性发展,传统教育过于强调统一性,甚至怕提个性,把个性和个人主义划等号。没有个性,哪来创新!,学生是学习的主体,是矛盾的主要方面,教学应该以学生为主。但长期以来可以说是以知识为本、专业为本、教师为本。教师采用填鸭式、灌注式的教学方法,学生则上课记笔记、下课背笔记、考试考笔记、考后扔笔记的被迫学习方式。,第,18,页,现代人才的指标,现代管理学对人才的测定要求有,128,项指标,卷面考试只能占其中的,47,项,还有,81,项如毅力、反应力、合作性、创造性、研究、组织管理、社会活动能力等是些非知识性的指标。传统教学只能培养出“知识库”型的书呆子。,第,19,页,教学改革,要培养学生自主学习的能力,教师不要都讲,学生不能少想,引导学生去思考、去闯、去感受知识的产生和发展过程,让学生具备自主拓展知识的能力,帮助学生从必然王国向自由王国飞跃。压缩课内学时,留出足够的自主学习、自主实践的空间。素质是指不知不觉表现出来的内化于人身心的品质,有人戏称,走出校门时还记得的是素质,这有一定的道理。究竟哪些是要内化于学生身心的,需要依托于那些教学和实践去教化、示范、养成,这不会很多,值得推敲、研究。,第,20,页,软件基础,教学大纲,一、课程的目的和任务,二、课程基本要求,三、课程基本内容,四、实验内容,五、时间分配,六、考试方法,第,21,页,一、课程的目的和任务,软件基础,是非电类专业的一门技术基础课,涉及计算机操作系统、数据结构、数据库技术和软件工程四门课程的经典内容,通过该课程的学习,使学生掌握开发应用软件所必需的软件基础知识,为今后结合本专业开发应用,软件打下必要的基础。,第,22,页,二、课程基本要求,了解计算机软件的基本概念,理解有关的常用技术术语。,了解程序设计中常用的数据结构及相应算法,初步掌握对不同类型的问题求解选择适当的数据结构。,了解应用软件开发的最基本的环境;掌握操作系统的基本概念和基本功能,了解计算机系统硬、软件资源如何控制管理。,了解如何以近代软件工程的观点开发应用软件的基本概念和方法。,了解数据库的基本概念,初步掌握数据库系统的开发方法。,第,23,页,三、课程基本内容,1,、数据结构,2,、操作系统原理,3,、数据库系统原理,4,、软件工程,第,24,页,1,、 数据结构,数据结构是计算机的专业技术基础课。它研究的主要问题有:, 分析数据(计算机加工的对象)的特征, 选择适当逻辑存储结构和物理存储结构, 在存储结构的基础上实现对数据的操作,第,25,页,2,、 操作系统原理,是研究计算机工作原理的一门学科:,研究的主要问题:, 提高系统资源的利用率, 更有效地组织、协调、管理计算机内部的工作流程, 为用户提供更友好、便捷的操作界面,第,26,页,3,、数据库系统原理,是一门综合性软件技术课。它研究的主要问题是:, 描述数据记录(用数据描述语言), 实现对数据记录的管理操作, 实现对数据库的应用管理,第,27,页,4,、软件工程,是一门交叉学科;它包括计算机科学、数学、工程学和管理等学科。主要研究:, 克服、解决“软件危机”, 改进“软件生产”的方法、工具, 提高软件的生产率,第,28,页,四、实验内容,本课程实验内容提要:,1,、操作系统及应用;,Windows,(,98,),的操作。,2,、数据结构程序设计;用,C,语言实现“二,叉树链表”的操作。,3,、数据库系统及应用;用,ACCESS,实现,“学生成绩”数据库的操作。,第,29,页,五、时间分配(一),1,、课时分配:,36,学时,2,、机时分配:,12,学时,课程名称,分配学时,操作系统,数据结构,数据库系统,软件工程,实验名称 分配机时,操作系统及应用,2,数据结构程序设计,4,数据库及应用,4,软件工程作业,2,8,14,6,8,第,30,页,时间分配(二),课时分配:,48,学时,课程名称,分配学时,操作系统,数据结构,数据库系统,软件工程,10,20,8,10,第,31,页,单元课程分配,数据结构:,第,1,第,7,单元(,14,学时),操作系统:,第,8,第,11,单元(,8,学时),数据库系统:,第,12,第,14,单元(,6,学时),软件工程:,第,1518,单元(,8,学时),第,32,页,六、说明,1,、考核方法,期末笔试。,2,、教材,计算机软件技术基础,人民邮电出版社,3,、参考书,面向对象的理论与,C+,实践,清华大学出版社,软件工程导论,清华大学出版社,ACCESS2000,实用教程,清华大学出版社,数据结构,OO,方法与,C+,描述,清华大学出版社,计算机文化基础,交大出版社,第,33,页,软件(,Software,),随着信息化、网络化和数字化时代的到来,社会对“,软件”,的需求激增。如今,世界发达国家都把,软件,列为国家发展的关键技术领域。,美国国家关键技术委员会将软件列为六大关键技术之一;,欧洲共同体将“软件和信息处理”列为关键技术;,我国把信息产业放在优先发展的地位,看作是中国发展高新技术、赶超世界先进水平的一次千载难逢的机遇。,第,34,页,软件的基本概念,什么是软件?,计算机系统由计算机硬件和软件构成。,计算机神奇的功能是在软件的“指挥”下创造出来的。,软件是各种程序和有关资料的总称。,程序是:,为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合,是人们求解问题的逻辑思维活动的代码化描述,程序的最重要的目的是:,便于阅读、交流,第,35,页,软件的特征,软件是逻辑产品,软件产品质量的体现方式不同,软件产品的失败曲线不同,软件产品的成本构成不同,软件产品不存在同类零件替换,软件产品的静态和动态属性,下一页,第,36,页,软件是逻辑产品,软件产品是:,具有产值、价格、质量和功能的特性,看不见,是逻辑的、无形的,是脑力劳动的结晶,第,37,页,软件产品质量体现方式不同,质量体现方式不同:,实用、可靠、可操作性;,可维护性强,方便用户,不会折旧、损坏、老化,第,38,页,软、硬件失败曲线,下一页,第,39,页,软、硬件比例示意图,12%,需求率,4%,生产率,开发人员,成本构成不同: 主要投资在研制;软件研制是一种人力、资金密集,的产业,而软件生产只是简单的复制、安装和培训。,第,40,页,软件产品不存在同类零件替换,当硬件产品中某个部件损坏后,可以用相同的备用部件更换,使硬件系统恢复正常工作。,而软件产品却没有相同的备用部件可言,因为软件出现的每一个故障,要么是由于设计考虑不周造成的,要么是编程错误造成的。,由于软件无备用部件可供更换,因而软件维护比硬件维护要复杂得多,成本也高得多。,第,41,页,软件产品的静态和动态属性,软件是由程序和相关文档资料组成的。,程序是具有双重属性的:,它是求解客观问题的逻辑描述,是供阅读和交流的,它的表示是静态的;,程序最终是通过运行去执行特定的操作和数据处理,它又具有极其复杂和丰富内涵的动态属性。,程序的双重属性决定判别程序是否正确也要有双重标准:,静态的程序正确与否是检查它的语法和句法是否符合规则要求;,动态的程序正确与否则要动态的测试程序的所有逻辑流结构和数据结构是否正确。,而后一种测试的难度和代价较之前一种要大得多。,第,42,页,软件分类,软件按不同方式可以划分为不同的类型:,按功能划分,按规模划分,第,43,页,按功能划分软件分类,软件,系统软件,应用软件,操作系统,网络系统,语言编译器,工具软件,管理软件,实时软件,科学计算、数据处理,嵌入式软件,人工智能软件,专用领域软件,第,44,页,系统软件,是支持计算机系统正常运行并实现用户操作的那部分软件。,一般是在计算机系统购买时随机携带的,也可以根据需要另行安装。,系统软件的主要特征是:,与硬件有很强的交互性,能对资源共享进行调度管理,能解决并发操作处理中存在的协调问题,其中的数据结构复杂,外部接口多样化,便于用户反复使用,第,45,页,应用软件,应用软件是为满足用户不同领域、不同问题的应用需求而提供的那部分软件。,它可以拓宽计算机系统的应用领域,放大硬件的功能。,应用软件具有无限丰富和美好的开发前景。,第,46,页,按规模划分软件分类,分类 程序规模 模块数 开发时间 开发人数,极小,500,行以下,1020 14,周,1,人,小,1K2K,行,2550 16,月,1,人,中,5K50K,行,2501000 12,年,25,人,大,50K100K,行,1000,以上,23,年,520,人,甚大,1M,行,45,年,1001000,人,极大,1M10M,行,510,年,20005000,第,47,页,软件的发展,软件伴随计算机技术的发展经历了三个阶段:,程序设计阶段,软件设计阶段,软件工程阶段,第,48,页,程序设计阶段,程序设计阶段(,1946,年,1955,年),特点:,尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小、工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料,主要是用于科学计算,第,49,页,软件设计阶段,软件设计阶段(,1956,年,1970,年),特点:,硬件环境相对稳定,出现,“,软件作坊,”,的开发组织形式,开始使用产品软件(可购买),从而建立了软件的概念,系统规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确分工,社会对软件的需求量剧增,但是软件开发技术没有重大突破,生产效率低下,从而导致,“,软件危机,”,产生。,第,50,页,软件工程阶段,软件工程阶段(,1970,年,至今),由于软件危机的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件生产进入软件工程时代。,特点:,硬件已向,“,四化,”,(巨型、微型、网络、智能)发展,数据库技术已成熟并广泛应用,第三、四代语言出现。,第一代软件技术,结构化程序设计在数值计算领域取得优异成绩;,第二代软件技术,软件测试技术、方法、原理用于软件生产过程;,第三代软件技术,处理需求定义技术,用于软件需求分析和描述。,第,51,页,软件危机,硬件生产率大幅提高,软件规模越来越大,软件生产率很低,硬、软件供需失衡,矛盾引发“软件危机”,第,52,页,硬件生产率大幅提高,如今,计算机的发展已进入一个新的历史阶段;,硬件产品已系列化、标准化,,“,即插即用,”,。,硬件产品的生产可以采用最高精尖的现代化工具和手段、自动成批生产。生产效率几百万倍的提高。,生产能力过剩。,第,53,页,软件生产随规模增大、复杂度增大,以美国宇航局的软件系统为例:,1963,年 水星计划系统,200,万条指令,1967,年 双子星座计划系统,400,万条指令,1973,年 阿波罗计划系统,1000,万条指令,1979,年 哥伦比亚航天飞机系统,4000,万条指令,假设,1,个人一年生产一万条有效指令,那么是否,4000,人生产一年,或,400,人生产,10,年就能完成任务呢?答案是否定的。一万条指令的复杂度决不仅仅是,100,条指令复杂度的,100,倍。,第,54,页,软件生产率很低,伴随计算机的普及,整个社会对计算机应用的需求越来越大。,但软件的生产却还沿用,“,手工作坊,”,的生产方式,人工编程生产。生产效率仅提高了几倍。,生产能力极其低下。,返 回,第,55,页,硬、软件供需失衡,社会大量需求,生产成本高,生产过程控制复杂,生产效率低等等因素构成软件生产的恶性循环。,由此产生“软件危机”。,返 回,第,56,页,矛盾引发“软件危,机”,软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。,为了研究、解决软件危机,诞生了一门新兴学科,软件工程学。它把软件作为工程对象,从技术措施和组织管理两个方面来研究、解决软件危机。,第,57,页,软件危机的具体体现,(,1,)软件开发进度难以预测,(,2,)软件开发成本难以控制,(,3,)用户对软件功能难以满足,(,4,)软件产品质量无法保证,(,5,)软件产品难以维护,(,6,)软件通常缺少适当的文档资料,第,58,页,(,1,)软件开发进度难以预测,拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。,以丹佛新国际机场为例,该机场规模是曼哈顿机场的两倍,宽为希思机场的,10,倍,可以全天侯同时起降三架喷气式客机;,投资,1.93,亿美元建立了一个地下行李传送系统,总长,21,英里,有,4,,,000,台遥控车,可按不同线路在,20,家不同的航空公司柜台、登机门和行李领取处之间发送和传递行李;,支持该系统的是,5,,,000,个电子眼、,400,台无线电接受机、,56,台条形码扫描仪和,100,台计算机,按原定计划要在,1993,年万圣节前启用,但一直到,1994,年,6,月,机场的计划者还无法预测行李系统何时能达到可使机场开放的稳定程度。,第,59,页,(,2,)软件开发成本难以控制,投资一再追加,令人难于置信。往往是实际成本比预算成本高出一个数量级。,而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。,第,60,页,(,3,)用户对产品功能难以满足,开发人员和用户之间很难沟通、矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。,在双方互不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这种“闭门造车”的开发方式必然导致最终的产品不符合用户的实际需要。,第,61,页,(,4,)软件产品质量无法保证,系统中的错误难以消除。软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。,软件产品并不是没有错误,而是盲目检测很难发现错误,而隐藏下来的错误往往是造成重大事故的隐患。,第,62,页,(,5,)软件产品难以维护,软件产品本质上是开发人员的代码化的逻辑思维活动,他人难以替代。除非是开发者本人,否则很难及时检测、排除系统故障。,为使系统适应新的硬件环境,或根据用户的需要在原系统中增加一些新的功能,又有可能增加系统中的错误。,第,63,页,(,6,)软件缺少适当的文档资料,文档资料是软件必不可少的重要组成部分。,实际上,软件的文档资料是开发组织和用户的之间权利和义务的合同书,是系统管理者、总体设计者向开发人员下达的任务书,是系统维护人员的技术指导手册,是用户的操作说明书。,缺乏必要的文档资料或者文档资料不合格,将给软件开发和维护带来许多严重的困难和问题。,第,64,页,软件生产随规模增大,1963,年 水星计划系统,200,万条指令,1967,年 双子星座计划系统,400,万条指令,1973,年 阿波罗计划系统,1000,万条指令,1979,年 哥伦比亚航天飞机系统,4000,万条指令,第,65,页,最典型失败系统的例子,IBM,公司开发,OS/360,系统,共有,4000,多个模块,约,100,万条指令,投入,5000,人年,耗资数亿美元,结果还是延期交付。在交付使用后的系统中仍发现大量(,2000,个以上)的错误。,第,66,页,软件危机产生的原因,产生软件危机有两个方面的原因:,与软件本身的特点有关;是内在因素、客观的存在,只能因势利导加以解决。,与软件开发和维护的技术方法有关;是外在因素,可以完善、提高。,第,67,页,软件特点的因素,软件是逻辑产品,是代码化了的人的思维活动。在总体构思时,别人无法管理和干预。在写出程序、并在机器上运行之前,进展情况难以掌握,开发质量也无法评估。这些都给管理和控制带来不便。,软件是特定问题在计算机上的运行描述。实际问题的复杂性决定了一个实用软件系统规模往往十分庞大。大有大的难处。程序规模越大,控制、管理难度也就越大。,第,68,页,软件开发维护技术方法的因素,开发人员和用户之间的矛盾。许多软件系统开发失败的主要原因是开发人员在没有准确、完整地了解了用户的需求后就急于编程;用户对需求也往往不能准确、完整地提出(有用户对计算机知识了解程度、对计算机处理能力的认识等因素)。,软件产品有其生命周期。在周期的各个阶段有其具体的任务,如何完成任务,各个阶段有不同的技术方法和操作步骤。只有科学的按生命周期各阶段的任务去组织实施,才能保证质量,降低成本;急于求成,不按科学规律、方法实施,只能,“,事倍功半,”,,事与愿违。,软件产品的使用寿命很长。在这期间因功能的增加、硬件的更新换代,都要对软件进行必要的修改。据统计数据表明,软件维护的费用占总费用的,55%70%,。软件工程的一个重要目标就是提高软件的可维护性,减少软件维护的代价。,第,69,页,解决软件危机的途径,为了解决软件危机就要从技术措施和组织管理两个方面去研究,不断总结经验教训,提高软件产品的生产效率,降低软件开发和维护的成本。,开发软件选用最好的开发工具是至关重要的,即选择、设置良好的软件工程支撑环境。工具选用的好,它可以,“,放大,”,人的智力,大大加快软件开发速度,提高软件质量。,第,70,页,结束语,欢迎参加,软件基础,的网上讨论园区,计算机教学实验中心的网址是:,HTTP,:,/CTEC . xjtu . edu . cn,数字化课件的路径,:,jec253user2toolslzq,软件基础,数字化作业提交路径:,Jec251userdataroomhomework,班级编号,谢谢,再见!,
展开阅读全文