数据库系统概论习题求解
1.在软件生存周期中,时间最长的阶段是( )D.维护 2.以下最适合于面向对象的软件开发的软件生存周期模型是( )D.喷泉模型 3.以下几种模块内聚类型中,内聚性最低的是( ) B.逻辑内聚4.数据流图中的每个加工至少有( )D.一个输入流和一个输出流 5.结构化软件设计是( )C.面向数据流的6.瀑布模型本质是一种( )B.线性顺序模型 1、什么是软件工程?它的目标和内容是什么?6软件工程就是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。
软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
软件工程内容:研究内容包括开发技术和开发管理两个方面。
开发技术主要研究:软件开发方法,开发过程,开发工具和环境。
开发管理主要研究:软件管理学,软件经济学,软件心理学。
2在划分软件生存周期阶段时,应遵循的基本原则是什么? 软件生存周期的各个阶段有不同的划分。
软件规模、种类、开发方式、开发环境以及开发使用方法都影响软件生存周期的划分。
在划分软件生存周期阶段时,应遵循的一条基本原则是各阶段的任务应尽可能相对独立,同一阶段各项目任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件项目开发的组织管理。
3 可行性研究的任务是什么?可行研究的任务:首先需要进行概要的分析研究,初步确定项目的规模,目标,约束和限制。
分析员再进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型。
从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的解决方法,对每种解决方法都要研究它的可行性。
主要从三个方面考虑:⑴.技术可行性:一般要考虑的情况包括 开发的风险即设计出的系统能否达到要求的功能和性能;资源的有效性;相关技术的发展是否支持;⑵.经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资。
⑶.社会可行性:要开发的项目是否存在任何侵权问题,运行方式在用户组织内是否可行,现有管理制度、人员素质、操作方式是否可行。
4、什么是数据字典?其作用是什么?它有哪些条目?数据字典(简称DD)是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
他和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。
数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。
数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。
数据项是组成数据流和数据存储的最小元素。
源点、终点不在系统之内,故一般不在字典中说明。
5 什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?模块的影响范围:受该模块内的一个判定影响的所有模块的集合。
模块的控制范围:模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。
一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近6. 什么是软件危机? 在软件工程概念出现之前,软件的开发主要依赖于开发人员的个人技能,没有可以遵循的开发方法指导,开发过程也缺乏有效的管理。
20世纪60年代初出现了“软件”一词,引起人们对文档的重视,但尚未形成文档的规范。
随着计算机在各个领域的广泛应用,软件的需求量越来越大,软件的复杂度也越来越高,导致软件的开发远远满足不了社会发展的需要,超出预算的经费、超过预期的交付时间的事情经常发生。
由于缺乏文档以及没有好的开发方法指导,使得大量已有的软件难以维护。
到20世纪60年代中期出现了人们难以控制的局面,即“软件危机”落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
鉴于软件危机的长期性和症状不明显的特征,近年来有人建议把软件危机更名为“软件萧(depression)”或“软件困扰(affliction)”。
不过“软件危机”这个词强调了问题的严重性,而且也已为绝大多数软件工作者所熟悉,所以本书仍将沿用它。
7 软件质量保证应做好哪几方面的工作?380 软件质量保证工作是软件工程管理的重要内容,软件质量保证应做好以下几个方面的工作:采用技术手段和工具。
质量保证活动要贯彻开发过程始终,必须从采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。
组织正式技术评审,在软件开发的第一个阶段结束时,都要组织正式的技术评审。
国家标准要...
...正确的是.A.用软件语言编写的程序都可直接在计算机上执行B.“软件...
正确答案:cA错,程序要经过编译生成计算机可识别的语言(如机器语言)才可以执行.B错,软件危机的出现主要是由于软件的规模越来越大,复杂度不增加,而软件需求量也不断增加,生产作坊式的软件开发模式已经不能满足软件开发的需求.D错,50年代后期就已经有操作系统了
电脑软件的发展史?
第一代软件(1946-1953) 第一代软件是用机器语言编写的,机器语言是内置在计算机电路中的指令,由0和1组成。
例如计算2+6在某种计算机上的机器语言指令如下:10110000 0000011000000100 0000001010100010 01010000 第一条指令表示将“6”送到寄存器AL中,第二条指令表示将“2”与寄存器AL中的内容相加,结果仍在寄存器AL中,第三条指令表示将AL中的内容送到地址为5的单元中。
不同的计算机使用不同的机器语言,程序员必须记住每条及其语言指令的二进制数字组合,因此,只有少数专业人员能够为计算机编写程序,这就大大限制了计算机的推广和使用。
用机器语言进行程序设计不仅枯燥费时,而且容易出错。
想一想如何在一页全是0和1的纸上找一个打错的字符! 在这个时代的末期出现了汇编语言,它使用助记符(一种辅助记忆方法,采用字母的缩写来表示指令)表示每条机器语言指令,例如ADD表示加,SUB表示减,MOV表示移动数据。
相对于机器语言,用汇编语言编写程序就容易多了。
例如计算2+6的汇编语言指令如下:MOV AL,6ADD AL,2MOV #5,AL 由于程序最终在计算机上执行时采用的都是机器语言,所以需要用一种称为汇编器的翻译程序,把用汇编语言编写的程序翻译成机器代码。
编写汇编器的程序员简化了他人的程序设计,是最初的系统程序员。
第二代软件(1954-1964) 当硬件变得更强大时,就需要更强大的软件工具使计算机得到更有效地使用。
汇编语言向正确的方向前进了一大步,但是程序员还是必须记住很多汇编指令。
第二代软件开始使用高级程序设计语言(简称高级语言,相应地,机器语言和汇编语言称为低级语言)编写,高级语言的指令形式类似于自然语言和数学语言(例如计算2+6的高级语言指令就是2+6),不仅容易学习,方便编程,也提高了程序的可读性。
IBM公司从1954年开始研制高级语言,同年发明了第一个用于科学与工程计算的FORTRAN语言。
1958年,麻省理工学院的麦卡锡(JohnMacarthy)发明了第一个用于人工智能的LISP语言。
1959年,宾州大学的霍普(Grace Hopper)发明了第一个用于商业应用程序设计的COBOL语言。
1964年达特茅斯学院的凯梅尼(John Kemeny)和卡茨(Thomas Kurtz)发明了BASIC语言。
高级语言的出现产生了在多台计算机上运行同一个程序的模式,每种高级语言都有配套的翻译程序(称为编译器),编译器可以把高级语言编写的语句翻译成等价的机器指令。
系统程序员的角色变得更加明显,系统程序员编写诸如编译器这样的辅助工具,使用这些工具编写应用程序的人,称为应用程序员。
随着包围硬件的软件变得越来越复杂,应用程序员离计算机硬件越来越远了。
那些仅仅使用高级语言编程的人不需要懂得机器语言和汇编语言,这就降低了对应用程序员在硬件及机器指令方面的要求。
因此,这个时期有更多的计算机应用领域的人员参与程序设计。
由于高级语言程序需要转换为机器语言程序来执行,因此,高级语言对软硬件资源的消耗就更多,运行效率也较低。
由于汇编语言和机器语言可以利用计算机的所有硬件特性并直接控制硬件,同时,汇编语言和机器语言的运行效率较高,因此,在实时控制、实时检测等领域的许多应用程序仍然使用汇编语言和机器语言来编写。
在第一代和第二代软件时期,计算机软件实际上就是规模较小的程序,程序的编写者和使用者往往是同一个(或同一组)人。
由于程序规模小,程序编写起来比较容易,也没有什么系统化的方法,对软件的开发过程更没有进行任何管理。
这种个体化的软件开发环境使得软件设计往往只是在人们头脑中隐含进行的一个模糊过程,除了程序清单之外,没有其他文档资料。
第三代软件(1965-1970) 在这个时期,由于用集成电路取代了晶体管,处理器的运算速度得到了大幅度的提高,处理器在等待运算器准备下一个作业时,无所事事。
因此需要编写一种程序,使所有计算机资源处于计算机的控制中,这种程序就是操作系统。
用作输入/输出设备的计算机终端的出现,使用户能够直接访问计算机,而不断发展的系统软件则使计算机运转得更快。
但是,从键盘和屏幕输入输出数据是个很慢的过程,比在内存中执行指令慢得多,这就导致了如何利用机器越来越强大的能力和速度的问题。
解决方法就是分时,即许多用户用各自的终端同时与一台计算机进行通信。
控制这一进程的是分时操作系统,它负责组织和安排各个作业。
1967年,塞缪尔(A.L.Samuel)发明了第一个下棋程序,开始了人工智能的研究。
1968年荷兰计算机科学家狄杰斯特拉(Edsgar W.Dijkstra)发表了论文《GOTO语句的害处》,指出调试和修改程序的困难与程序中包含GOTO语句的数量成正比,从此,各种结构化程序设计理念逐渐确立起来。
20世纪60年代以来,计算机用于管理的数据规模更为庞大,应用越来越广泛,同时,多种应用、多种语言互相覆盖地共享数据集合的要求越来越强烈。
为解决多用户、多应用共享数据的需求,使数据为尽可能多的应用程序服务,出现了数据库技术,以及统一管理数据的软件系统——数据库管理系统D...
在access中,如果要处理具有复杂条件或循环结构的操作,则应该使用...
题库我可以发给你,不过你要把邮箱号码给我。
下面是笔试的公共基础知识,把下面的知识了解了你就可以过笔试了。
考试之前笔试只要买套卷子就行了。
做做题库保证能过。
公共基础知识第一章数据结构与算法(P1—P38)1.1算法1.1.1算法的基本概念(P1—P4)所谓算法是指解题方案的准确完整的描述。
1.算法的基本特征(1)可行性(2)确定性(3)有穷性(4)拥有够的情报2.算法的基本要素一个算法通常由两种基本要素组成:一是对数据对象的运算和操作,二是算法的控制结构。
(1)算法中对数据的运算和操作(插入、删除)(2)算法的控制结构 一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。
1.1.2算法复杂度(P4—P6)算法的复杂度主要包括时间复杂度和空间复杂度。
1.算法的时间复杂度 所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。
2.算法的空间复杂度 一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
1.2数据结构的基本概念 数据结构,主要研究和讨论以下三个方面的问题: ①数据的逻辑结构; ②数据的存储结构; ③对各种数据结构进行的运算。
(插入、删除) 主要目的是为了提高数据处理的效率。
所谓提高数据处理的效率,主要包括两个方面:一是提高数据处理的速度,(时间复杂度)二是尽量节省在数据处理过程中所占用的计算机存储空间。
(空间复杂度) 1.2.1什么是数据结构(P6—P11) 1.数据的逻辑结构 所谓数据的逻辑结构,是指反映数据元素之间逻辑关系的数据结构。
2.数据的存储结构 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称为数据的物理结构) 一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。
而采用不同的存储结构,其数据处理的效率是不同的。
1.2.3线性结构与非线性结构(P12) 一般将数据分为两大类型:线性结构与非线性结构。
线性结构又称线性表 如果一个数据结构不是线性结构,则称之为非线性结构。
1.3线性表及其顺序存储结构 1.3.1线性表的基本概念(P12—P13) 线性表是由n(n≥0)个数据元素a1,a2,…,an组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。
即线性表或是一个空表,或可以表示为。
(a1,a2,…,ai,…,an) 非空线性表有如下一些结构特征: ①有且只有一个根结点a1,它无前件; ②有且只有一个终结点an,它无后件; ③除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
1.3.2线性表的顺序存储结构(P13—P14) 在计算机中存放线性表,一种最简单的方法是顺序存储,也称为顺序分配。
线性表的顺序存储结构具有以下两个基本特点: ①线性表中所有元素据所占的存储空间是连续的; ②线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
假设线性表中的第一个数据元素的存储地址为ADR(a1),每一个数据元素占K个字节,则线性表中第i个元素ai在计算机存储空间中的存储地址为 ADR(a1)=ADR(a1)+(i-1)K 1.3.3顺序表的插入运算(P14—P15) 在平均情况下,要在线性表中插入一个新元素,需要移动表中一半的元素。
因此,在线性表顺序存储的情况下,要插入一个新元素,其效率是很低的。
1.3.4顺序表的删除运算(P15—P16) 在平均情况下,要在线性表中删除一个元素,需要移动表中表中一半的元素。
因此,在线性表顺序存储的情况下,要删除一个元素,其效率也是很低的。
由线性表在存储结构下的插入与删除运算可以看出,线性表的顺序存储结构对于小线性表或者其中元素不常变动的线性表来说是合适的,因为顺序存储的结构比较简单。
但这种顺序存储的方式对于元素经常需要变动的大线性表就不太合适了,因为插入删除的效率比较低。
1.4栈和队列 1.4.1栈及其基本运算(P16—P18) 1.什么是栈 栈是限定在一端进行插入与删除的另一端称为栈底。
即栈是按照“先进后出”(FILO)或“后进先出”(LIFO)的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。
由此可以看出,栈具有记忆作用。
2.栈的顺序存储及其运算(采用顺序存储结构的栈称为顺序栈) 栈的基本运算有三种:入栈、退栈与读栈顶元素。
(1)入栈运算(2)退栈运算(3)读栈顶元素 1.4.2队列及其基本运算(P18—P20) 1.什么是队列 队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。
允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,一端称为排头(也称为队头)通常也用一个排头指针(front)指向排头元素的前一个位置。
队列双称为“先进先出”或“后进后出”的线性表。
3.循环队列及其运算 在实际应用中,队列的顺序存储结构一般采用循环队列的形式。
所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。
1.5线性链表 1.5.1线性链表的基本概念(P20—P23) ...
“软件危机”的产生是指什么
《大学计算机基础》试题题库及答案一、单选题练习1.完整的计算机系统由( C )组成。
A.运算器、控制器、存储器、输入设备和输出设备B.主机和外部设备C.硬件系统和软件系统D.主机箱、显示器、键盘、鼠标、打印机2.以下软件中,( D )不是操作系统软件。
A.Windows xp B.unix C.linux D.microsoft office3.用一个字节最多能编出( D )不同的码。
A. 8个 B. 16个 C. 128个 D. 256个4.任何程序都必须加载到( C )中才能被CPU执行。
A. 磁盘 B. 硬盘 C. 内存 D. 外存5.下列设备中,属于输出设备的是( A )。
A.显示器 B.键盘 C.鼠标 D.手字板6.计算机信息计量单位中的K代表( B )。
A. 102 B. 210 C. 103 D. 287.RAM代表的是( C )。
A. 只读存储器 B. 高速缓存器 C. 随机存储器 D. 软盘存储器8.组成计算机的CPU的两大部件是( A )。
A.运算器和控制器 B. 控制器和寄存器 C.运算器和内存 D. 控制器和内存9.在描述信息传输中bps表示的是( D )。
A.每秒传输的字节数 B.每秒传输的指令数C.每秒传输的字数 D.每秒传输的位数10.微型计算机的内存容量主要指( A )的容量。
A. RAM B. ROM C. CMOS D. Cache11.十进制数27对应的二进制数为( D )。
A.1011 B. 1100 C. 10111 D. 1101112.Windows的目录结构采用的是( A )。
A.树形结构 B.线形结构 C.层次结构 D.网状结构13.将回收站中的文件还原时,被还原的文件将回到( D )。
A.桌面上 B.“我的文档”中 C.内存中 D.被删除的位置14.在Windows 的窗口菜单中,若某命令项后面有向右的黑三角,则表示该命令项( A )。
A.有下级子菜单 B.单击鼠标可直接执行C.双击鼠标可直接执行 D.右击鼠标可直接执行15.计算机的三类总线中,不包括( C )。
A.控制总线 B.地址总线 C.传输总线 D.数据总线16.操作系统按其功能关系分为系统层、管理层和( D )三个层次。
A.数据层 B.逻辑层 C.用户层 D.应用层17.汉字的拼音输入码属于汉字的( A )。
A.外码 B.内码 C.ASCII码 D.标准码18.Windows的剪贴板是用于临时存放信息的( C )。
A.一个窗口 B.一个文件夹 C.一块内存区间 D.一块磁盘区间19.对处于还原状态的Windows应用程序窗口,不能实现的操作是( D )。
A.最小化 B.最大化 C.移动 D.旋转20.在计算机上插U盘的接口通常是( D )标准接口。
A.UPS B.USP C.UBS D.USB21.新建文档时,Word默认的字体和字号分别是( C )。
A.黑体、3号 B.楷体、4号 C.宋体、5号 D.仿宋、6号22.第一次保存Word文档时,系统将打开( B )对话框。
A.保存 B.另存为 C.新建 D.关闭23.在Word表格中,位于第三行第四列的单元格名称是( C )。
A.3∶4 B.4∶3 C.D3 D.C424.Word编辑文档时,所见即所得的视图是( B )。
A.普通视图 B.页面视图 C.大纲视图 D.Web视图25.新建的Excel工作簿中默认有( B )张工作表。
A.2 B.3 C.4 D.526.在Excel工作表的单元格中计算一组数据后出现########,这是由于( A )所致。
A.单元格显示宽度不够 B.计算数据出错 C.计算机公式出错 D.数据格式出错27.若在Excel的同一单元格中输入的文本有两个段落,则在第一段落输完后应使用( C )键。
A.Enter B.Ctrl+Enter C.Alt+Enter D.Shift+Enter28.用PowerPoint制作的演示文稿默认的扩展名是( B )。
A..pwp B..ppt C..ppn D..pop29.算法的基本结构中不包括( A )。
A.逻辑结构 B.选择结构 C.循环结构 D.顺序结构30.用C语言编写的程序需要用( B )程序翻译后计算机才能识别。
A.汇编 B.编译 C.解释 D.连接31.可被计算机直接执行的程序由( A )语言编写的程序。
A.机器 B.汇编 C.高级 D.网络32.关系数据库中的数据逻辑结构是( D )。
A.层次结构 B.树形结构 C.网状结构 D.二维表格33.用以太网形式构成的局域网,其拓扑结构为( B )。
A.环型 B.总线型 C.星型 D.树型34.在Internet中的IP地址由( C )位二进制数组成。
A.8 B.16 C.32 D.6435.在IE地址栏输入的“ http://www.cqu.edu.cn/”中,http代表的是( A )。
A.协议 B.主机 C.地址 D.资源36.在Internet上用于收发电子邮件的协议是( C )。
A.TCP/IP B.IPX/SPX C.POP3/SMTP D.NetBEUI37.在Internet上广泛使用的WWW是一种( A )。
A.浏览服务模式 B.网络主机 C.网络服务器 D.网络模式38.对同一幅照片采用以下格式存储时,占用存储空间最大的格式是( C )。
A..JPG B..TIF C..BMP D..GIF39.扩展名为.MOV的文件通常是一个( B )。
A.音频文件 B.视频文件 C.图片文件 D.文本文件40.从本质上讲,计算机病毒是一种( C )。
A.细菌 B.文本 C.程序 D.微生物二、选择题(答案回复可见)1、世界上第一台电子计算机诞生于 A 1941年 B 1946年 C 1949年 D 1950年 2、世界上首次提出存储程序计算机体系结构的是 A 莫奇莱 B 艾仑·图灵 C 乔治·布尔 D 冯·诺依曼 3、世界上第一台电子数字计算机采用的主要逻辑部件是 A 电子管 B 晶体管 C 继电器 D 光电管 4、下列叙述正确的是 A 世界上第一台电子计算机ENIAC首次实现了“存储程序”方案 B 按照计算机的规模,人们把计算机的发展过程分为四个时代 C 微型计算机最早出现于第三代计算机中 D 冯·诺依曼提出的计算机体系结构奠定了现代计算机的结构理论...
电脑软件的发展史?
第一代软件(1946-1953) 第一代软件是用机器语言编写的,机器语言是内置在计算机电路中的指令,由0和1组成。
例如计算2+6在某种计算机上的机器语言指令如下:10110000 0000011000000100 0000001010100010 01010000 第一条指令表示将“6”送到寄存器AL中,第二条指令表示将“2”与寄存器AL中的内容相加,结果仍在寄存器AL中,第三条指令表示将AL中的内容送到地址为5的单元中。
不同的计算机使用不同的机器语言,程序员必须记住每条及其语言指令的二进制数字组合,因此,只有少数专业人员能够为计算机编写程序,这就大大限制了计算机的推广和使用。
用机器语言进行程序设计不仅枯燥费时,而且容易出错。
想一想如何在一页全是0和1的纸上找一个打错的字符! 在这个时代的末期出现了汇编语言,它使用助记符(一种辅助记忆方法,采用字母的缩写来表示指令)表示每条机器语言指令,例如ADD表示加,SUB表示减,MOV表示移动数据。
相对于机器语言,用汇编语言编写程序就容易多了。
例如计算2+6的汇编语言指令如下:MOV AL,6 ADD AL,2 MOV #5,AL 由于程序最终在计算机上执行时采用的都是机器语言,所以需要用一种称为汇编器的翻译程序,把用汇编语言编写的程序翻译成机器代码。
编写汇编器的程序员简化了他人的程序设计,是最初的系统程序员。
第二代软件(1954-1964) 当硬件变得更强大时,就需要更强大的软件工具使计算机得到更有效地使用。
汇编语言向正确的方向前进了一大步,但是程序员还是必须记住很多汇编指令。
第二代软件开始使用高级程序设计语言(简称高级语言,相应地,机器语言和汇编语言称为低级语言)编写,高级语言的指令形式类似于自然语言和数学语言(例如计算2+6的高级语言指令就是2+6),不仅容易学习,方便编程,也提高了程序的可读性。
IBM公司从1954年开始研制高级语言,同年发明了第一个用于科学与工程计算的FORTRAN语言。
1958年,麻省理工学院的麦卡锡(JohnMacarthy)发明了第一个用于人工智能的LISP语言。
1959年,宾州大学的霍普(Grace Hopper)发明了第一个用于商业应用程序设计的COBOL语言。
1964年达特茅斯学院的凯梅尼(John Kemeny)和卡茨(Thomas Kurtz)发明了BASIC语言。
高级语言的出现产生了在多台计算机上运行同一个程序的模式,每种高级语言都有配套的翻译程序(称为编译器),编译器可以把高级语言编写的语句翻译成等价的机器指令。
系统程序员的角色变得更加明显,系统程序员编写诸如编译器这样的辅助工具,使用这些工具编写应用程序的人,称为应用程序员。
随着包围硬件的软件变得越来越复杂,应用程序员离计算机硬件越来越远了。
那些仅仅使用高级语言编程的人不需要懂得机器语言和汇编语言,这就降低了对应用程序员在硬件及机器指令方面的要求。
因此,这个时期有更多的计算机应用领域的人员参与程序设计。
由于高级语言程序需要转换为机器语言程序来执行,因此,高级语言对软硬件资源的消耗就更多,运行效率也较低。
由于汇编语言和机器语言可以利用计算机的所有硬件特性并直接控制硬件,同时,汇编语言和机器语言的运行效率较高,因此,在实时控制、实时检测等领域的许多应用程序仍然使用汇编语言和机器语言来编写。
在第一代和第二代软件时期,计算机软件实际上就是规模较小的程序,程序的编写者和使用者往往是同一个(或同一组)人。
由于程序规模小,程序编写起来比较容易,也没有什么系统化的方法,对软件的开发过程更没有进行任何管理。
这种个体化的软件开发环境使得软件设计往往只是在人们头脑中隐含进行的一个模糊过程,除了程序清单之外,没有其他文档资料。
第三代软件(1965-1970) 在这个时期,由于用集成电路取代了晶体管,处理器的运算速度得到了大幅度的提高,处理器在等待运算器准备下一个作业时,无所事事。
因此需要编写一种程序,使所有计算机资源处于计算机的控制中,这种程序就是操作系统。
用作输入/输出设备的计算机终端的出现,使用户能够直接访问计算机,而不断发展的系统软件则使计算机运转得更快。
但是,从键盘和屏幕输入输出数据是个很慢的过程,比在内存中执行指令慢得多,这就导致了如何利用机器越来越强大的能力和速度的问题。
解决方法就是分时,即许多用户用各自的终端同时与一台计算机进行通信。
控制这一进程的是分时操作系统,它负责组织和安排各个作业。
1967年,塞缪尔(A.L.Samuel)发明了第一个下棋程序,开始了人工智能的研究。
1968年荷兰计算机科学家狄杰斯特拉(Edsgar W.Dijkstra)发表了论文《GOTO语句的害处》,指出调试和修改程序的困难与程序中包含GOTO语句的数量成正比,从此,各种结构化程序设计理念逐渐确立起来。
20世纪60年代以来,计算机用于管理的数据规模更为庞大,应用越来越广泛,同时,多种应用、多种语言互相覆盖地共享数据集合的要求越来越强烈。
为解决多用户、多应用共享数据的需求,使数据为尽可能多的应用程序服务,出现了数据库技术,以及统一管理数据的软件系统——数据库管理系统...
软件工程是学什么的,包括什么?
楼上的朋友们不要误导哦。
软件工程不是那么简单的编程。
现在学通信、电子的还学编程呢~~软件工程是一类工程。
工程是将理论和知识应用于实践的科学。
就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。
其中应用了计算机科学、数学和管理科学。
计算机科学和数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量和成本的管理。
软件工程涉及了软件工程的目标、软件工程原则和软件工程活动。
目标:我的眼里只有“产品” 软件工程的主要目标是:生产具有正确性、可用性以及开销合宜的产品。
正确性意指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜性是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多问题有待解决,它们形成了对过程、过程模型及工程方法选取的约束。
软件工程活动是“生产一个最终满足需求且达到工程目标的软件产品所需要的步骤”。
主要包括需求、设计、实现、确认以及支持等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件体系结构,包括子系统、模块以及相关层次的说明、每一模块接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
支持活动包括修改和完善。
伴随以上活动,还有管理过程、支持过程、培训过程等。
框架:四项基本原则是基石 软件工程围绕工程设计、工程支持以及工程管理,提出了以下四项基本原则: 第一,选取适宜开发范型。
该原则与系统设计有关。
在系统设计中,软件需求、硬件需求以及其他因素之间是相互制约、相互影响的,经常需要权衡。
因此,必须认识需求定义的易变性,采用适宜的开发范型予以控制,以保证软件产品满足用户的要求。
第二,采用合适的设计方法。
在软件设计中,通常要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。
合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
第三,提供高质量的工程支持。
“工欲善其事,必先利其器”。
在软件工程中,软件工具与环境对软件过程的支持颇为重要。
软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
第四,重视开发过程的管理。
软件工程的管理,直接影响可用资源的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。
因此,仅当软件过程得以有效管理时,才能实现有效的软件工程。
这一软件工程框架告诉我们,软件工程的目标是可用性、正确性和合算性;实施一个软件工程要选取适宜的开发范型,要采用合适的设计方法,要提供高质量的工程支撑,要实行开发过程的有效管理;软件工程活动主要包括需求、设计、实现、确认和支持等活动,每一活动可根据特定的软件工程,采用合适的开发范型、设计方法、支持过程以及过程管理。
根据软件工程这一框架,软件工程学科的研究内容主要包括:软件开发范型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE) 及软件经济学等。
作用:高效开发高质量软件 自从软件工程概念提出以来,经过30多年的研究与实践,虽然“软件危机”没得到彻底解决,但在软件开发方法和技术方面已经有了很大的进步。
尤其应该指出的是,自80年代中期,美国工业界和政府部门开始认识到,在软件开发中,最关键的问题是软件开发组织不能很好地定义和管理其软件过程,从而使一些好的开发方法和技术都起不到所期望的作用。
也就是说,在没有很好定义和管理软件过程的软件开发中,开发组织不可能在好的软件方法和工具中获益。
根据调查,中国的现状几乎和美国10多年前的情况一样,软件开发过程没有明确规定,文档不完整,也不规范,软件项目的成功往往归功于软件开发组的一些杰出个人或小组的努力。
这种依赖于个别人员上的成功并不能为全组织的软件生产率和质量的提高奠定有效的基础,只有通过建立全组织的过程改善,采用严格的软件工程方法和管理,并且坚持不懈地付诸实践,才能取得全组织的软件过程能力的不断提高。
只有坚持软件工程的四条基本原则,既重视软件技术的应用,又重视软件工程的支持和管理,并在实践中贯彻实施,才能高效地开发出高质量的软件。
展开
转载请注明出处51数据库 » 软件危机是指在计算机软件开发和维护过程中